ゲームプログラミングの解説記事を執筆するに当たり、過去の経験から使えそうな出来事を探しているのですが、ひとつ思い出しました。
ちょっと、初心者向けの記事には向かないかもしれないのですが、以前、モンスターハンターのキャラクターが起伏のある地面を歩いている映像を同僚と見ていたときに、「こういうの作るの結構大変なんだよね」みたいな話をしたら「そうなの?」という反応をいただきました。
普段、 WEB システムしか作らないので、ポリゴンがめりこむというのを知らなかったとのことですが、ポリゴンのめりこみについて説明すると、「なるほど、進入先が上り坂だったらキャラクターの座標を上に移動させないといけないんだ」と言っていました。
間違ってないです、むしろ正解なのですが、自分の感覚からするとちょっと実装案にたどり着きづらい見方のような気がしました。
というのも…
if (/* 進入先が上り坂 */) { // キャラクターを上に移動 }
こうやってコードを書いたときのコメントに入る内容が思いつけるかどうかなのですが、自分の場合はうまい方法が思いつきませんでした。 if 文による分岐ではなく、常にキャラクターの縦軸と地面との交点を求めて、キャラクターがその上を歩いている風に見えるように、座標を上下するのがいいのかなと思います。実際にはそこまで単純にはいかないかと思いますが、コードは想像しやすいです。
このあたりの難しさの本質を見つけたいところなのですが、なかなかうまくいきません。躓くところのような気がするだけになんとかしたいです。
Contributions