★お知らせ(2023/12/27)
いつもLive2D公式コミュニティをご利用いただき誠にありがとうございます。
本コミュニティは2023年12月27日 11:00をもって閉鎖いたしました。
今後の運営はすべて新Live2D公式クリエイターズフォーラムに移行します。
閉鎖に伴い、以下機能は利用不可となります。
・アカウントの新規作成
・トピック投稿、返信
たくさんのご利用誠にありがとうございました。
新Live2D公式クリエイターズフォーラムは以下バナーよりご利用いただけます。
なお、本コミュニティに投稿されたトピックはすべて残りますが、今後削除する可能性がございますので予めご了承ください。
閉鎖に関するお問い合わせにつきましてはLive2D公式クリエイターズフォーラムへご連絡ください。
いつもLive2D公式コミュニティをご利用いただき誠にありがとうございます。
本コミュニティは2023年12月27日 11:00をもって閉鎖いたしました。
今後の運営はすべて新Live2D公式クリエイターズフォーラムに移行します。
閉鎖に伴い、以下機能は利用不可となります。
・アカウントの新規作成
・トピック投稿、返信
たくさんのご利用誠にありがとうございました。
新Live2D公式クリエイターズフォーラムは以下バナーよりご利用いただけます。
なお、本コミュニティに投稿されたトピックはすべて残りますが、今後削除する可能性がございますので予めご了承ください。
閉鎖に関するお問い合わせにつきましてはLive2D公式クリエイターズフォーラムへご連絡ください。
コメント
MotionとはCubismMotionControllerのことでしょうか?
そうであれば、再生したアニメーションを一時停止する機能はございません。
CubismMotionControllerはUnityのPlayable APIを利用してAnimationClipを再生しているため、
ユーザ側でカスタマイズすることで実現が可能だと考えられます。
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で再生されて、マウス離した瞬間一時停止されます。
そしてもう一度マウス押すと続きから再生。
これをベースにいろいろいじると大体のことはできそうな気がします。
素人の考えた方法なのでもっといいのがあるかもしれませんが、同じ悩みの人の参考になれば幸いです。