mtn files

◆Q. Is there any problem to move the motion data (.mtn) of 30fps or the Lip-sync data in the game of 60fps? 

◆A. There is no problem at all. It is usually recommended to set the 30fps motion definition even for the 60fps game.

If the Frame Rate of the game and the Frame Rate used in the motion are different, there is no problem as they will be fixed properly to move in the timing aimed when setting the motion.

If you move the motion defined as 30fps at the speed of 60fps, it can be expected a smooth motion equivalent of 60fps, as the missing frames are being interpolated and calculated from the previous and next values. The interpolation is calculated properly even for the numbers which cannot be divided like 60fps:31fps.

The expression with Live2D is not that strong like those of the action games, and have enough expressiveness even with 30fps. To create a motion with 30fps is also recommended for the purpose of reducing the data volume. Of course there is no problem to create a motion with 60fps.

 Q. It does not move on the actual machine as I expected in the .mtn file exported in the Animator tool.

◆A1. There is a possibility that disused data is exported in the .mtn file. 

An .mtn file is a string data type that can be opened with the text editor.
Example) PARAM_ANGLE_X=0,0,0,0.1,0.2,0.3,0.4,.....

Open it with Notepad and check if there is any parameter ID which is disused or if there is any unexpected numbers continuously written in the end of the data to adjust the export setting in the Animator tool.

If there is any unexpected numbers continuously written, "Output Work Area" may not be set.

◆A2. There may be an influence of fading in and fading out.
An .mtn. file applies fading in and fading out to connect the previous and next motions (.mtn) smoothly. When a new motion M2 started with interrupting the movement of a motion M1, M1 starts fading out and M2 starts fading in.
You can specify the length of fading in and fading out by setFadeIn (millisecond), setFadeOut (millisecond) of the Live2DMotion class (its parent class is AMotion) of actual loading. The length is expressed with millisecond and the default setting is 1000 millisecond (=1 second). Remember that the specified millisecond may differ from the actual specified time according to the calculation, and you need to make settings with adjusting the actual machine.

Followings are the standard settings;
0 millisecond : Exchange the previous and the next motions instantaneously (not smooth)
500 millisecond: Exchange them at high speed. It seems too fast for exchanging the arm posing.
1000 millisecond: Default setting
4000 millisecond: Exchange them slowly. It may seem to be unnatural depending on the movement.

For the motion to exchange the arm posing, it is recommended to exchange them at high speed with certain level from 500 to 1000 milliseconds, as the display during fading in is not complete (two arms seem overlapped, the screen seems transparent to the background, or the joints seem to be doubled, etc.)

◆Q.About the loading of Android model data.
I load the data in the asset folder using the open_resource method of the FileManager class. Is there any way to load and use the data which is downloaded from the server and saved inside?

◆A.Load the downloaded data as a binary data.
It is possible to download the moc data from outside to save it inside for loading. Load it as a binary data.
If you intend to ask the way to load the downloaded data into assets, we are afraid that we cannot answer it.
Or if you intend to ask about the loading by SQLite, it should be possible if you can load the binary data.
Please note that we do not examine it.