今日はオジサンたちの大好きな聖剣伝説2について書いていこうと思う。アーユーレディー?
聖剣伝説2は今でもとても根強い人気を持っており、あのゲームで精霊の名前を覚えた方も多いのではないかと思う。特にリングコマンドは秀逸で、急いでいる時に、カーソルを押しすぎて、逆のカーソルを押したのはよい思い出だ。
さて、聖剣伝説2には精霊魔法が存在する。火、水、土、風、光、闇、木、合ってる?その中でも、火の精霊サラマンダーにはお世話になった方が多いと思う。特に、レベル8になると、ドラゴンのようにうねうねとした演出が入り、当時のプログラマさんは、ドラゴンのパーツの親子関係には苦労されたのではないかと思う。
サラマンダーLv8を使うと、敵、味方、フィールドすべての画面が止まり、サラマンダーの演出のみが表示される。
なぜか?
計算処理と描画処理がスーパーファミコンの性能に追い付かないからだ。サラマンダーLv7までは、複数個の火の玉が敵に向かってやんわり飛んでいく、ベクトルを徐々に敵に近づけていく、という比較的処理が軽い移動計算、かつ、表示する画像も火の玉数個なので、そんなに処理速度が取られない。
ただ、サラマンダーLv8の演出は違う。頭の部分から、尻尾の部分まので、ドラゴンを形作る火の玉の計算を、自分の親が動いた位置にして、さらにそれを自分の後ろに表示している火の玉にも位置を伝える必要があるからだ。
専門的な用語を使うとIK(インバースキネマティック)というものがあるが、これは、尻尾の位置から頭の位置を計算するという手法になるので、少し内容が違うが、こんなようなもの。
また、火の玉もたくさん使用するため、描画にさける処理能力がない。だから精霊魔法を使う瞬間に、今のテレビ画面に表示されているゲーム画面を一旦全画面コピー(スクリーンショットのようなもの)をして、色計算や他のキャラクターなどの移動計算を犠牲にして、魔法の演出を行っている。
なので、動かしたところで処理がカクカクになるから、演出的に止めちゃおう、という結論にいたったのだと思う。いや、古のプログラマの方々は本当に色々な制約の中、ゲームを作られているので、本当にすごいと思う。というわけで今日はここまで。また会う日まで。