Unity開発者がUnreal Engineを始める前に知っておきたい違いと導入手順【比較・入門】①

タイトル装飾

Unity開発者がUnreal Engineを始める前に知っておきたい違いと導入手順【比較・入門】①

 

Unity開発者がUnreal Engineを始める前に知っておきたい違いと導入手順【比較・入門】①

Unity歴5年、Unreal歴3年のプログラマーです。

Unrealの学習には少し苦戦したため、押さえておくべきポイントをまとめました。

基本的なログの出し方から、UIの表示、Blueprint / C++の使い分け、C++導入等を数回に分けて解説していきます。

■目次(右側の目次欄からジャンプ出来ます)


・はじめに

・環境

・UnityとUnrealの名称の違い

・Blueprintとは何なのか?

・デバッグログの出し方

・画面上にテキスト(ウィジェット)を配置する

・さいごに

■はじめに


Unity経験者であれば、「UnrealでもUnityのような感覚で早く開発したい!」と思う方が多いのではないでしょうか。

UnityとUnrealの名称の違いを中心に、動かすために必要な最低限の知識と手順を紹介します。

■環境


バージョン:

UnrealEngine5.5.3

プロジェクト名:

UnitTest

▼ブランクで空のプロジェクトを作成

▼プロジェクトが開いたら「コンテンツブラウザ」の右上にある設定ボタンを押し、表示タイプをリストにするのがおすすめです。

※コンテンツブラウザ以外でもこの設定が見やすいです。

■UnityとUnrealの名称の違い


中には共通の名前もありますが、基本的には異なる概念として理解しておくと良いでしょう。

またUnreal独自の概念もあるため、そこについても触れていきます。

▼UnityとUnrealの名称の違い

番号

Unity

UnrealEngine

備考

1

ヒエラルキー
hierarchy

アウトライナー

Outliner

4つまで配置可能。

2

プロジェクトウインドウ
ProjectWindow

コンテンツブラウザ

ContentBrowser

4つまで配置可能。

3

インスペクタービュー

InspectorView

詳細パネル

DetailPanel

4つまで配置可能。

4

シーン
Scene

レベル

Level

Unrealはレベルを親子化できる。

親:パーシスタントレベル

子:サブレベル

5

ゲームオブジェクト
GameObject

アクター
Actor

Unrealでは、Transformだけでなくコリジョンなどの機能も標準で含まれている。

6

プレハブ

Prefab

ブループリント

Blueprint

自由度は Blueprint の方が高い。

7

(なし)

レベルブループリント
LevelBlueprint

レベル単位で1つだけ存在するブループリント。

レベルアセットの中に保存される。

8

uGUI

UMG

※Unreal Motion Graphicsの略。

UIシステム。

9

uGUIの要素

(TextやButton等)

ウィジェットブループリント
WidgetBlueprint

UnrealではUIの要素のことをウィジェットと呼ぶ。

こちらもブループリントの一種である点に注意。

10

コンソール
Console

出力ログ

OutputLog

デバッグログ。

11

コンポーネント
Component

コンポーネント

Component

同じ呼び方をする。

12

シーンビュー
SceneView

ビューポート

ViewPort

※編集モード。

13

ゲームビュー
GameView

ビューポート

ViewPort

※PIE(PlayInEditor)実行中

14

Start(関数)

Begin(関数)

初期化。

最初の1回だけ呼ばれる。

15

Update(関数)

Tick(関数)

更新処理。

毎フレーム呼ばれる。

■Blueprintとは何なのか?


Unityで言うところの「プレハブ」です。

Blueprint単体では実体を持ちません。

ヒエラルキー(アウトライナー)に配置して初めて実体を持ちます。

ただBlueprintはUnityのプレハブより出来ることが多いです。

最大の特徴として、プレハブの中で処理を実装することが出来ます。

(ノードを用いて)

「クラスをエディタ上で視覚的に扱えるようにしたもの」と言い換えることもできます。

■デバッグログの出し方


Blueprintの動作を理解するには、基本的な「ログ出力」から始めるのがおすすめです。

▼01.Blueprintを作成

※コンテンツブラウザ上で右クリックしてブループリントを作成。

▼02.アクタを選択し、名前(BP_Test)を設定

※Unityで言うGameObjectに当たるもの。

▼03.「BP_Test」をダブルクリックで編集モード

▼04.「マイブループリント」のグラフからEventBeginPlayをダブルクリック

▼05.空きスペースで右クリック→「PrintString」or「ログ」と入力

▼06.「PrintString」を選択してください。

