10.3. VRoid/VRM

The main feature of this app is that you can read and take poses by reading VRoid/VRM, and you can enjoy the animation described below. I will explain a series of operations from reading VRM files to actual operation.

Caution

In this app, VRM1.0 models can also be read normally.

However, the functions that have been newly implemented in VRM1.0, such as constraints, have not yet been confirmed because the usage examples have not yet spread. We will proceed with confirmation and response in future updates.

10.3.1. Check the usage conditions of VRM

As the reading proceeds, the VRoid/VRM usage conditions confirmation screen will be displayed. If you read the VRM file of the creator other than yourself, check the terms of use and accept the” OK “button to complete the loading. please give me.

../_images/operation_vrm_5.png

After this, the desired VRoid/VRM will be displayed on the WebGL screen.

Note

  • If you open VRM from history, you can skip this confirmation screen depending on your options.

  • VRoidStudio 1.x model and 0.x model have different joint shapes and initial poses. This app absorbs the difference as much as possible, but the initial display of IK in 11 and 13 on the next page will be slightly off in the model immediately after output from VRoidStudio 1.x (there is no problem if you start moving).

  • VRM 0.x models and VRM 1.x models also have different joint shapes, so the initial poses are slightly different. There is no problem if you start moving this as well.


10.3.2. Working with VRM IK markers

The imported VRoid/VRM has a semi-transparent figure called an IK marker as shown in the figure. Each part is linked to the movement of the next part. In addition, the type and shape of IK marker operations are determined for each part.

../_images/operation_vrm_6.jpg

No

Part

Corresponding operation

No

Part

Corresponding operation

1

EyeViewHandle

move

2

Left/right tilt of the head / protruding chin (Head)

rotation

3

Head orientation (LookAt)

move

4

Upper Body Orientation (Aim)

rotation

5

Left and right inclination of the upper body and shoulders (Chest)

rotation

6

Waist direction/tilt/movement (Pelvis)

Move/Rotate

7

Left shoulder

rotation

8

Left elbow (LeftLowerArm)

move

9

Left Hand

Move/Rotate

10

Right shoulder(RightShoulder)

rotation

11

Right elbow (RightLowerArm)

move

12

Right hand(RightHand)

Move/Rotate

13

Left foot direction (LeftLowerLeg) != Knee

move

14

Left ankle (LeftLeg)

Move/Rotate

15

Right leg direction (RightLowerLeg) != knee

move

16

Right ankle (RightLeg)

Move/Rotate

Warning

IK system changes (ver 2.2.0)

In Ver 2.2.0, we changed the IK system from FinalIK to Unity’s original IK for future versatility. The impact of this is as follows.

  • Aim now operates the corresponding part of the VRM by rotating instead of moving.

  • Chests now operate the corresponding part of the VRM by rotating instead of moving them.

If you have greatly manipulated these IK markers in the previous pose/motion file, you will need to change the pose/motion. note that.

Warning

IK system changes (ver 2.4.0)

Part of the IK system was changed to make it behave in accordance with the actual VRM bone hierarchy.

flowchart LR Pelvis --> Aim --> Chest --> LeftShoulder & RightShoulder & Head
  • Moving Pelvis now also moves Aim, Chest, and Head.

  • When you move the aim, the chest and head also move.

  • Moving the Chest now also moves the Head.

influence
  • Since the movement of the Aim’s x/z axes has been reversed, please correct the Aim’s rotation in the existing pose/motion file.

  • Although the IK markers themselves do not move in conjunction with each other in VR/AR space, the movement of the VRM bones is maintained as is.

Note

  • Even if you perform an operation that is not supported, that part will not move. In particular, the central parts of the body, Head(2), Chest(5), LeftShoulder(7), RightShoulder(10), Aim(4), can be operated even if they are moved far away. can do. Since it is a part that is easily hidden inside the body, it is a good idea to move it to a position that is easy to operate.

  • This is the only part that can be manipulated so that you can edit the pose as freely as possible without being complicated and troublesome. Therefore, it does not support FK (Forward Kinematics), which requires a huge number of operations.

  • There may be a strict way of saying this in the world, but in this app, each bone (part) above is described as an IK marker (part).

  • 13 and 15 are not synonymous with knees. Think of it as the overall direction of your foot.

  • In order to support VR/AR, the shapes of IK markers 1, 2, 5, and 6 have been changed from ver 2.3.0. (If it is a sphere, it will be difficult to understand the state of rotation.)


