Skip to content

Commit

Permalink
git pushMerge branch 'master' of github.com:HakuyaLabs/warudo-doc
Browse files Browse the repository at this point in the history
  • Loading branch information
Nekotora committed Dec 26, 2023
2 parents 7e6eacb + d2453dc commit 1967576
Show file tree
Hide file tree
Showing 64 changed files with 1,151 additions and 356 deletions.
230 changes: 138 additions & 92 deletions docs/assets/character/README.md

Large diffs are not rendered by default.

26 changes: 0 additions & 26 deletions docs/assets/character/blendshape-expression.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,29 +79,3 @@ In the expression list, expand the configuration for that expression, and adjust
### My model has an e.g. heart-shaped eye blendshape. I want to display this blendshape when activating a certain expression.

In the expression list, expand the configuration for that expression, click the + button at the bottom right of the "Target BlendShapes", select the heart-shaped eye blendshape from the dropdown list, and set the target value to 1. The other properties can be adjusted as desired, or you can keep the defaults.

### I want to change the default key bindings.

Open the "Expression Key Bindings" blueprint and locate the "On Keystroke Pressed" node. Then, modify it as needed. For example, in the original blueprint, pressing Alt+1 will activate the `Joy` expression:

![](pathname:///doc-img/en-expression-1.webp)

The following changes the keyboard shortcut to Ctrl+Shift+T.

![](pathname:///doc-img/en-expression-2.webp)

### I want to create a new expression from scratch.

In the expressions list, click the + button at the bottom right to add a new item. In the "Target BlendShapes", add the blendshapes that form the desired expression. For example, the following expression will activate the `笑い` BlendShape on the model when applied:

![](pathname:///doc-img/en-expression-3.webp)

Open the "Expression Key Bindings" blueprint (or create a new blueprint). Drag out the "On Keystroke Pressed" and "Toggle Character Expression" nodes from the sidebar. Set the keyboard shortcut on the "On Keystroke Pressed" node, and select the character and the newly created expression on the "Toggle Character Expression" node. Connect the output and input of the two nodes as shown below.

![](pathname:///doc-img/en-expression-4.webp)

### Can I only activate an expression for a certain period of time and then automatically switch back to the previous expression after a while?

To do this, enable "Is Transient" on the "Toggle BlendShape Expression" node in the blueprint to "Yes." The duration of the expression will be determined by "Exit Delay" of each BlendShape in the expression.

![](pathname:///doc-img/en-expression-5.webp)
21 changes: 6 additions & 15 deletions docs/assets/keyboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,17 @@
sidebar_position: 30
---

# Keyboard / Trackpad
# Keyboard/Trackpad

Keyboard and touchpad are special props that (when combined with a blueprint) can generate animations for the character using keyboard and touchpad, even when the hands are not motion captured.
Keyboard and trackpad are special props that (when combined with a blueprint) can generate animations for the character using keyboard and touchpad, even when the hands are not motion captured.

![](pathname:///doc-img/zh-keyboard-1.webp)
<p class="img-desc">No hand tracking required!</p>

## Setup

To use the keyboard and touchpad, simply enable the options when [setting up the character's motion capture](character/#motion-capture):
To use keyboard/trackpad, simply enable **Use Keyboard/Trackpad** during the motion capture setup. Please refer to the [Customizing Pose Tracking](../mocap/body-tracking) page for more details.

![](pathname:///doc-img/zh-keyboard-2.webp)

:::danger
When the keyboard is enabled, please avoid entering sensitive information such as passwords.
:::info
Currently, keyboard/trackpad are only supported for upper body tracking setups.
:::

The keyboard and touchpad can be turned off separately:

![](pathname:///doc-img/zh-keyboard-3.webp)

Advanced settings can be found in the "Generate Input Interfaces Motion" node in the generated pose tracking blueprint:

![](pathname:///doc-img/zh-keyboard-4.webp)
27 changes: 27 additions & 0 deletions docs/assets/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
sidebar_position: 0
---

# Overview

Assets are the building blocks of Warudo. They are the components that make up your scene. For example, a character is an asset, a prop is an asset, and a camera is also an asset. Assets can be referenced in [blueprints](../blueprints/overview) to add functionality to your scene.

## Basics

In the **Assets** tab, you can see a list of all assets in your scene. Below is the toolbar for the **Assets** tab:

![](pathname:///doc-img/en-assets-1.png)
<p class="img-desc">The toolbar.</p>

The toolbar has the following buttons:
* **Add Asset**: Add a new asset to the scene.
* **Remove Asset**: Remove the selected asset from the scene.
* **Duplicate Asset**: Duplicate the selected asset.
* **Rename Asset**: Rename the selected asset.
* **Import Asset**: Import an asset from a JSON string and add it to the scene.
* **Import Into Selected Asset**: Import an asset from a JSON string and merge it into the selected asset.
* **Export Asset**: Export the selected asset to a JSON string.

:::tip
You can use the import/export feature to copy assets between scenes.
:::
14 changes: 14 additions & 0 deletions docs/blueprints/controlling-character.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Controlling Character


### **I want to set up a hotkey or toggling meshes (clothing, accessories, etc.).**

To do this, create a new blueprint (or open an existing one) and setup like below:

![](pathname:///doc-img/en-assets-character-1.webp)

### I want to set up a hotkey for switching the idle animation.

To do this, create a new blueprint (or open an existing one) and setup like below:

![](pathname:///doc-img/en-assets-character-2.webp)
9 changes: 9 additions & 0 deletions docs/misc/normalizing-model-bones.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
sidebar_position: 30
---

# Normalizing Model Bones

:::info
You can check if a FBX model has normalized bones by importing it into Unity and checking if the bone transforms have zero rotation.
:::
15 changes: 2 additions & 13 deletions docs/tutorials/faq.md → docs/misc/optimizing-performance.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
sidebar_position: 20
sidebar_position: 10
---


# Frequently Asked Questions
# Optimizing Performance

## Warudo's frame rate drops dramatically when running simultaneously with other 3D applications/games (e.g., Apex Legends).

Expand Down Expand Up @@ -32,13 +31,3 @@ Increased GPU priority for Warudo can in turn result in decreased frame rates fo
:::info
On an Intel i9-9900k + NVIDIA RTX 2080 Ti configuration, running Warudo at 1080p resolution (with a NiloToon-rendered model and a high-precision 3D [environment ](../assets/environment.md)as the background) and playing Elden Ring at high graphics settings, with OBS recording at 1080p, the frame rate stays stable at around 45 FPS.
:::

## I have selected a camera for motion capture, but my camera does not turn on / camera feed is black.&#x20;

Some antivirus software may block programs that are not on their whitelist from accessing the camera. Please disable the camera protection function of your antivirus software, or add Warudo to the whitelist.

Also note that Warudo currently does not support IP cameras (such as [DroidCam](https://play.google.com/store/apps/details?id=com.dev47apps.droidcam)).

## I need other help!

Please join our [Discord](https://discord.gg/Df8qYYBFhH), or contact [[email protected]](mailto:[email protected]).
55 changes: 48 additions & 7 deletions docs/mocap/body-tracking.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,53 @@
sidebar_position: 30
---

# Pose Tracking
# Customizing Pose Tracking

Warudo provides 5 pose tracking solutions:
## Blueprint Customization

* [**MediaPipe**](mediapipe.md): Webcam-based upper body tracking. Advantages include a wider range of motion (e.g. forward/backward hand movements) and more responsive tracking (e.g. punches). Drawbacks include the need for some time to set up and calibrate. <b style={{color: "green"}}>**Most expressive.**</b>
* [**RhyLive**](rhylive.md): Upper body tracking developed by [RhythMo](https://rhythmo.cn/). Requires a [Face ID](https://support.apple.com/en-us/HT208109)-compatible iOS device and the free [RhyLive](https://apps.apple.com/us/app/rhylive/) app.
* [**VMC**](vmc.md): Body tracking via an external application, which sends data to Warudo via the [VirtualMotionCapture protocol](https://protocol.vmc.info/english). Compatible with all VR mocap (such as SlimeVR or Mocopi), via [VirtualMotionCapture ](https://vmc.info/)and some VMC-compatible studio mocap.
* [**Rokoko**](rokoko.md): Body tracking via [Rokoko Studio](https://www.rokoko.com/products/studio).
* [**Xsens MVN**](xsens-mvn.md): Body tracking via [Xsens MVN Analyze/Animate](https://base.xsens.com/s/motion-capture-mvn-software?language=en\_US).
During the onboarding process, you can click **Customize Pose Tracking...** to customize the tracking blueprint.

![](pathname:///doc-img/en-mocap-4.png)
<p class="img-desc">Customizing pose tracking.</p>

### Upper Body Trackers

For upper body trackers (e.g., MediaPipe, RhyLive, Leap Motion Controller), the following options are available:

* **Use Keyboard/Trackpad:** Whether to generate animations for the character using a keyboard or trackpad, even when the hands are not tracked.

![](pathname:///doc-img/zh-keyboard-1.webp)

After onboarding, you can adjust the keyboard/touchpad settings by clicking **Character → Motion Capture → Blueprint Navigation → Input Interfaces Animation Settings**.

The keyboard and touchpad can be turned off separately by disabling either asset:

![](pathname:///doc-img/zh-keyboard-3.webp)
:::danger
When the keyboard is enabled, please avoid entering sensitive information such as passwords.
:::
* **Track Fingers Only:** If enabled, only the fingers will be tracked by this tracking system. This is useful if you are using a full-body pose tracking system that already tracks the hands.

### Full Body Trackers

For full body trackers, the following options are available:

* **Track Full Body / Tracked Body Parts:** If **Track Full Body** is set to **No**, only the body parts that are selected in **Track Full Body** will be tracked by this tracking system. This is useful if you are using multiple full-body pose tracking systems, and want to use different systems to track different body parts.

## Tracker Customization

After onboarding, you can go to the corresponding pose tracking asset (e.g., MediaPipe Tracker, VMC Receiver) to customize the tracking data itself. The following options are available:

* **Mirrored Tracking:** If enabled, Warudo will mirror the tracking data.
* **Head Rotation Intensity/Offset:** Adjust the intensity and offset of the head rotation.

## Frequently Asked Questions {#FAQ}

### How can I combine multiple pose tracking systems?

If you want to set up a secondary pose tracking, you can use the **Secondary Pose Tracking** option during the onboarding process; this is helpful if you are using VR trackers/Mocopi for primary tracking and would like to use [MediaPipe](../mocap/mediapipe.md) or [Leap Motion Controller](../mocap/leap-motion.md) or [StretchSense Gloves](../mocap/stretchsense.md) for added-on finger tracking.

![](pathname:///doc-img/en-getting-started-8.png)
<p class="img-desc">Setting up secondary pose tracking.</p>

If you want to combine more than two pose tracking systems, you can set up the primary pose tracking first using the onboarding assistant, and then set up the subsequent pose tracking systems using **Character → Setup Motion Capture** with **Track Full Body** set to **No** and **Tracked Body Parts** set to the specific body parts you want to track with that system.
53 changes: 53 additions & 0 deletions docs/mocap/chingmu.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
sidebar_position: 520
---

# Chingmu Avatar

:::info
This feature is only available in [Warudo Pro](../pro).
:::

Body tracking via [Chingmu Avatar](https://www.chingmu.com/software/downloaddetail_7.shtml). Requires access to a [Chingmu](https://chingmu.com) optical tracking system.

In addition to character tracking, prop tracking is also supported. For example, you may want to track a chair or a handheld camera using your optical tracking system and stream the motion data to Warudo, animating a chair prop or camera in Warudo accordingly.

## Setup

### Character Tracking

Open Chingmu Avatar and load the FBX file of your character, and characterize it. **The model must have normalized bones, i.e., all bones on the model should have zero rotation (0, 0, 0) when the model is in T-pose.** The model should also have identical bone hierarchy as the character model loaded in Warudo.

:::info
You can check if a FBX model has normalized bones by importing it into Unity and checking if the bone transforms have zero rotation.
:::

Make sure **VRPN Livestream** (启用Vrpn) is checked, along with **Rigidbodies** (刚体), **Bones** (骨骼), and **Motion Retargeting** (重定向).

![](pathname:///doc-img/en-chingmu-1.png)

If you have multiple characters in the scene, in Warudo, set **Chingmu Avatar Receiver → Object ID** to the index of the character that you would like to track. The index starts from 0.

If you are running Chingmu Avatar on a different PC, you need to enter the IP address of the PC running Chingmu Avatar in Warudo's **Settings → Chingmu → VRPN Connection String**.

### Prop Tracking

In Warudo, create a new **Chingmu Avatar Rigidbody Receiver** asset and set **Rigidbody ID** to the ID of the rigidbody that you would like to track. Then, for **Target Asset**, select the Warudo prop/camera that you would like to control.

:::tip
If you would like to access prop tracking data in blueprints, you can use the **Get Chingmu Avatar Rigidbody Receiver Data** node.
:::

## Frequently Asked Questions

Please refer to [Overview](overview#FAQ) and [Customizing Pose Tracking](pose-tracking#FAQ) for common questions.

### My character is in extremely weird poses.

First, make sure you have loaded the same model in Warudo and Chingmu Avatar.

We also require the models to have normalized bones, i.e., all bones on the model should have zero rotation (0, 0, 0) when the model is in T-pose. Please refer to [this page](../misc/normalizing-model-bones) for more details.

### My character is not moving.

You can try click **Settings → Chingmu → Restart Chingmu Plugin**. If this does not work, try restarting Chingmu Avatar and/or Warudo.
23 changes: 0 additions & 23 deletions docs/mocap/customization.md

This file was deleted.

Loading

0 comments on commit 1967576

Please sign in to comment.