エンジニアファーストな人形キャラクター向けメッシュ変形ライブラリ
https://github.com/marukun712/kokoro
本デモページでは、以下の立ち絵を使用させていただいております。
https://seiga.nicovideo.jp/seiga/im11114797
3D・2D 問わず、キャラクターのアニメーションには一般的にボーン構造が使われます。ボーンはアニメータにとってなじみ深い概念ですが、エンジニアにとっては必ずしもそうではありません。
@kokoro/rig は別のアプローチをとります。キャラクターを構成する全スプライトのメッシュ頂点を、一本の数値配列として扱います。「キャラクターを動かす」とは、この配列を毎フレーム書き換えることです。
ポーズは (u, v, t) => Transform という関数で表現します。各頂点の UV 座標をウェイト計算に使うことで、「上半身ほど大きく動く」「毛先ほどよく揺れる」といった位置に連動した自然な変形を1つの関数で記述できます。複数のポーズはウェイト加算で合成され、PoseBlender.lerp で線形補間もできます。
部位ごとにリグを分けて親子関係を持たせることで、体幹の動きを髪や腕に継承させながら、それぞれ独立した揺れを加えることもできます。
npx jsr add @kokoro/rig詳細は packages/rig を参照してください。