キー入力によるモーションの実行について

Cubism SDK For Web(5-r.1)で
キー入力によりモーションを変更する方法を教えて頂きたく投稿させて頂きました。

SDKのデモコードを参考に
Samples/TypeScript/Demo/src/lappdelegate.ts
にキーボードイベント追加し、キー入力がはいればモーションを変更したいと考えているのですがうまくいきません。
モーションを変更する以前に現在のモデルが取得できていません

onTap処理内を参考にしているのですが、
this._models自体がundefinedになってしまており、
新規でモデルを取得しようにもエラーになってしまいます

何が悪いのでしょう。。
モーションの切り替え(実行)はstartMotionで良いのでしょうか。。

this._models.at(i).startMotion(LAppDefine.MotionGroupAdd, 0, LAppDefine.PriorityNormal);

window.addEventListener('keydown', onKeyDown);
function onKeyDown(e: KeyboardEvent): void {

  if (!LAppDelegate.getInstance()._view) {
      LAppPal.printMessage('view notfound');
      return;
  }

  if (e.key === "1") {

   console.log(this._models); // ← undefined
   this._models.set(0, null); // ← エラー
   this._models = this.getModel();// ← エラー

 //モーションの実行 これもエラー
 this._models.startMotion(LAppDefine.MotionGroupAdd, 0, LAppDefine.PriorityNormal);

     
  }
}

こんにちは。

モデルのリストを保持するのはLAppLive2DManagerクラスです。
なので以下のようにしてやるとモデルを取得できます。

LAppLive2DManager.getInstance().getModel(index);

全体としては以下のようなコードになるでしょう。

function onKeyDown(e: KeyboardEvent): void {
  if (e.key === '1') {
    const model = LAppLive2DManager.getInstance().getModel(0);
    console.log(model);

    // startMotion()でもOK
    model.startRandomMotion(
      LAppDefine.MotionGroupTapBody,
      LAppDefine.PriorityNormal,
      LAppLive2DManager.getInstance()._finishedMotion
    );
  }
}
「いいね!」 2

さっそくのお返事ありがとうございます!
無事実現することができました!助かりました!

「いいね!」 1