新しいLive2D公式コミュニティ(日本向け)が公開されました!
ぜひご利用ください!
Live2D公式コミュニティ

■このコミュニティの今後について
このコミュニティ(forum.live2d.com)につきましては、しばらくの間新コミュニティと並行して運営しますが、2022年内を目処に閉鎖する予定です。
閉鎖時期や内容については決定次第お知らせいたします。
海外向けコミュニティについては変更ございません。
Live2Dに関するユーザーのみなさま同士の交流・ご質問・不具合の報告・提案・要望などについて是非お寄せください。
※Live2D公式スタッフからの発言や回答については確約できないことを予めご了承ください。

Live2D ヘルプ

Cubism Editorダウンロード / 動作環境
Cubism SDKダウンロード / 対応表
Cubism 製品利用ライセンス(SDK含)

Cubism 製品のライセンスについてのお問い合わせはこちら
nizima 及び nizima 製品についてのお問い合わせはこちら
【各最新OSの対応状況について】
Cubism Editorは 4.1.02 正式版以降でWindows 11 及び macOS Monterey に対応しております。ぜひ最新版をご利用ください。
※macOSをお使いの方でOSアップデートする際は必ずCubism Editorのライセンスを解除してください。
Cubism EditorをインストールしているmacOSをアップグレードしたい
Cubism SDKについては各SDKのREADMEまたはNOTICEをご確認ください。

【Mac各機種への対応状況について】
現在、Cubism EditorはApple M1チップ搭載機種には対応しておりません。
詳細は 動作環境 をご参照ください。
関連するお問い合わせへの対応はこの文章をもって代えさせていただきます。
Cubism 製品のマニュアル・チュートリアルはこちら
 
Cubism Editorマニュアル    Cubism Editorチュートリアル    Cubism SDKマニュアル    Cubism SDKチュートリアル

表情やモーションを一瞬で最後のフレームに

LAppModelのSetExpressionやStartMotionを使うと表情やモーションを変更出来ますが、
これらはそれぞれのjsonファイルに設定された時間を掛けて変更されます。
それを指定した時間を無視して一瞬で一番最後の状態にする方法はありませんでしょうか?

具体的に何をしたいかと言うとセーブしてロードした時に最後の状態で復帰させたいのです。
ロード時に表情やモーションのデータをそのまま読み込ませると変更中の動きが見えてしまうので…。

コメント

  • @ねこねこ さん

    使用しているクラスや関数を見る限り、使用しているSDKはNativeまたはWebだと思われます。
    もしそうであれば、モーションを指定の時間から再生させるには、実際にモーションを再生しているCubismMotionManagerの利用方法を工夫することで対応可能です。

    StartMotion()を呼んだ直後に、CubismMotionManager::UpdateMotion()またはCubismMotionManager.updateMotion()の第二引数に、再生を開始させるモーションの時間を渡します。
    渡す時間は、0からモーションの総再生時間になります。
    それ以降は、指定した時間から通常通りモーションを再生させ続けたいのであれば第二引数に直前のフレームからの経過時間を、もし指定した時間の状態で止めておきたいのであれば0を渡します。
    ※参考として、モーションの総再生時間はCubismMotion::GetDuration()で取得することができます。

    ただし、モーションのモーションフェード、パラメータフェードの値が0でない場合、指定した時間から再生させたときもモーション間でクロスフェードが発生します。
    各フェードの時間は、CubismMotion::Parse()の処理をごらんいただければ分かる通り、.motion3.jsonに記述された値を利用しております。
    motion3.json自体の値を変更する、またはプログラムからそれらの値を変更することでモーション間のクロスフェードを無効化できますので、必要に応じて値を変更してください。
    モーションフェード、パラメータフェードについては以下をご覧ください。
    https://docs.live2d.com/cubism-editor-manual/fade-setting/

    モデルにポーズ(パーツの表示状態の制御)が設定されている場合も同様に、パーツの切替時にクロスフェードします。
    これを無効にするには、ポーズの設定が記述されている.pose3.jsonのFadeの時間を0に設定します。
    .pose3.jsonは、Cubism Viewerから編集できます。
    ポーズの詳細については以下をご覧ください。
    https://docs.live2d.com/cubism-editor-manual/pose-setting/
  • ご回答頂き、ありがとうございます。
    updateMotion()を使う事で目的の動作をさせる事が出来ました。
    この度は詳しくご教授下さり、ありがとうございました。
コメントするにはサインインまたは登録して下さい。