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 forum.
※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
Cubism Editor 5.1.00 beta1 is now available!

We have incorporated some of the feedback we received from those who tried the alpha version.
Thank you very much for your comments and requests!
All alpha versions will soon be closed to the public and will no longer be available.
Also, the Cubism Editor 5.1 alpha category will be closed, so please send your comments and requests to the Cubism Editor category.

How to stop a motion and play another?

edited December 2023 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 :)


  • Options
    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.
  • Options
    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
  • Options
    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.
  • Options
    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.