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

■このコミュニティの今後について
このコミュニティ(forum.live2d.com)につきましては、しばらくの間新コミュニティと並行して運営しますが、2022年内を目処に閉鎖する予定です。
閉鎖時期や内容については決定次第お知らせいたします。
海外向けコミュニティについては変更ございません。
【各最新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にて実行時のモーション再生につきまして

はじめて質問させていただきます。

Unity実行時(そして実行中のモーションの切替時)に、モーションが1フレーム目からではなく、デフォルトの状態(モデラーで設定したモデルの初期状態)からモーションの1フレーム目に遷移してからモーションの再生がはじまってしまいます。
実行時即モーションの1フレーム目から開始する方法はないでしょうか。

ちなみに、コードは下記です。
こちらで実行すると、実行時にモデルの初期状態→モーションの1フレーム目から再生となり、またクリック毎に「前モーション→デフォルトの状態→次のモーション」というふうに遷移してしまいます(この間にあるデフォルトの状態をなくしたい)。

コードに何か問題がありますでしょうか?(mtnファイルが問題?)



public class main : MonoBehaviour {
public TextAsset mocFile;
public Texture2D[] textures;
public TextAsset[] mtnFiles; // mtnファイル

private Live2DModelUnity live2DModel;
private Live2DMotion motion; // Live2Dモーションクラス
private MotionQueueManager motionManager; // モーション管理クラス

int suuti;

void Start () {
Live2D.init ();

live2DModel = Live2DModelUnity.loadModel(mocFile.bytes);
live2DModel.setTexture(0, textures[0]);


motion = Live2DMotion.loadMotion( mtnFiles[ 0 ].bytes );
motion.setLoop( true );


motionManager = new MotionQueueManager();

motionManager.startMotion( motion, false );
}

// Update is called once per frame
void Update () {
if(Input.GetMouseButtonUp(0)){
suuti++;
if(suuti>=4){
suuti=0;
}
live2DModel = Live2DModelUnity.loadModel(mocFile.bytes);
live2DModel.setTexture(0, textures[0]);

motion = Live2DMotion.loadMotion( mtnFiles[suuti].bytes );
motion.setLoop( true );
motionManager = new MotionQueueManager();
motionManager.startMotion( motion, false );

}



}

void OnRenderObject()
{

Matrix4x4 m1=Matrix4x4.Ortho(-200.0f, 200.0f,200.0f,-200.0f,-0.5f,0.5f);
Matrix4x4 m2 = transform.localToWorldMatrix;
Matrix4x4 m3 = m2*m1;

live2DModel.setMatrix(m3);

motionManager.updateParam( live2DModel );

live2DModel.update();
live2DModel.draw();


}
}

以上、よろしくお願い致します。

コメント

コメントするにはサインインまたは登録して下さい。