Game Development

dylantarre/animation-principles/skills/01-by-domain/game-development

作者 dylantarre83597134ba8f無授權條款99 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫9 個月前更新

Use when implementing game animations, player feedback, character movement, or interactive entertainment in Unity, Unreal, or other game engines.

AI 產生的概覽

將迪士尼12項動畫原則套用於遊戲引擎中的遊戲動畫、玩家回饋與角色移動。

功能
此技能透過把迪士尼12項動畫原則對應到引擎層級的技術,為遊戲動畫與互動手感的實作提供指引。內容涵蓋擠壓與伸展、預備動作、舞台調度、跟隨與重疊、緩入緩出、弧線、次要動作、時間節奏、誇張、扎實的繪畫和吸引力,並逐項提供簡要說明。它也包含Unity與Unreal的引擎實作範例,以及攻擊、跳躍和閃避的影格資料時間參考。產出的是建議性指引與程式碼片段,而非檔案或指令碼。
適用情境
適用於在Unity、Unreal或類似引擎中實作或調整遊戲動畫、角色移動、打擊回饋或互動娛樂時。也適合處理動畫曲線、命中停頓、攻擊影格資料和可讀的玩家回饋等工作。
執行需求
不包含指令碼或素材,僅為說明性指示。範例涉及Unity(C#)與Unreal(C++),套用時需要有相應的遊戲引擎專案。

Game Development Animation

Apply Disney's 12 animation principles to game engines, player feedback, and interactive entertainment.

Quick Reference

PrincipleGame Implementation
Squash & StretchCharacter deformation, impact frames
AnticipationWind-up animations, charge indicators
StagingCamera focus, environmental cues
Straight Ahead / Pose to PoseProcedural vs keyframed animation
Follow Through / OverlappingCapes, hair, weapon trails
Slow In / Slow OutAnimation curves, attack/recovery
ArcProjectile paths, jump trajectories
Secondary ActionParticles, screen shake, audio sync
TimingFrame data, hit-stop, response windows
ExaggerationStylized movement, hit reactions
Solid DrawingConsistent silhouettes, read at distance
AppealCharacter personality, satisfying feedback

Principle Applications

Squash & Stretch: Deform characters on landing impact. Stretch during fast movement. Impact frames freeze and squash for power. Keep volume consistent in deformation.

Anticipation: Attack wind-ups telegraph to players. Jump squats before leaving ground. Charge attacks show buildup. Enemy tells warn of incoming damage.

Staging: Camera frames important action. Environmental lighting guides attention. Enemy placement creates readable combat scenarios. UI doesn't obscure critical gameplay.

Straight Ahead vs Pose to Pose: Procedural animation (ragdoll, physics) is straight ahead. Keyframed attack combos are pose to pose. Blend both—keyframed base with procedural secondary motion.

Follow Through & Overlapping: Secondary elements (hair, cloth, tails) continue after body stops. Weapon trails persist after swing. Landing recovery extends past initial impact.

Slow In / Slow Out: Use animation curves—never linear for character motion. Attack startup fast-out, recovery slow-in. Ease jumps at apex for floatiness control.

Arc: Jumping follows parabolic arc. Sword swings trace curved paths. Projectiles arc naturally unless hitscan. Dodge rolls curve rather than linear translate.

Secondary Action: Screen shake on impact. Particle bursts on hits. Controller rumble synced to action. Sound design reinforces visual timing.

Timing: Hit-stop (freeze frames) emphasizes impact—2-5 frames typical. Attack startup/active/recovery frame data matters for game feel. Response to input under 100ms.

Exaggeration: Game animation reads at distance and speed. Exaggerate poses 20-30% beyond realistic. Hit reactions more dramatic than physics would suggest. Stylization serves clarity.

Solid Drawing: Silhouettes must read at all zoom levels. Consistent character proportions across animations. Strong poses at keyframes. Avoid tangent lines that confuse form.

Appeal: Characters have personality in idle animations. Movement feels satisfying independent of mechanics. Players should enjoy watching their character move.

Engine Patterns

Unity

csharp
// Squash and stretch on landingIEnumerator 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 impactIEnumerator HitStop(int frames) {    Time.timeScale = 0f;    for (int i = 0; i < frames; i++)        yield return null;    Time.timeScale = 1f;}

Unreal

cpp
// Animation curve for easingUPROPERTY(EditAnywhere)UCurveFloat* JumpArcCurve;
// Apply curve to movementfloat CurveValue = JumpArcCurve->GetFloatValue(NormalizedTime);

Timing Reference

Action TypeStartupActiveRecovery
Light attack3-6f2-4f8-12f
Heavy attack12-20f4-8f16-24f
Jump3-4f--4-6f
Dodge2-4f8-12f6-10f

Frame data at 60fps. Adjust for target framerate.

來源與署名

來源:dylantarre/animation-principles位於skills/01-by-domain/game-development提交8359713

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架