Help us understand the problem. What is going on with this article?

UE4というゲームエンジンの基本設計について覚書

More than 1 year has passed since last update.

ことはじめ

最近UE4を勉強していて、とっかかりに基本的な考え方とか、オブジェクトの意味合いとかが気になった
とりあえずEpicの公式ドキュメントをかいつまんでメモっていこうと思うお

ActorとPawnとCharacterの違い

  • Actor
    • UE4のワールド内に配置可能な全てのオブジェクトはActorクラスを親に持つ
    • UE4全体のオブジェクトの基本となるObjectクラスから派生したクラス
    • コンポーネントを付与することができる(?)
    • Unityで言うところのGameObject
  • Pawn
    • Controllerを所有することができるオブジェクト
    • Controllerを介して操作をすることができる
  • Character
    • Pawnの上位互換(?)
    • 人の形をしたPawn
    • CapsuleComponentCharacterMovementComponentがデフォルトでアタッチされている
    • アニメーションや、ネットワーク関係の動作に強い(?)

コントローラーについて

  • Controller
    • Pawnに指示を出すことができるアクタ
    • AIControllerとPlayerControllerの2種類が存在する
  • PlayerController
    • プレイヤーの入力を仲介して対象のPawnに指示を送るオブジェクトという認識
  • AIController
    • ↑のAI版 NPCの操作を仲介する 多分

コントローラー関係についてはまだ不明なことが多いが、ラジコンで言うところの人とコントローラーと車みたいな関係だと思っている

ゲームの情報表示関連

  • HUD
    • 普通にUIとかを管理してるやつだと思う HUDはUE4以前によく使われていたそうで、現在はUIならUMGとかいうのが幅を利かせているらしい
    • PlayerControllerと関連付いてる(?)
  • Camera
    • ちょっとよくわからないので別途掘り下げたほうがよさげ

↑のCameraについて引用

引用 ゲームプレイのプログラミング | Unreal Engine ドキュメント

PlayerCameraManager はプレイヤーの「眼球」で、挙動を管理します。
各 PlayerController は、通常これらのいずれかを持ちます。詳細は、 camera workflow ページをご覧ください。

カメラについて追記

実行時にCamera Actorなるオブジェクトがレベル内に勝手に生成されていて気持ち悪かったので色々調べてみたけど、結局サンプルとかでも同じようにCameraActorが生成されており、しかも特に使われていなかったので、そういうものだと思うことにした。誰か詳しい人がいれば是非この辺りの詳細について教えていただきたい。

ゲームのルールを設定する系オブジェクト

  • GameMode
    • ゲームの定義 (勝敗条件やゲームのルールなど)
  • GameState
    • ゲームの状態 (スコアやプレイヤーのリストなど)
  • PlayerState
    • プレイヤー個人の状態 (プレイヤー名やHP、MPなど?)
    • AIはPlayerStateを持たない

ここの項目には、公式ドキュメントにはネットワーク用語がちょくちょくでていたので、そういったところも意識した設計になっているのかも?

さいごに

↑に書いたオブジェクト達を全てまとめてGameplayFrameworkという呼び方をしているように見えた
また公式ドキュメントには、GamePlayFrameworkのクラス達をわかりやすくクラス図にして説明もしているので是非読んでもらいたい

自信のないものについては文の末尾に(?)がついているので、そういうものだと思って読んでもらいたい(ていうか全体的に解釈が正しいか自信がない)

今回UE4の基本について調べておおよその流れは把握できた気がするので、これを軸に気になった箇所を掘り下げていけたらと思う

参考にしたサイト

ゲームプレイのプログラミング | Unreal Engine ドキュメント
https://docs.unrealengine.com/ja/Programming/UnrealArchitecture/index.html?lang=ja
アンリアル アーキテクチャー - Let's Enjoy Unreal Engine
http://unrealengine.hatenablog.com/entry/2014/04/24/221643
もんしょの巣穴blog [UE4] UE4のフレームワーク
http://monsho.blog63.fc2.com/blog-entry-119.html
【UE4】移動方向に対するキャラクターとカメラの回転
http://game-ue4.hatenablog.com/entry/2017/11/20/180426

tontkaimo
Qiitaという名のメモ帳 なんとなくツイッターはじめました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away