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 ~~~ tl3The 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:#FFFF00A 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:#FF9090A 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.