平らなキャンバス上の四分の三視点
バージョン15.0まで、TUNLの船は真上から描かれていた一方、周囲の洞窟は横からの断面図でした。それを直すには、小さな3Dモデル、画像が超えてはならない当たり判定、そして何を動かすべきかについての大きな自制が必要でした。
食い違い
TUNLの洞窟は横断面です。重力は下に引き、鍾乳石は天井から垂れ下がり、各ランの始まりの進入シーンは夕暮れのスカイラインです。その中で真上から描かれていたのは船だけで、山の側面の絵の中を飛ぶ飛行機の平面図のようでした。プレイヤーが普段そう言葉にすることはありませんが、それは船をわずかに貼り付けたように感じさせます。
明白な修正案、つまり単純な側面図を描くことは、船を見分ける手がかりである真上からのシルエットを捨ててしまうことになりますし、船の形は真上から見たときに最も映えます。妥協案は四分の三視点です。同じ船体の3Dモデルを、真上の視点から長軸周りに回転させ、平らに投影します。
小さなレンダラー
TUNLには3Dライブラリもビルドステップもないため、レンダラーは小さくできています。船体はすでに、上から照らされた平らなファセットの集合として存在しており、上半分は白に、下半分はほぼ黒に混ぜられていました。3D版は各ファセットに三つ目の座標を与え、モデルを長軸周りに回転させ、正投影し、同じ平らな上から照らされたスタイルで各面を塗りつぶします。これは平らな船体の約40回の塗りつぶしに対して、1フレームあたり約90の可視面の塗りつぶしになります。ぼかしはありません。これは重要なことで、というのも携帯電話のウェブビューではぼかしはコストの高い処理であり、輝きは単一の放射状の塗りつぶしだからです。もし非力なデバイスがいつか苦労するようなら、明白な削減策は、ロール角ごとに船体をオフスクリーンキャンバスにキャッシュすることです。
当たり判定がボス
最も重要な制約は、衝突判定が変わらないことです。船の当たり判定は円であり、ゲーム全体の難易度はそれに対して調整されています。したがって、3Dの絵はその円より大きく見えてはならず、また翼が目に見えて何かに触れる前に船が「死ぬ」ほど小さく見えてもいけません。
これによりロール角は好みの選択ではなく計測の問題になりました。真上の視点から45度傾けると、近い側の翼しか読み取れず、絵は円の高さのわずか半分強から約5分の4程度しかカバーしません。90度では単純に元の真上視点に戻ります。60度では両方の翼が読み取れ、翼幅は円の約85%に戻ります。私は5つの候補視点とカバー率曲線を持つ小さなラボを作り、60を選びました。テストは現在、どのロール角どの翼の後退角でも、描かれた船体が円を超えず、平らな機首を超えず、飛行中も円の健全な割合を埋め続けることを確認しています。
何が動き、何が意図的に動かないか
船が3Dオブジェクトになると、すべてをアニメーションさせたくなるものです。そのほとんどは削られました。生き残ったものは情報を運ばなければなりません。
- ロールは上昇に追従します。減衰ばねが船体をどちらの方向にも最大約10度回転させ、上昇時には背中をカメラへ、下降時には腹をカメラへ向けます。これは終端速度に対する割合としての垂直速度によって駆動されるため、どの画面でも同じように見えます。これはあなたが判断しようとしていることの二番目の手がかりです。
- 翼は体感速度に合わせて後退します。可変後退翼の戦闘機のように、外側のパネルはゆっくりとした開始時には広げられ、洞窟がフルペースに達する頃には大きく後方に折りたたまれます。時間を遅くする青いコインは、それらをエアブレーキのように前方へ投げ出し、減速が消えるのとまったく同じ速さで折りたたみ戻ります。ワープはそれらを0.5秒で折りたたみます。
- ワープリングはバレルロールを与えます。ゆるやかにイーズングされた一回転です。これは構造上安全です。ワープはあなたを無敵にするため、ロールの途中で円から外れる絵が死を決定することは決してありません。
生き残らなかったのは自由に揺れる揺動です。船が動きの「後に揺れる」以前のバリアントは生き生きと見えましたが、ノイズでした。唯一のスキルが距離を読み取ることであるゲームにおいて、それ自体のために振動する船体は、あなたが必要とする情報と競合します。これは、追加されたその日のうちに遠くの岩のシルエットのパララックス背景が削除されたのと同じ論理です。壁がどこにあるかを読み取ることが本質のゲームでは、異なる速度で動く二つ目の形の集合は、たとえコントラストが低くても気を散らすものです。
3D船体への塗装
船の6種類の塗装仕上げは、平面図座標での平らな船体向けに設計されていました。それらを描き直す代わりに、私は小さな幾何学的な工夫を使いました。あるロール角において、船体の上面はロール角のサインで垂直方向に押しつぶされた平面図に正確に投影されます。そのため既存のペインターはその押しつぶしの下で動作し、3Dシルエットにクリップされます。この方法で表現できない二つのもの、ファセットの継ぎ目と縁は、画面空間でトレースされます。
3D版のために一つの補正が必要でした。平らな船体は7つのファセットを持ちますが、3D版は約90を持ち、それぞれに明るい継ぎ目を描くと、STEALTH仕上げがランプのようになってしまいました。そこで3Dでは継ぎ目は半分の強度で走り、小さな面はスキップされ、船体がバレルロールの途中でほぼエッジオンになるとき、そのわずかなフレームの間パターンはスキップされます。
平らなままだったもの
飛行中の船だけが新しい視点を得ました。格納庫、ショップ、シェアカードは今も船を真上から表示しています。それらは飛行の絵ではなく船の肖像であり、真上の視点こそが平面全体を示すものだからです。アプリアイコンとストアのグラフィックも真上からの肖像であり、それらがいつか飛行中の視点に従うべきかどうかは未解決の問題です。