★お知らせ(2023/12/27)
いつもLive2D公式コミュニティをご利用いただき誠にありがとうございます。
本コミュニティは2023年12月27日 11:00をもって閉鎖いたしました。
今後の運営はすべて新Live2D公式クリエイターズフォーラムに移行します。
閉鎖に伴い、以下機能は利用不可となります。
・アカウントの新規作成
・トピック投稿、返信
たくさんのご利用誠にありがとうございました。

新Live2D公式クリエイターズフォーラムは以下バナーよりご利用いただけます。
Live2D公式クリエイターズフォーラム

なお、本コミュニティに投稿されたトピックはすべて残りますが、今後削除する可能性がございますので予めご了承ください。
閉鎖に関するお問い合わせにつきましてはLive2D公式クリエイターズフォーラムへご連絡ください。
オプション

「外部のスクリプトなどからMotionPlayer.PlayMotion()を呼び出し、引数に再生したいAnimationClipを渡す」此方のスクリプト記述方法について

お世話になります。椎香と申します。

Live2D、Unity共に初心者であり、且つC#プログラミング初心者のため、極基本的な内容で申し訳ありません。


「音声入力中の単語からキーワードを拾い、モーションを実行させる」事を目標にしています。
下記のチュートリアルの「2. AnimationClipを再生させる命令を呼び出すコンポーネントを用意」の、
 「1でCubismMotionControllerをアタッチしたGameObjectに、作成したMotionPlayerをアタッチ」までは
 完了しています。
  SDKチュートリアル「スクリプトからモーションを再生させる」
  https://docs.live2d.com/cubism-sdk-tutorials/motion-unity-ow/

しかし、
「外部のスクリプトなどからMotionPlayer.PlayMotion()を呼び出し、引数に再生したいAnimationClipを渡す」
の部分を実装できず、非常に困っています。


【前提条件】
 ・呼び出したいモーション名:mnt_001
 ・適用したいオブジェクト名:AKIRA_EXPORT_001

[呼び出す関数]-------------------------------------------------------------------
using System.Collections;
using Live2D.Cubism.Framework.Motion;
using UnityEngine;

public class MotionPlayer : MonoBehaviour
{
CubismMotionController _motionController;
private void Start()
{
_motionController = GetComponent();
Debug.Log("呼び出された");
}
public void PlayMotion(AnimationClip animation)
{
if ((_motionController == null) || (animation == null))
{
Debug.Log("Nullだった");
Debug.Log(animation.name);
return;
}
_motionController.PlayAnimation(animation, isLoop: false);
}
}
--------------------------------------------------------------------------------

 ★此処が動作せず、モーションが実行されません

[呼び出しに行く関数] ※一部抜粋------------------------------------------------

★ // MotionPlayer.PlayMotion()を呼び出し、引数にAnimationCrip(mnt_001)を指定して実行させる
private void KONNICHIWA()
{
Debug.Log("こんにちは");
★ MotionPlayer m1 = refObj.GetComponent();
★ AnimationClip crip = new AnimationClip();
★ crip.name = "mtn_001";

Debug.Log(crip.name);
★ m1.PlayMotion(crip);
}

--------------------------------------------------------------------------------

お手数をお掛けして大変恐縮ですが、どのように★の部分の記述を修正すべきか、情報を
お寄せ頂きたく存じます。よろしくお願いいたします。

コメント

  • オプション
    椎香 @SHIIKA30 さん

    _motionController.PlayAnimation(animation, isLoop: false);
    上記の行を以下のように書き換えてもモーションが再生されないか確認をお願いできますでしょうか?
    _motionController.PlayAnimation(animation, isLoop: false, priority: CubismMotionPriority.PriorityForce);
コメントするにはサインインまたは登録して下さい。