game-development について
ゲームアニメーションの制作者向けに、ディズニーの 12 原則をゲームエンジンやプレイヤーへのフィードバックへ応用する方法を解説します。Unity と Unreal の実装パターンや動作のフレーム数も扱います。
主な機能
- 0112 のアニメーション原則の応用
- 02キャラクター動作とプレイヤーへのフィードバック
- 03Unity と Unreal の実装パターン
- 04動作のフレームデータ参照
活用シーン
- 01読み取りやすい攻撃の予備動作の設計
- 02ヒットストップや画面揺れによる衝撃の強調
- 03ジャンプ、弾道、回避の軌道設計
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ dylantarre/ animation-principles --skill game-developmentインストール後、Claude Code で/game-developmentを入力して読み込まれたか確認します。
詳細
ゲーム開発アニメーション
ディズニーのアニメーション12原則をゲームエンジン、プレイヤーへのフィードバック、インタラクティブエンターテインメントに応用します。
クイックリファレンス
| 原則 | ゲームでの実装 |
|---|---|
| つぶしと伸ばし | キャラクターの変形、インパクトフレーム |
| 予備動作 | 溜めアニメーション、チャージインジケーター |
| 演出 | カメラの注目点、環境による手がかり |
| ストレートアヘッドとポーズ・トゥ・ポーズ | プロシージャルアニメーションとキーフレームアニメーション |
| 後追いとオーバーラップ | マント、髪、武器の軌跡 |
| スローインとスローアウト | アニメーションカーブ、攻撃と回復 |
| 運動曲線 | 飛翔体の軌道、ジャンプの軌跡 |
| 副次動作 | パーティクル、画面の揺れ、音声との同期 |
| タイミング | フレームデータ、ヒットストップ、反応可能時間 |
| 誇張 | スタイライズされた動き、被弾リアクション |
| 立体感 | 一貫したシルエット、遠距離での見やすさ |
| 魅力 | キャラクターの個性、満足感のあるフィードバック |
原則の応用
つぶしと伸ばし:着地時の衝撃に合わせてキャラクターを変形させます。素早い移動中は伸ばします。インパクトフレームでは動きを止め、つぶして力強さを表現します。変形中も体積を一貫させます。
予備動作:攻撃の溜め動作でプレイヤーに予告します。ジャンプでは地面を離れる前にしゃがみます。チャージ攻撃では溜めを見せます。敵の予備動作で、迫りくるダメージを警告します。
演出:重要なアクションをカメラで捉えます。環境照明で視線を誘導します。敵の配置によって、状況を把握しやすい戦闘シーンを作ります。UIが重要なゲームプレイを覆わないようにします。
ストレートアヘッドとポーズ・トゥ・ポーズ:プロシージャルアニメーション(ラグドール、物理演算)はストレートアヘッドです。キーフレームによる攻撃コンボはポーズ・トゥ・ポーズです。キーフレームを基本にプロシージャルな二次動作を加え、両方を組み合わせます。
後追いとオーバーラップ:髪、布、尻尾などの二次要素は、体が止まった後も動き続けます。武器の軌跡は振り終わった後も残ります。着地後の回復動作は、最初の衝撃の後まで続きます。
スローインとスローアウト:アニメーションカーブを使い、キャラクターの動きに直線的な変化を使わないようにします。攻撃の立ち上がりは速く、回復はゆっくりにします。ジャンプの頂点では動きを緩め、滞空感を調整します。
運動曲線:ジャンプは放物線を描きます。剣の振りは曲線を描きます。ヒットスキャンでない限り、飛翔体は自然な弧を描きます。回避ローリングは直線移動ではなく、曲線を描きます。
副次動作:衝撃時に画面を揺らします。命中時にパーティクルを発生させます。アクションに合わせてコントローラーを振動させます。サウンドデザインで視覚的なタイミングを強調します。
タイミング:ヒットストップ(フレーム単位の停止)で衝撃を強調します。一般的には2〜5フレームです。攻撃の立ち上がり/有効時間/回復のフレームデータは、ゲームの手応えを左右します。入力への反応は100ms未満にします。
誇張:ゲームアニメーションは、遠距離でも高速でも見やすくする必要があります。ポーズは現実的な表現より20〜30%誇張します。被弾リアクションは物理的に想定されるよりも大げさにします。明瞭さを優先してスタイライズします。
立体感:どのズームレベルでもシルエットを判別できるようにします。アニメーションを通じてキャラクターのプロポーションを一貫させます。キーフレームで力強いポーズを作ります。形状を分かりにくくする接線を避けます。
魅力:キャラクターの個性を待機アニメーションで表現します。ゲームの仕組みとは関係なく、動きに満足感を持たせます。プレイヤーが自分のキャラクターの動きを見て楽しめるようにします。
エンジンのパターン
Unity
// Squash and stretch on landing
IEnumerator LandingSquash() {
transform.localScale = new Vector3(1.2f, 0.8f, 1.2f);
yield return new WaitForSeconds(0.05f);
// Ease back to normal
float t = 0;
while (t < 1) {
t += Time.deltaTime * 8f;
transform.localScale = Vector3.Lerp(
new Vector3(1.2f, 0.8f, 1.2f),
Vector3.one,
EaseOutElastic(t));
yield return null;
}
}
// Hit-stop for impact
IEnumerator HitStop(int frames) {
Time.timeScale = 0f;
for (int i = 0; i < frames; i++)
yield return null;
Time.timeScale = 1f;
}
Unreal
// Animation curve for easing
UPROPERTY(EditAnywhere)
UCurveFloat* JumpArcCurve;
// Apply curve to movement
float CurveValue = JumpArcCurve->GetFloatValue(NormalizedTime);
タイミングの目安
| アクションの種類 | 立ち上がり | 有効時間 | 回復 |
|---|---|---|---|
| 弱攻撃 | 3-6f | 2-4f | 8-12f |
| 強攻撃 | 12-20f | 4-8f | 16-24f |
| ジャンプ | 3-4f | -- | 4-6f |
| 回避 | 2-4f | 8-12f | 6-10f |
フレームデータは60fpsの場合です。対象のフレームレートに合わせて調整してください。