10.3.2.1. Operation of each IK marker

Click each selected IK marker as shown. This is the operating handle.

../_images/operation_vrm_7.png

X, Y, Z axis movement

With green = Y, blue = Z, and red = X axis, dragging will move the IK marker in that direction. The corresponding part of the body also moves by the amount of movement.

center plane

The square box in the middle with the same color can be moved freely on the axis indicated by the surface and the other axis by dragging inside it.

10.3.2.2. special operation

With an IK marker selected, you can use special functions by pressing the following keys:

Ctrl-click IK marker

Multiple IK markers can be selected. You can move multiple body parts at the same time by moving or rotating with multiple selected. In addition, since the operation handle also has a collision detection, please select only the IK marker by zooming the camera.

Press X key

Switch between global coordinates and local coordinates. Default is local coordinates.

press G key

Move IK markers only.

Press R key

Set the IK marker to rotation only.

Press the T key

Returns the IK markers to their initial state. (Both movement and rotation)

Press Shift + Z

Undo movement/rotation by IK marker.

Press Shift + Y

Redo movement and rotation with IK markers.


10.3.2.3. Movement/rotation of VRoid/VRM itself

To move/rotate the selected VRoid/VRM itself, turn on “Movement mode” in the “IK, whole body” tab of the property on the right.

../_images/operation_vrm_8.png

Then, when you click near the feet of the VRoid/VRM, all IK markers will be selected. Although it is not displayed, this is actually the entire IK marker.

Warning

Since the ankle and the overall IK marker tend to interfere, please switch to OFF when not moving.

From ver 2.3.0, this IK marker that moves the entire object is displayed as a trapezoid.


../_images/operation_vrm_9.png

If you move or rotate up, down, left, or right in this state, the VRoid/VRM itself will move accordingly. This can also be set numerically from the “Common” tab of the properties.

10.3.2.4. Size of VRoid/VRM itself

../_images/prop_common_1.png

You can also adjust the overall size of the VRoid/VRM from the common tab, but the ideal size of the VRoid/VRM is the size at the time of loading. We recommend that you do not change this ratio too drastically. (Because it does not follow the size of the IK marker itself, the position of the IK marker and the body part will be misaligned.)


10.3.2.5. Return all bones to T pose

If you mess with the IK markers too much and can’t return to the desired pose, you can return to the T pose (default pose) by pressing Reset all bones on the 3D model tab of the ribbon bar.

../_images/operation_vrm_a.png

You can also reset the overall position and rotation with Reset Position and Reset Rotation.

../_images/operation_vrm_b.png

10.3.2.6. Numerical manipulation of IK markers

In addition to manipulating IK markers with a mouse or touch, you can also manipulate them by entering actual numbers. Select the desired VRoid/VRM, and press the “IK position batch change” button on the “IK, whole body” tab of the properties on the right.

../_images/operation_vrm_c.png

A special dialog will appear. Here you can directly specify the position and rotation of each IK marker in a spreadsheet format. Finally, press the btnbonetranapply Apply Pose button when you have finished changing the desired parts.
Then the current pose of the target VRoid/VRM will be changed accordingly.
../_images/screen_ikmarker.png

The function of each button is as follows.

Spreadsheet

Column name

Description

PositionX

X coordinate position

PositionY

Y coordinate position

PositionZ

Z coordinate position

RotationX

X-axis rotation

RotationY

Y-axis rotation

RotationZ

Z axis rotation

drag

Drag when moving IK markers

angularDrag

Rotational drag when moving IK markers

btnbonetranrel Refresh

Reflects the pose information of the currently selected VRM in the spreadsheet. Basically, if you select it, it will be automatically reflected, but the information may remain old depending on the operating state of the application. Use it in that case.

btnbonetranmirror ポーズを反転する

Swaps the left and right of the current pose information. If you press Apply Pose in this state, the current pose will be reversed. This button is also present in the IK, Whole Body panel.

Note

  • The buttons in the toolbar will be disabled while selecting anything other than VRM.

  • The number here is the current value of VRM. Since the height and physique difference are not reflected, it is necessary to manually calculate when reused with other VRM.


10.3.2.7. Adjust the restrictions of the movable range

