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

■このコミュニティの今後について
このコミュニティ(forum.live2d.com)につきましては、しばらくの間新コミュニティと並行して運営しますが、2023年夏ごろを目処に方針を決定する予定です。
(2022/12/27追記 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チュートリアル

一時停止のやり方

初挑戦ながらゲームを作ろうと、UnityにてSDKのMotionからアニメーションを再生していろいろ試しているのですが
一時停止機能はないのでしょうか?
クリックするたびに一時停止→再生を繰り返してちょっとずつアニメーションを進めたいのですが
やり方が分からず困っています。

初歩的な質問だったらすみません

タグ付けされた:

コメント

  • @tac240 さん

    MotionとはCubismMotionControllerのことでしょうか?
    そうであれば、再生したアニメーションを一時停止する機能はございません。
    CubismMotionControllerはUnityのPlayable APIを利用してAnimationClipを再生しているため、
    ユーザ側でカスタマイズすることで実現が可能だと考えられます。
  • 解決したので、CubismSDK使っていない、Unity側の話になってしまいますが一応記載します。
    Unityでアニメーションを再生する方法は現在のところ
    Animator Controllerを使う、Simple Animationを使う、Timelineを使う のようなのですが
    小規模のそんなに数が多くないアニメーションだとAnimator Controllerは多機能すぎて複雑
    というか素人の自分にはさっぱりわからぬだったのでSimple Animationを使いました。
    Unity公式がだしてるアセット?になりまして、詳しくは検索どうぞ。

    Simple Animationと、Unityの当たり判定に使われるCollider、
    アニメーションの停止位置を調べるのに使うnormalizedTime、
    Collider上にマウス持ってくと勝手に反応してくれるOnMouseDown()

    この4つを使って

    using UnityEngine;

    //クラス名は適当です
    public class AnimationManager : MonoBehaviour {

    [SerializeField]
    private SimpleAnimation _simpleAnimation;
    //再生開始位置の初期値です。normalizedTimeは0~1で小数点なのでfloatです
    float m_normalizedTime = 0f;

    public void OnMouseDown(){
    //再生開始位置をセットする。初クリックの時は0からですね。マウス押したとき呼ばれます。
    //Defaultって名前のアニメーションの、再生開始位置がm_normalizedTime(停止した位置)からになります。
    _simpleAnimation.GetState("Default").normalizedTime = m_normalizedTime;
    _simpleAnimation.Play("Default");
    }

    public void OnMouseUp(){
    //Stopする前にアニメ停止位置を保存する。マウス離したときに呼ばれます。Stopした後にこれ書くと常に0になっちゃうので注意
    m_normalizedTime = _simpleAnimation.GetState("Default").normalizedTime;
    _simpleAnimation.Stop("Default");
    }
    }

    詳しい手順は省いているので真似する時は上の4つ検索して調べてください。
    これとcolliderをLive2Dで作ったオブジェクトにくっつけてあげると、
    colliderの範囲内でマウス押したときPlayで再生されて、マウス離した瞬間一時停止されます。
    そしてもう一度マウス押すと続きから再生。

    これをベースにいろいろいじると大体のことはできそうな気がします。
    素人の考えた方法なのでもっといいのがあるかもしれませんが、同じ悩みの人の参考になれば幸いです。
コメントするにはサインインまたは登録して下さい。