新しい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チュートリアル

「外部のスクリプトなどから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);
コメントするにはサインインまたは登録して下さい。