In this app, VRM is standardized as standard, and some of the movable range is applied. VRM can easily reproduce the movement of the natural human body.
However, there are times when we compete with the IK of this application, which has a specification that cannot be reproduced by poses and animations. You can remove the restrictions on these IK markers.
Lowerleg, the rotation angle of the X -axis of the ankle (Leg), the rotation angle of the elbow of the elbow (LowerArm)
  • The range of the rotation of the ankle, below the knees, the range of the ankle rotation is limited according to the actual human body.

  • It can be turned on/off by selecting “Model tab” → “Apply natural movement control to VRM’s body” on the setting screen.

Rotation of the X -axis of the ankle (Leg) after moving the direction of the foot
  • When the legs (LowerLeg) are moved back and forth, rotate the rotation angle of the ankle (Leg) according to LowerLeg.

  • It can be turned on/off by selecting “Model tab” → “Automatic ankle rotation” on the setting screen.


10.3.2.8. Interlocking between IK markers

In this app, I use an IK marker to run the VRM bone, but when I move the IK marker in a specific part, another part works in conjunction.
Basically, it is only when operating an IK marker.
The following 3 patterns linked
Near shoulder (chest) / arm (Lowerarm) / head (head)

When the chest is moved, move the X -axis of the arm (Lowerarm), the head (head), and the Z axis as much as possible.

Aim and shoulder (Chest)

When the AIM is moved, the X -axis / Z axis near the shoulder (Chest) is moved as much as possible.

Pelvis and legs (LowerLeg)

When the waist goes up and down, the legs move slightly back and forth according to their movements.

Interlocks between the ankle (LEG) and the direction of the foot

Lowerleg slightly moves back and forth when you move your ankle

Interlocking Hand and Lower Arm

When moving the hand, the arm (elbow) also moves

Hint

It can be turned on/off by selecting “Model tab” → “Bone linkage” on the setting screen.

Warning

The interlocking problem that was present at the time of ver 1.x has been solved in Ver 2.0.2.

It turns off automatically during animation playback, and the position and rotation registered in the keyframe are reflected.

If you turn it off, it will not be linked and you will be free, but the joint will bend in a direction that should not be bent.


10.3.2.9. Switch IK markers to different objects

The VRM has IK markers set according to the parts mentioned above, and moving them changes the pose. A different object can be assigned to that IK marker that marks the movement of each part of the body.
I’ll explain what happens when I do this.
../_images/operation_vrm_d.png

Select an IK marker site and select an object to assign to that site. Selectable objects are:

Self … Return to the original IK marker.
Main Camera … The main camera of the app
Each VRM, OtherObject, Light, Camera, Image, Effect … other 3D objects

Note

You cannot select Head, LeftShoulder, or RightShoulder for the body part.
It cannot be assigned to yourself, 2D objects, SystemEffect, Audio, or Stage.

Caution

Each VRM’s IK automatically reverts to default if you delete the object you’re assigning it to.


** VRM A and VRM B, and when effect objects **

../_images/operation_vrm_e.png

If you move the effect object in this state, the character A and B will turn around in that direction and look at them.

This setting and state can be reflected in the animation. Registering in the animation project is the following:

Object

Operations to register

VRM

IK marker assignment

Assigned object

Actual movement, rotation, etc.


10.3.3. Operation of hand poses

To operate the palms, open the “Arms/Hands” tab from the properties on the right and select the pose you like for the left and right hands.

../_images/prop_vrm_2.png

You can adjust the degree of pose with the slider. More hand poses will be added in future updates.

Ver 1.0.0:
  • Generally

  • Open

  • Close

  • Point

  • V-sign

  • Thumbs up

  • Grasp

From Ver 1.0.4, the following has been supported.
  • Manual operation

../_images/prop_vrm_8.png

imgfinger1 thumb to pinky joints

Each slider rotates a knuckle. The top is the 1st joint to the 2nd joint, and the bottom is the 3rd joint.

imgfinger2 Operation of the finger itself (between fingers, rotation of finger axis)
The red slider adjusts the degree of opening between the fingers with the slider.
The green slider rotates around the finger axis. (It’s not possible as a real human, but it’s a rotation operation that is often necessary with 3D models.)
imgfinger3 Base of thumb

You can adjust the rotation of the base of the thumb with a circular slider. The left represents the perspective distance between the thumb and the palm, and the right mainly represents left-right rotation.



10.3.4. BlendShape

To put it simply, you can switch the facial expressions of VRoid/VRM. Open the “Blendshape” tab of the property on the right, and adjust the value of your favorite blendshape with the slider.

../_images/prop_vrm_4.png

  • Blend shapes are determined for each VRM file, and the number that can be manipulated varies depending on the character.

  • Move the slider next to each shape key between 0 and 100.

