妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

レトロゲームプロジェクトの研究⑤Asteroids編

forums.unrealengine.com

f:id:una_unagi:20160327224955p:plain

レトロゲーム研究を再開。今日はAsteroidsプロジェクト。これを何と説明したらいいのかわからないけど、マップはスクロールしていくタイプではなく、敵が次々に襲ってくるタイプのゲーム。そして自機は回転しながら全方向に迎え撃つという、真上見下ろし型のシューティングゲーム

妹「シューティングは知ってるけど、あんまり見たおぼえのない感じ」

「このシステムは作るのが簡単といえば簡単だし、難しいといえば難しい。例えばファミコンでこれを作ろうと思うとものすごく難しい。絵の回転機能がないし、正確に弾の軌道を計算するのは難易度高い。ただゲームのルール自体は単純だから、画像の回転や角度関係のノードがあるような、最近のゲームエンジンなら簡単に出来て、初心者向けの題材としてもよく使われる。自機は中央固定で移動出来ない場合もあるけど、このゲームは隕石の量が多めだから、移動なしでのクリアはきびしい」

妹「でも回転するよりは真っ直ぐの方が簡単なのでは?」

「敵の方を向いて撃てるっていうのは、ほどよく難しくて、ゲームしてる感があるんだよ。これが真っ直ぐ固定だと、あんまりこっち向かって来られても迎撃がしにくいし、向かってこないと素通りしちゃうしで、ゲームルールも含めて色々練らないといけない。スクロールもさせるならマップ作成が必要。そういう面倒を省いてシンプルに作れる」

妹「この角度だと重力とか考えなくていいのは楽そう」

「AIも要らない。特にこの場合は隕石だから、何も考えてなさそうな動きで問題ない。ただ難易度調整はやっぱり必要で、このプロジェクトの設定だと隕石の量や自機の大きさからして、難易度は高めになってる。特に隕石を壊した後に小さい隕石に分裂するのがやっかい。弾の連射速度を上げるとか、貫通仕様にするとかしないと、兄が遊ぶにはちょっと厳しい」

f:id:una_unagi:20160327224946p:plain

「プログラムの中身で面白かったのは、隕石を生成するあたりのロジック。隕石ごとに大きさの違いやランダムの幅があっても、選択する(Select)ノードの連発で作っていて、白い実行ピンの流れは1本で真っ直ぐになってる。兄が作るとしたらここはSwitch(~をオン)ノードを使ってたと思うけど、実行の流れとデータの分岐が別になってるこのやり方も良さそうに思える」

妹「毎回思うんだけど、この”選択する”っていうノード名は失敗なのでは……」

「もう1個背景も面白いんだけど、兄には難しすぎて内容が理解出来なかった。1枚の絵とマテリアル設定だけで、星が動くような背景を作ってる。時間経過によってマテリアルが変化していくようになってるから、エディタ上でも確認できる。これはマテリアルをもう少し勉強してから再チャレンジしたいところ」