/// <summary> /// 表情のロード /// </summary> private void LoadExpression() { //初期化 Expression = new MsgExpression(); //モデルに設定されている表情ファイルを読み込む //foreach (LiplisMotion expression in modelSetting.ExpressionList) //{ // Expression.Add(this.ModelPath, expression); //} //TODO LiplisModel:LoadExpression:1件もExpressionを設定しなかった場合に、正しく動作するかテスト //リビルド Expression.FixAndRebuildTable(); }
/// <summary> /// エクスプレッションをロードする /// </summary> /// <param name="Expression"></param> private void LoadExpression(MsgExpression Expression) { //テーブルのロード this.TableExpression = Expression.TableExpression; //アニメメーター登録 foreach (KeyValuePair <string, AnimationClip> kv in Expression.TabelAnimationClip) { //ワラップモード設定 kv.Value.wrapMode = WrapMode.Loop; //レガシーアニメーションに設定(この設定は必須) kv.Value.legacy = true; //アニメーターに登録 this.Animator.AddClip(kv.Value, kv.Key); } }
//==================================================================== // // 初期化処理 //==================================================================== #region 初期化処理 /// <summary> /// コンストラクター /// </summary> /// <param name="targetPath"></param> public LiplisModelLive2d(string modelPath, //モデルパス LiplisModelData modelData, //モデルデータ float ModelScale, GameObject CanvasRendering, //親キャンバス Vector3 targetPosition, //ターゲット座標 MsgExpression Expression, //表情データ ModelEvents.OnNextTalkOrSkip CallbackOnNextTalkOrSkip //次へクリックコールバック ) { //モデルデータ取得 this.modelData = modelData; this.CanvasRendering = CanvasRendering; this.Direction = modelData.Direction; this.CallbackOnNextTalkOrSkip = CallbackOnNextTalkOrSkip; this.ModelScale = ModelScale; //モデルのロード LoadModel(modelPath, modelData.FileName, targetPosition); //表情のロード LoadExpression(Expression); }