Note

From ver 2.3.0, it has been changed so that it is registered as a key frame only when the check box is turned on. When you move the slider, the checkbox is automatically checked.

If you do not want to register a shape, uncheck it and the value of that shape will not be saved.

As a result, only the truly modified blendshapes are saved in motions and projects, reducing file size.

Search

You can incrementally search by blendshape name. If blank, all blendshapes will be displayed.

Dedicated and common blendshapes
Exclusive:

Each VRM has its own shape. Even if the shape here is made into a motion or pose file described later and applied to another VRM, it may not be reproduced.

Common:

It is a shape common to all, regardless of whether it is a VRM1.0 model or a migration model from VRM0.x. The shapes here can be reproduced in other VRMs by putting them in a motion or pose file.

The name has been changed to support VRM1.x.

Due to the VRM 1.0 specification, the behavior of SkinnedMeshRenderer’s blend shapes has been affected, and some general-purpose shapes that used SkinnedMeshRenderer in this application no longer work. This application maintains compatibility and can be used, but since it may cause confusion, we have changed the name as follows.

This app version

The shape of the SkinnedMeshRenderer

The shape of the Expression

Ver 2.0

Exclusive

Common

Ver 1.x

Generally

Exclusive

Caution

Note that private is reversed .

Note

  • The original Expression only has the bare minimum of common shapes for all VRMs.

  • There is a possibility that the number of Expressions in other apps is small, but that is the standard state. This application emphasizes compatibility, so we have made it possible to use all blendshapes as Expressions with our own improvements.

10.3.4.1. Automatic blink

Auto blink keeps VRM blinking at the specified timing.

../_images/prop_vrm_3.png

It keeps moving independently of the animation keyframes, so you don’t have to incorporate the opening and closing of the eyes into the keyframes from scratch with blendshapes.

Blink interval, number of seconds the eyelids open, number of seconds closed, number of seconds closed

By specifying each of them, you can feel the expression even with the movement of the eyes.

It is on by default. If you don’t need it, uncheck “Enable automatic blink” to turn it off.

Caution

Competes with the eye blendshape. We recommend that you use one or the other.

10.3.4.2. Lip sync

VRoid/VRM keeps moving its mouth as if it is talking.

Since it continues to move independently of the animation keyframes, there is no need to incorporate the opening and closing of the mouth into keyframes from scratch using blend shapes.

../_images/prop_vrm_a.png
Speed to open the mouth:

Specifies how quickly the mouth changes from aa from 0.0 to 0.5.

Speed to close the mouth:

Specifies how quickly the mouth changes from aa from 0.5 to 0.0.

Lip sync interval:

Specify the time it takes to start moving again after the mouth opens and closes once. The more you have, the longer the interval will be and the less frequently you will have to move your mouth.

Default is off. It is suitable for use when enabling it and then disabling it a few seconds later in the next frame to create a scene where the character is speaking.

Hint

This feature allows you to move aa and other shapes independently while aa changes.

Caution

This function does not cause VRoid/VRM to move its mouth according to the user’s speech. It is just an auxiliary function to make VRoid/VRM appear to be talking.


10.3.5. wearing an object

You can link different objects such as FBX, Obj, Light, etc. to specific body parts of VRoid/VRM and link their movements. Open the “Attach Objects” tab in the properties on the right.

../_images/operation_vrm_f.png

  1. Add another object in advance.

../_images/operation_vrm_g.png

Note

Adjust the position and rotation according to the part of the body you want to tie.

  1. Select VRoid/VRM, select the target body part, and click the Add button.

../_images/operation_vrm_h.png
  1. Select the object you want to link and press the “OK” button.

../_images/operation_vrm_i.png

Wearable objects are:

Object type

3D objects such as FBX / OBJ

Image

Light

Camera

Effect

  1. Information about the attached object will be displayed.

../_images/operation_vrm_j.png
After that, the object attached to the part of the body will also move in conjunction with it.
You can remove it with the delete button on the far right.

Caution

Handling of attached objects
Objects equipped with VRM will not be able to register deformation operations such as position and rotation in keyframes during animation. Even if you select it from the list, the IK marker will not be displayed.
Be sure to set various properties before mounting.

About wearing objects in animation projects

Equipping this object is complex, so be careful with its use and preparation in your animations. Attaching and removing an object must be separate from the start/end of the desired motion .
It is a good idea to register to the keyframes in the following order.
Example:

Equip a 3D sword object on the VRM’s right hand

