★お知らせ(2023/12/27)
いつもLive2D公式コミュニティをご利用いただき誠にありがとうございます。
本コミュニティは2023年12月27日 11:00をもって閉鎖いたしました。
今後の運営はすべて新Live2D公式クリエイターズフォーラムに移行します。
閉鎖に伴い、以下機能は利用不可となります。
・アカウントの新規作成
・トピック投稿、返信
たくさんのご利用誠にありがとうございました。
新Live2D公式クリエイターズフォーラムは以下バナーよりご利用いただけます。
なお、本コミュニティに投稿されたトピックはすべて残りますが、今後削除する可能性がございますので予めご了承ください。
閉鎖に関するお問い合わせにつきましてはLive2D公式クリエイターズフォーラムへご連絡ください。
いつもLive2D公式コミュニティをご利用いただき誠にありがとうございます。
本コミュニティは2023年12月27日 11:00をもって閉鎖いたしました。
今後の運営はすべて新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);
}
--------------------------------------------------------------------------------
お手数をお掛けして大変恐縮ですが、どのように★の部分の記述を修正すべきか、情報を
お寄せ頂きたく存じます。よろしくお願いいたします。
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);
}
--------------------------------------------------------------------------------
お手数をお掛けして大変恐縮ですが、どのように★の部分の記述を修正すべきか、情報を
お寄せ頂きたく存じます。よろしくお願いいたします。
0
コメント
_motionController.PlayAnimation(animation, isLoop: false);
上記の行を以下のように書き換えてもモーションが再生されないか確認をお願いできますでしょうか?
_motionController.PlayAnimation(animation, isLoop: false, priority: CubismMotionPriority.PriorityForce);