Motion Matchingによるキャラクター操作
予め用意されたアニメーションデータを切り貼りすることで、リアルタイムでアニメーションを作成する手法
ユーザーの入力に対応できるなど、リアルタイム性を意識したアプローチ
仕組み
Nフレームごとに、現在再生中のアニメーションより適したものがあるか判定
マッチング特徴量 (Matching Features)
関節位置、関節回転
ゲームパッド入力
👆動きがあると姿勢だけでは不連続になる。ユーザーの入力も考慮する
これは一例で、何を特徴に使用するかは目的に応じて変化します(この部分はエンジニアリングが必要です)
特徴量をまとめたマッチングデータベースを用いるのが多い
全探索は大変
探索効率化
生じた不連続性を消すための処理
ブレンディング
実装例
rtpos
Root-centric local positions.
cpos
Projected root(simulation bone) centric positions.
gpos
Global space positions.
create_matcing_features()
特徴量
位置({leftFoot,rightFoot})
速度({leftFoot,rightFoot,hips})
軌跡({20,40,60}f先の位置と向き)
https://gyazo.com/77c219cd4d0090813aa56593216ba221
np.concatenate()にaxis=-1が渡されている場合、これは最後の軸(通常は列方向)に沿って配列を連結することを意味します。具体的には、2次元配列の場合、各行に新しい列を追加する形で配列が結合されます。GitHub Copilot.icon
create_traj_features()
実用のために更に必要なこと
接触があるなら→ Inverse Kinematics