ゼルダの伝説 風のタクト、クリアしてしまった。
ラスボスのガノンドロフ戦は、アクションゲーム屈指の出来栄えじゃないかと思う。
なんか、久しぶりにちょっぴりだが、ゼルダシンドローム状態。
楽しい時間が終わってしまったっていう喪失感や無気力感に似た状態だ。
2週目クリアするのはまた違うしね。ポケモン、マリオテニス、TW101、ピクミン3、絵心教室など、まだまだ遊べるソフトがあるのが救いだ。
とはいえ、ゲーム開発はちゃんと進めている。
しかし、今日もまた問題にぶち当たる。
バトルの結果表示で、iTweenを使ってバトル画面をフェードアウトしようとしたら、Unity標準のGUIで作った部品がフェードされず。
iTweenのフェードアウトもGUITexture使って上書きしてるんじゃないのか?と。
いろいろめんどくさいので、Unity標準のGUIの部品をゲームオブジェクトに置き換える作業をやっていた。ゲージはQuadで、数値はTextMeshで。
ついでにキャラカードも新しいアーキテクチャに最適化するためリファクタリングした。
すると今度は、ロジック的に困難な問題に直面する。
今回やりたいのは、キャラカードに表示されているライフゲージを、メトロイド式にライフゲージとタンクで表示して、限られたスペースでも実質上限なしでライフを表示するやり方。
ライフゲージの上限を超えると、タンクの数が増加して、ライフゲージがまた0に戻る、という仕様だ。
考え方自体は単純だし、表示はすぐに作れた。
問題は演出である。
たとえば、512ポイントのライフがあったとすると、100で1ユニットとしているので、表示上は5ユニット+12ポイントのゲージとなる。
ここで、たとえば300ポイントのダメージを受けた場合、アニメーションを考えずに表示するのは簡単だ。
ダメージを引いた結果が212ポイントだから、2ユニットと12ポイントのゲージである。
しかし、ダメージを反映させる演出は、直感的でなければならない。
つまり、まず、端数の12ポイントのゲージが0までさがってから、ユニットが1つ減る。
その次に、ゲージが満タンから0までギュイーンと減って、またユニットが1つ減る。
ユニットが3つ減ったところで、ゲージが満タンから12ポイントの位置まで下がる。というような順番で見せていくのが直感的で判りやすい演出といえる。
このロジックがね、難しいのと面倒くさいので、今日は苦戦していた。
今日はもう頭が爆発しそうなので、明日に持ち越し。
一難去ってまた一難だよ。