Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

If you have any questions, reports, suggestions, or requests about Live2D, please send them to this community.
※We cannot guarantee statements or answers from Live2D staff. Thank you for your understanding in advance.
Live2D Cubism
Cubism Products and Downloads
Cubism product manuals and tutorials
Cubism Editor Manual    Cubism Editor Tutorial    Cubism SDK Manual    Cubism SDK Tutorial
[About macOS Ventura 13.0] (12/20/2022)
The currently released Live2D Cubism SDK is not guaranteed to work with macOS Ventura.
Please refrain from upgrading the macOS as they may not work properly.
The Cubism Editor license file may be lost after the macOS upgrade.
Please make sure to deactivate the Cubism Editor license before upgrading the macOS.
For more details
About the support for Mac models
Cubism Editor is not supported with Apple M1 processors.
Please refer to System Requirements for details.
We will not respond to any related inquiries with this message.

How to stop a motion and play another?

edited February 2016 in Help
i use sampleapp1 as the sample project.

when i play in unity with my own model, idle motion was the first motion that started.
i click the model then another motion playing successfully.
my problem is: it cant be stop and cant back to idle motion.
is there setting of motion i missed in live2d viewer or mybe in live2d animator? could you help me please?
thank you very much :)


  • Motion playback I have randomly StartRandomMotion() in LAppModel.cs.

    // IDLE Motion
    public void Update(){
    if (mainMotionManager.isFinished())

    StartRandomMotion(LAppDefine.MOTION_GROUP_IDLE, LAppDefine.PRIORITY_IDLE);

    // Tap Event
    public bool TapEvent(float x, float y){
    if (LAppDefine.DEBUG_LOG) Debug.Log("tapEvent view x:" + x + " y:" + y);

    if (HitTest(LAppDefine.HIT_AREA_HEAD, x, y))

    if (LAppDefine.DEBUG_LOG) Debug.Log("Tapped face");
    else if (HitTest(LAppDefine.HIT_AREA_BODY, x, y))
    if (LAppDefine.DEBUG_LOG) Debug.Log("Tapped body");
    StartRandomMotion(LAppDefine.MOTION_GROUP_TAP_BODY, LAppDefine.PRIORITY_NORMAL);
    return true;
    If you specify the motion you want to play in the model.json, it will be played in random.
    {"file":"motions/" ,"fade_in":2000, "fade_out":2000},
    {"file":"motions/" ,"fade_in":2000, "fade_out":2000},
    {"file":"motions/" ,"fade_in":2000, "fade_out":2000}
    { "file":"motions/" , "sound":"sounds/tapBody_00.mp3","fade_out":0},
    { "file":"motions/" , "sound":"sounds/tapBody_01.mp3","fade_out":0},
    { "file":"motions/" , "sound":"sounds/tapBody_02.mp3","fade_out":0}
    Because to be processed in the following order , try to debug in IdleMotion Start.

    1. IdleMotion Start → LAppModel.cs Update()
    2. TapEventMotion Start → LAppModel.cs TapEvent()
    3. IdleMotion Start → LAppModel.cs Update() ※ Only when the motion is finished.
  • so, do you mean i must add the lappmodel.cs Update() again after TapEvent() finished? o
    or add lappmodel.cs Update() into TapEvent()?

    sorry im new for C# user. its difficult to understand
  • LAppModel.cs of code I wrote earlier is the code that is included in the SDK samples.
    So, modification of the program is not required.

    Please check the mainMotionManager.isFinished() that is in the public void Update().
    Then, you can detect whether you are idle motion is being played.

    Then, StartRandomMotion is to run the idle motion.
    In other words, please confirm that this is running correctly.

    Another reason for the idle motion is not played, the setting of model.json might bad.
  • hi naotaro, i was checked the mainMotionManager.isFinished() and StartRandomMotion
    it was ran correctly
    now my model work! :)
    i found my setting of model.json was wrong.

    if i have any problem i`ll ask you again :)
    thank you very much for your help :D
Sign In or Register to comment.