49.ゲームモードとレベルブループリントの違いとゲーム設計まとめ
ゲームモードとレベルブループリントの違いとは?
ゲームモードの特徴
https://scrapbox.io/files/65c690d90fa4900023aef5bc.png
まずゲームモードですが、ゲームモードの特徴としてGetGameModeノードで他のブループリントクラスから参照できるという事です。参照できるとゲームモードで作った変数やカスタムイベントなどを外部から呼ぶ事ができます(下記で試していきます)。なのでスコアやタイマーといった外部から参照する可能性がある変数を実装する際にはゲームモードに実装した方が何かと都合が良いです。
レベルブループリントの特徴
https://scrapbox.io/files/65c690f2a9c40200254e8b44.png
一方、マップ毎に一つ用意されているレベルブループリントですが、ゲームモードで言う所のGetGameModeのようなノード等は無いため外部から参照できません。つまりレベルブループリントで作成した変数などは外部から取得できません。スコアやタイマーなどは外部から取得して使用する可能性がある機能にはあまり向いていません。ただしレベルブループリントはレベル上のアクタを右クリックで参照したりできるなどメリットがあるので、ステージ上のギミック作成やそのレベル特有の機能を作る時、とりあえず機能を実装したい時などには向いています。
ゲームモードとレベルブループリントの違い
。ステージ上のギミックやそのレベル特有の機能を実装する時にはレベルブループリントを、外部から参照する可能性が高いスコアやタイマーなどゲームの主なルール的なものを作る際にはゲームモードを使用する事をおすすめします。
table:両者の比較
比較項目 ゲームモード レベルブループリント
外部から参照して変数などを取得できるか GetGameModeノードを通して取得可能 取得不可
右クリックでのレベル上のアクタの参照 できない できる(レベルブループリントだけ)
作ったノードが適用されるレベル ゲームモードをセットした全レベルに適用 そのレベルのみ
キーイベント 使用できない 使用できる
レベル上に存在するか プレイ開始後レベルにスポーンする レベル上には存在しない
①ブループリントの種類まとめ
使用用途に合わせてどこにブループリントを作成するか決めましょう。
https://scrapbox.io/files/65c692016f7eb80024f603e2.png
②機能(ノード)は直感的な場所に作るように心がけよう
そしてノードはわかりやすく直感的な場所に作りましょう。
https://scrapbox.io/files/65c69278b6cc250025efb627.png
例えば操作するキャラクターを実装する時にはそのキャラクター本体にジャンプするノード,移動するノードを記載しましょう。操作するキャラクター本体ではなく、レベルブループリントやゲームモード,他の関係のないブループリントクラスにキャラクターの機能を実装しないようにしましょう。理由は後からどこに何の機能があるのかわからなくなり編集が難しくなってしまうからです。
③ブループリントクラス名や変数名はわかりやすく
ブループリントクラス名は英語でシンプルに「BP_Player」「BP_Coin」などのように命名しましょう。「BP_」は基本つけた方が良いです。というのもコンテンツブラウザではフィルタなどがあるのでブループリントクラスかどうかはすぐに見分けが付くのですが、名前だけでアセットが何なのか判別しなければならない時が稀にあります。そんな時に「Player」「Coin」だけだとメッシュの事なのかブループリントクラスの事なのかよくわからないので、「BP_」は基本つけましょう。
https://scrapbox.io/files/65c692dfb6cc250025efb6e8.png
また他にも変数やカスタムイベント,関数名も英語でシンプルに命名しておきましょう。
③コメントや折り畳みグラフを活用して理解しやすく
コメントも折り畳みグラフなどもどんどん活用していきましょう!
https://scrapbox.io/files/65c69308e0b46500257aca69.png
④余裕があれば関数,継承などでノードを再利用して効率化しよう
後はブループリント作成時に余裕があれば、関数や継承を使ってノードを再利用,一括管理しましょう。
https://scrapbox.io/files/65c69355b5c093002811acc4.jpg
https://scrapbox.io/files/65c2a1e0ec4db0002550fa60.jpg
関数や継承は絶対に使わなくてもノードは組めますが、上級者の方は使用できる場合にはできるだけフル活用している印象ですしやっぱり便利なものなので活用していきましょう。
⑤どうやってノードを作るのかわからない...対処法
あんな機能やこんな機能を作りたいけど、どうやって作るのかわからない...そんな時には述べたように日本語または英語で検索しましょう。例えばですが「ue5 HPバー」とか「Unreal enegine スコア」「unreal engine rotation」とかで検索します。あとはChatGPTの活用ですね。それでもどうやって作るのかわからないなら自分でノードを色々組んでみて試行錯誤して作るしかありません。それも厳しいようでしたらもう少しUnrealEngineの教材で色々学んでみる事をお薦めします。そのうちに主要なノードを覚えてきて、何も見なくても色々なゲームの機能が作れるようになります。
または、Youtubeで作りたい機能を英語で検索する方法がおすすめです。