Frame

VRM

Other objects

1

move the right hand to the desired position

Move the sword to the specified position

2

wear a sword object to the right hand

Register the position and rotation at this time to the key frame

~

None

9

move the right hand

None

10

Release the sword attached to the right hand

Register the position and rotation at this time to the key frame

  • Other object properties cannot be changed between 2 and 10 frames.

  • The point in the animation is that the wearing state is the same at the start and end. For example, if the 1st frame is without attachments and the 10th frame is with attachments, if you operate the frame or press the play button again, the position of the object may gradually shift.


10.3.6. gravity settings

The bones of VRoid/VRM have gravity settings as standard. Bones usually move automatically by Unity’s standard collision detection function during game and motion production.

Even with this app, hair flutters when the VRoid/VRM moves, but you can make fine adjustments manually.

Although this is an effect only for this application, for example, you can correct the phenomenon that the skirt is turned up too much by setting this gravity.

Warning

Conflicts with the stage wind effects and settings described below. Do not use this feature when using wind.

../_images/screen_gravity.png

Information on the gravity settings of bones owned by the VRM being operated is listed on the spreadsheet. The bones displayed here are:

  • Bones that the VRM itself has (already held during creation in VRoidStudio)

  • Bones held by 3D models retrofitted to VRM with tools such as the Unity editor and my work VRMOneEditor

In addition, since it should have gone through conversion with UniVRM once, it depends on the VRMSpringBone component for bone information.

Please check in advance on VRoidStudio or Unity which bones are actually located. The cells that can be changed are:

Power

Direct strength of gravity on that bone (0 to 1)

Direction X / Y / Z

Directional strength of gravity on that bone (-1 to 1)

Note

  • -1 for each Direction is the negative direction. For example, the Y axis will be downward. (1 means up)

  • Power * Direction reflects how the bones flutter due to gravity.

  • To reload the latest information, press the load button on the toolbar.

10.3.7. Texture

You can change the settings of textures held by VRM in detail. The setting and usage of OtherObject are exactly the same.

See Texture for details.

10.3.8. Play the VRMAnimation

Similar to OtherObject’s animation, VRMAnimation can also be controlled to play within an animation project using this app. The difference from FBX etc. is that VRMAnimation is completely different from VRM, so the same motion can be reused in multiple VRMs.

Preview playback

For animation registration

preview

anireg

It will play instantly. This operation is not registered in the keyframe.

Register the keyframe after selecting “Play” or “Stop”.

  1. Open VRMAnimation from Open of Pose/Motion in the 3D Model tab of the ribbon bar.

  2. Select VRMAnimation from the combo box at the top of this property panel.

  3. Select the animation clip you want to play from the second combo box.

  4. Adjust the playback mode, animation speed, etc. as necessary.

  5. Play and check.

  6. If you like, select the playback state in the animation state (for registration) and register the keyframe.

About the placement of controls:

Combo box for the motion file name

Combo box for an animation clip

Play

Stop

Play mode selection box

seek position slider

speed slider

Animation state (for registration)

Rotation of this application and VRMAnimation:.

The rotation direction of the VRM itself in this application and VRMAnimation is different in the Z direction. In this app, the default is for VRM to face in the negative direction of his Z. VRMAnimation, on the other hand, depends on each animation.

In order to absorb the difference in orientation as much as possible, this application reverses the Z direction only immediately after selecting VRMAnimation.

Close VRMAnimation:

If you really want to close it, select the target file from the project settings screen and delete it.

About IK operations

You cannot manipulate IK markers while VRMAnimation is enabled.

To temporarily disable VRMAnimation, select --- from the motion file name combo box. Then you can deselect VRMAnimation.

You can now move the VRM freely by manipulating the IK marker again.

Note

  • If there are multiple motions in VRMAnimation, please select them.

  • The animation data of the 3D object is not expanded or displayed in the key frame, but only the states of play, pause, stop, and seek are registered in the key frame.

Hint

Even if you register only changing the seek position by changing the playback position as a keyframe instead of playing or stopping, you can freely play the animation of that object.

To change the motion seek position, do the following:

  1. Move the seek position slider

  2. Set the animation state to To seek

  3. Register to keyframe

Example:

Loaded a VRMAnimation into VRM A

Frame number

Animation state (for registration)

Seek position

1

Change playback position

0.855 seconds

2

Change playback position

0.124 seconds

  • Duration is 1 second.

  • This VRM A animates as if playing in reverse.