【初心者向け】Unreal Engineで初めてゲームを作った話
めためたです。今回は『【初心者向け】Unreal Engineで初めてゲームを作った話』を話していきます。よろしくお願いします。
このnoteは、ゲーム開発初心者が始めてUnreal Engine(UE)でゲームを作った話で、ゲーム制作に興味があってUEを触りたいと思っている方を対象としています。
また、このnoteはC++よりブループリントがいいことの理由を述べています。
作ったゲーム
回復アイテムをとりながら敵の攻撃を避けつつ敵を倒すことでポイントを稼いでいくという趣旨のゲームを作りました。
相手HPは1でプレイヤーの弾があたるとダメージを1与えることができます。敵を倒すとポイントが1点加算されます。
左上のUIにポイントは加算されます。またHPを10に設定しています。四隅にあるハートのアイテムを取るとHPがMaxまで回復します。
敵の攻撃でHPが尽きると正面に今回のポイントが表示され、左下に1~3位のスコアが表示されます。敵と回復アイテムはフィールドのランダムな位置に湧いてきます。
参考資料
UE備忘録本舗さんのUE5初心者講座の1~6をベースに
ダメージを与える方法として、ブループリント攻略講座の
基本編part5を見て、
プレイヤーのUIを以下を参考にHPbarの中心にCureentHeatlthだけでなくMaxHealthが表示されるようにして、
スコアシステムを以下を参考に導入しました。
また、以下を参考に敵とHP回復アイテムをフィールドにランダムスポーンさせました。
完成させて勉強になったこと
BP_playerにpointの変数を持っていたので、BP_playerが消滅するとともに消える点数を解決するためにグローバル変数をgame instanseで設定しました。自分の力で解決することができたので嬉しいです。
また、UIが消えなかったのをremove from parentで消すことができ、add to viewpointでまた表示させることが出来ることを知りました。
最初は1つのレベルで、スタート画面とMain画面の全部を実装しようとしていましたが、レベルは分けるといいことが分かりました。
これらを1つ目の製作物を完成させることで知ることができました。
1つ目の製作物を完成させて思ったこと
初めはUdemyで学ぶのではなくネットに落ちている教材で完成させる方が重要だと個人的には思いました。自分で作っていく自走力もつくのではと思います。
最初に学ぶコースとして、Udemyの
このコースが挙げられがちだと思いますが、僕はおすすめしません。
この記事(Udemyの英語の教材で学習するといいという旨の内容が書かれており多数の英語でのUEの教材を紹介しているので参考になります)でも以下のようにおすすめされてます。
テキストでのプログラミングに慣れている方が、ゲーム制作もしたくてUEを触っていきたいと思っている方に向いている教材であって、テキストでのプログラミングをしたことがない本当の初心者には向いていないと実際にセッション3の途中までやった初心者の僕は思いました。
初心者はC++を習得する学習コストまで最初にとる必要はないのでこの講座を選ぶ必要はありません。むしろ、UEの技能を高めたいのに遠回りになってしまう方もでてきてしまうのではと思います。
初心者はC++を学ばなくていい理由
僕は初心者はC++を学ばなくていいと思っています。
この記事ではブループリントとC++の特徴を述べられています。
C++のブループリントに対しての利点は
①ブループリントでは作れない機能をC++では実装できる
②処理速度が速い
だけです。
また、②の処理速度に関してはブループリントだけ(ソースはこちら)で、
上記で気にならないぐらい処理が出来ていることがわかります(※大規模で数値的な処理の場合には必要になってくる可能性があります)
このことから、初心者が気になる欠点のほとんどが①のC++でしか実装できない機能があるだけですが、実装できない機能かどうかはブループリントで自由に作れるようになってからでないと分からないと思います。なので、ブループリントで実装できない機能を知るためにもブループリントを学ぶ必要があると思います。
また『[ブループリントvsC++]どっちでゲーム開発する?UE5のプログラミングについて1から解説』の記事を書かれたunityとUE5でゲーム開発されているdaichi-gamedevさんもブループリントを最初に学習した方がよいと述べています。
なので、C++のことは全く考えずに直観的にプログラミングできる学習コストがC++より低いブループリントに力を入れていいと思います。
以上が今回のnoteです。