見出し画像

【初心者向け】Unreal Engineで初めてゲームを作った話

めためたです。今回は『【初心者向け】Unreal Engineで初めてゲームを作った話』を話していきます。よろしくお願いします。

このnoteは、ゲーム開発初心者が始めてUnreal Engine(UE)でゲームを作った話で、ゲーム制作に興味があってUEを触りたいと思っている方を対象としています。

また、このnoteはC++よりブループリントがいいことの理由を述べています。


作ったゲーム

回復アイテムをとりながら敵の攻撃を避けつつ敵を倒すことでポイントを稼いでいくという趣旨のゲームを作りました。

図1. ゲーム.gif

相手HPは1でプレイヤーの弾があたるとダメージを1与えることができます。敵を倒すとポイントが1点加算されます。

図2.左上のUIと正面のHP回復アイテム

左上のUIにポイントは加算されます。またHPを10に設定しています。四隅にあるハートのアイテムを取るとHPがMaxまで回復します。

図3. 左下のスコアシステムと正面の今回のポイント、左上のUIはBP_Playerの消滅と共に消えている

敵の攻撃で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の教材を紹介しているので参考になります)でも以下のようにおすすめされてます。

ゲームプログラマーやテクニカルアーティスト(エンジニア)向けのC++を学習できる講座

Unreal Engine 5 C++ Developer: Learn C++ & Make Video Games
https://www.udemy.com/course/unrealcourse/

2023年に学習して一番良かったと講座です。
4つのミニゲームを作成しながらUnrealEngineのC++を学習できる講座になっています。

Udemyがサービス開始した頃から公開されている講座ですが、すでにUE5で対応されています。

UnrealEngineのC++について丁寧に解説されており、アウトプットとなるゲームも安定するように作成できます。

UnrealEngineを使用するプログラマーを目指している人は是非学習することをおススメしています。

posita33

テキストでのプログラミングに慣れている方が、ゲーム制作もしたくてUEを触っていきたいと思っている方に向いている教材であって、テキストでのプログラミングをしたことがない本当の初心者には向いていないと実際にセッション3の途中までやった初心者の僕は思いました。

初心者はC++を習得する学習コストまで最初にとる必要はないのでこの講座を選ぶ必要はありません。むしろ、UEの技能を高めたいのに遠回りになってしまう方もでてきてしまうのではと思います。

初心者はC++を学ばなくていい理由

僕は初心者はC++を学ばなくていいと思っています。

この記事ではブループリントとC++の特徴を述べられています。

C++のブループリントに対しての利点は

①ブループリントでは作れない機能をC++では実装できる
②処理速度が速い

だけです。

また、②の処理速度に関してはブループリントだけ(ソースはこちら)で、

上記で気にならないぐらい処理が出来ていることがわかります(※大規模で数値的な処理の場合には必要になってくる可能性があります)

このことから、初心者が気になる欠点のほとんどが①のC++でしか実装できない機能があるだけですが、実装できない機能かどうかはブループリントで自由に作れるようになってからでないと分からないと思います。なので、ブループリントで実装できない機能を知るためにもブループリントを学ぶ必要があると思います。

まず最初はどんな方でも「ブループリント」を学ぼう!

最初はプログラミング経験者の方でもブループリントから学ぶ事をおすすめします。理由は以下です。

ブループリントを最初に学習した方が良い理由①ブループリントの方が簡単でゲームも充分に作れるから②UnrealEngineの初心者向けの教育コンテンツは基本ブループリントで解説されているから③C++の教育コンテンツでもブループリントの知識があるという前提で、ブループリントも一緒に使われて解説されているから④C++だけの知識ではネットの情報が少なすぎてゲーム開発が難しい

という事でそもそもブループリントの知識なしでUnrealEngineのC++を学ぶ事はかなり難しいからです。またブループリントでもC++でもプログラミングの仕組みとしては一緒です。つまり簡単なブループリントから基本やプログラミングの仕組みを学び、その後にC++を少しずつ学んでいくという方がゲーム開発について理解しやすいと個人的には思っているからです。という事で初心者の方は簡単なブループリントから学んでいく事をおすすめします。まずはブループリントでプログラミングとUnrealEngineについて学び、後からさらにゲーム開発を極めていきたいまたはパフォーマンスの良いゲームを作る必要があればC++を学ぶという事がおすすめです。

daichi-gamedev

また『[ブループリントvsC++]どっちでゲーム開発する?UE5のプログラミングについて1から解説』の記事を書かれたunityとUE5でゲーム開発されているdaichi-gamedevさんもブループリントを最初に学習した方がよいと述べています。

なので、C++のことは全く考えずに直観的にプログラミングできる学習コストがC++より低いブループリントに力を入れていいと思います。

以上が今回のnoteです。

いいなと思ったら応援しよう!