12.2. Animation project structure

We will explain the structure of the animation project. Roughly speaking, it goes like this:

flowchart LR subgraph File VRM[(VRM)] 3dobj[(3D models)] end subgraph Project direction LR subgraph Timeline subgraph role[Role] direction LR cast((Cast)) subgraph keyframe direction TB keys1{" "} keys2{" "} keys3{" "} end end end subgraph tl2["Timeline 2"] cast2((Cast)) end subgraph tl3["Timeline 3"] end end style Project fill:#AAAAFA style role fill:#00FF00 style cast fill:#FF9090 style cast2 fill:#FF9090 style keyframe fill:#FFFF25 style keys1 fill:#FFFF00 style keys2 fill:#FFFF00 style keys3 fill:#FFFF00 tl2 ~~~ tl3 VRM ==> cast 3dobj ==> cast2

12.2.1. Each element

Timeline
flowchart LR subgraph tl1[Timeline 1] avatar1((Role)) end subgraph tl2[Timeline 2] avatar2((Role)) end subgraph tl3[Timeline 3] avatar3((Role)) end style avatar1 fill:#00FF00 style avatar2 fill:#00FF00 style avatar3 fill:#00FF00 tl1 ~~~ tl2 ~~~ tl3
The timeline is the basic unit of animation. One timeline corresponds to one role and one cast.
The following roles are responsible for all of the actual functions.






Role
flowchart LR subgraph role[Role] direction LR cast((Cast)) subgraph keyframe direction TB keys1{" "} keys2{" "} keys3{" "} end end style role fill:#00FF00 style cast fill:#FF9090 style keyframe fill:#FFFF25 style keys1 fill:#FFFF00 style keys2 fill:#FFFF00 style keys3 fill:#FFFF00
A role is a collection of roles and character actions that determine how each object moves on the timeline.
Within the role there are casts to be assigned and keyframe data.
A role can be replaced with another object as long as it is of the same object type.

In effect, Timeline = Roll. When we say timeline in this manual, we mean role, and vice versa.





Cast / object / avatar
flowchart LR cast((Cast)) style cast fill:#FF9090
A cast is an object assigned to a role. This is the substance of the actual VRoid/VRM, FBX, Light, Audio, and other objects.
In this application, they are simply referred to as OBJECT or AVATAR.



Key frame
flowchart LR subgraph keyframe direction TB keys1{" "} keys2{" "} keys3{" "} end style keyframe fill:#FFFF25 style keys1 fill:#FFFF00 style keys2 fill:#FFFF00 style keys3 fill:#FFFF00

A keyframe is the actual movement data of the roll, the motion. This data is only held by the role, and in principle it does not depend on each object.




12.2.2. timeline role cast relationship

The timeline is ultimately the same as the role. Then cast means the same as the actual object.
Roles are linked 1:1 with casts (objects). A role can be in an uncast state, but the role will not be animated at all.

You can later assign another cast (object) to the role.

For example, it would be as follows. (colors and icons correspond to the example above)

flowchart LR subgraph File VRM1[(VRM 1)] VRM2[(VRM 2)] end subgraph Timeline subgraph role[Role] direction LR cast((Cast)) subgraph keyframe direction TB keys1{" "} keys2{" "} keys3{" "} end end end style role fill:#00FF00 style cast fill:#FF9090 style keyframe fill:#FFFF25 style keys1 fill:#FFFF00 style keys2 fill:#FFFF00 style keys3 fill:#FFFF00 VRM1 & VRM2 ==> cast
Role:

anime and drama characters

cast:

voice actor, actor himself

The actual animation data is held by the role. So it doesn’t matter what the actual cast (object) is to play that motion.
Because of the above mechanism, you can play your favorite animation with your favorite object.