※Unrealでは検索が微妙に日本語に対応しているため、検索した内容と出てくる内容に差異が生まれることがあります。

▼07.「EventBeginPlay」ノードと「PrintStringノードを繋いでください

赤枠部分からドラッグ&ドロップでノードを引っ張ることができます。

※デフォルトでは「Hello」という文字列が出力されます。

▼08.Blueprintを「①コンパイル」して「②保存」しましょう。

※コンパイルをしないと実装した処理が反映されません。

▼09.Unityで言うシーン(レベル)を作成します。名前は「LV_Test」とします。

▼10.レベル(LV_Test)をダブルクリックで開き、最初に作成した「BP_Test」をビューポートにドラッグ&ドロップしてください。

作業後 LV_Test を保存してください。

※Unityとは違い、ヒエラルキー(アウトライナー)には直接配置できません。

▼11.メニューバーの「ウィンドウ」から出力ログを選択

▼12.①出力ログを開き、②検索バーに「Hello」と入力し、③再生ボタンを教えてください。

※再生時にはさまざまなログが出力されるため、検索バーで絞り込むと見やすくなります。

▼13.出力ログに「Hello」と出力されれば完了です!

■画面上にテキスト(ウィジェット)を配置する


ログは無事に出せましたか?

UnityならC#で処理した内容をuGUIのTextを使用して簡単にゲーム画面上にテキストとして表示させられたと思います。

Unrealではどうでしょうか?

UnrealではUMG(Unreal Motion Graphics)というUIシステムを使用します。

Unityならヒエラルキー上で簡単にTextを選んで配置するだけだったと思います!

UnrealのUIは、Unityに比べるとやや直感的ではありません。

UI専用のプレハブ(ウィジェット)を作成し、それを明示的に処理で「ビューポート」に追加(Add to Viewport)することで始めて画面に表示されます。

▼01.UIプレハブ(ウィジェット)をコンテンツブラウザ上に作成

▼02.「UserWidget」を選択し名前を「WBP_Test」とします

※ウィジェット(Widget)のBlueprintでWBP

▼03.ダブルクリックで開き、ライブラリウインドウからCanvasPanelを配置します。

配置出来たら、階層ウインドウに「キャンバスパネル」と表示されます。

※UnityでいうCanvasに当たるオブジェクトです。

▼04.同じ要領で「TextBlock」を配置します。
※Unityで言うTextに当たるオブジェクト。

▼05.階層ウインドウで配置した「テキスト」をクリックした状態で、詳細ウインドウを開き画像と同じ設定にしてください。特に「IsVariable」のチェックは忘れずにつけましょう

※「コンパイル」して「保存」も忘れずに。

最終的な見た目

▼06.「コンパイル」して「保存」をしたら、ここからウィジェットをビューポートに追加していきます。

WBP_Testを閉じ、エディタ画面上部のツリーのようなボタンをクリックし「レベルブループリントを開く」を選択します。

※レベルブループリントは、レベル単位で処理をまとめたものです。1レベルに1つだけしか存在しません。

▼07.ウィジェットを動的に生成します。

LV_Testのレベルブループリントの「Event BeginPlay」の近くで右クリックをし「Create Widget」ノードを作成し、ノード内の「Class」の選択ボックスからWBP_Test」を選択

Create Widgetノードを BeginPlayノードと紐づけてください。

▼08.動的に生成したウィジェットをビューポートに追加します。

「CreateWBPTestWidget」ノードからドラッグをしながら右クリックで「Add to ViewPort」と入力しノードを作成します。


そして「AddtoViewport」ノードの「Target」に対して、生成したウィジェット(ReturnValue)を紐づけます

※「CreateWBPTestWidget」は関数でその戻り値(ReturnValue)を関数「AddtoViewport」の引数(Target)に渡す処理となります。

最終的な見た目 ※コンパイルと保存を(略

▼09.レベルブループリントを閉じ LV_Test を再生ボタンをクリックするとウィジェット(Hello World!)が表示されましたね。

これでUnrealでUIを画面に表示出来るようになりましたね!

Unrealでは、UIを明示的にビューポートへ登録しない限り表示されません。

■さいごに


ここまで読み進めていただきありがとうございます。
Blueprintの基本的な使い方、ログの出し方、UIテキストの表示方法を理解できたのではないでしょうか。

次回は

・UIボタンを使用したコールバック処理の登録方法

・シーン遷移

・BlueprintとC++の使い分け

あたりを記載していきます。

 

作者
  Y.T
  PG

目次

目次を生成中...