この制作で最も重要だった改善は、コードの構造よりも見た目の連続性でした。v5は技術的なcheckを通過しましたが、Studio Previewでは追加poseの切り替えが「同じキャラクターの動き」に見えませんでした。v6では少数の安定した画像へ戻し、身体や画面の動きで演技を作りました。
個別生成spriteの連続性問題
生成sprite A → B → C → Dと高速に切り替えると、動きが増えたように見えるかもしれません。しかし各画像を独立して生成した場合、顔、等身、手足、小物、輪郭、重心が少しずつ変わります。その差が再生時に強調されると、アニメーションではなく「似た別のキャラクターへの交換」に見えます。v5では特にPug Reviewerで顕著でした。画像のキャンバスを揃えるだけでは、この問題は解消しませんでした。
v5の記録ではlint error 0、runtime error 0でした。checkは構造や実行上の問題を見つけられますが、隣り合う絵が同じ人物に見えるかは判断できません。check passed ≠ animation looks goodです。
安定したspriteを動かす
v6で使うgreenwakameの画像は主にidle、walk-a、walk-b、review、success。Pugはreviewing、pending、approvedです。状態画像の変更は物語上の節目に絞り、その間の演技をtranslate、rotate、scale、squash、jump、landing、小さなidle motionで作りました。同じ画像を保ったまま身体を動かすため、見た目の同一性が維持されます。
これはspriteアニメーション全体の否定ではありません。一貫した絵柄で描かれた歩行サイクルは有効です。新しい生成フレームを足す前に、前後の切り替えを通常速度で見ることが実践上の判断基準です。幾何学図形だけのExampleで、身体変形の考え方を試せます。
Anticipation → Action → Settle
小さなジャンプなら、静止 → 数px沈む予備動作 → 上昇 → 着地時に短くつぶれる → 元の形へ戻る、という順序です。各段階が次の動きを予告し、結果を読み取れるようにします。v6はジャンプから着地まで同じ画像を保持しました。Pugもreviewingの微動 → pendingで一拍待つ → 予備動作 → approved → 小ジャンプ → 落ち着く、という流れです。
キャラクターの行動 → UIの反応
キャラクターとUIを完全に同時に変えると、二つの動きが無関係にも見えます。短い遅れを作ると、キャラクターが原因、UIが結果として読めます。今回の目安は80~150 msで、Player Statsではgreenwakameのlean開始から120 ms後に各カードが反応します。その後に内容を読める保持時間を置きました。
30 fpsでは120 msは約3.6フレームです。これは今回の編集上の選択であり、すべての作品に固定すべき値ではありません。通常速度のPreviewで自然さを調整します。
Visual QAの確認点
- poseの切り替えを通じて、顔・輪郭・大きさ・重心が同じキャラクターに見えるか。
- 画像の入れ替わりが気にならず、予備動作・行動・着地を読み取れるか。
- UIはキャラクターの後に反応しているか。
- deliveryサイズで文字を読めるか。
v5からv6への結論は、生成フレームを増やすほど良くなるとは限らないことです。この作品では、安定画像への身体変形のほうが説得力のある演技になりました。