YKpages

ロボット関連で勉強したことのまとめ

UE4の始め方

はじめに

いつもはUnityを使っていて、あんまりUE4(Unreal Engine 4)は触れてこなかったので、ちょっと使ってみる。

この記事ではUE4の使い方の流れを書いていくが、公式のチュートリアルが分かりやすいので、そっちを見た方が良い。

UE4とUnityを比較

  • UE4ではC++が使える。(UnityではC#JavaScript
  • WindowsMac OSLinux上で動く。(Unityも同じ)
  • GUI上でスクリプト処理の流れを可視化し、操作できるシステムがある。(UnityでもできるがUE4の方がかっこいい) --> 「Blueprints Visual Scripting System」

では公式のチュートリアルに沿って、実際にやってみる。

ちなみにチュートリアルは、デザイナー向け、アーティスト向け、プログラマ向けのように分かれているが、 この記事ではプログラマ向けのチュートリアルを参考にする。

api.unrealengine.com

また、コードを書く場合は、Visual Studio(エディタ)があった方がいいということなので、 もしインストールしていない人は、Microsoft公式よりダウンロードをしておくと良い。

Visual Studio Community 2017が無料版。(UE4.15以降はVS2017らしい)

www.visualstudio.com

環境

  • OS : Windows10
  • Version : UE 4.19.0(2018/03/16時点の最新)

UE4のインストール

公式のサイトからダウンロードして、手順通りにいけばインストール完了。

途中にEpic Gamesのアカウント登録があるから適当に登録する。

インストールには結構時間がかかる。(ネットワーク環境にもよるけど)

www.unrealengine.com

起動

Epic Games LauncherからUE4を起動。

プロジェクト作成

起動後のプロジェクトブラウザで、新規プロジェクト タブから、空のオブジェクトを選択。

プロジェクトの保存場所と名前を決定して、プロジェクト作成ボタンを押す。

C++クラスの作成

UE4エディタのファイルタブから「新規C++クラス」を選択。

親クラスは「Actor」を選択。

これにより、プロジェクトにC++ファイルとヘッダファイルが追加される。 (UE4エディタ下部にあるコンテンツブラウザから、作成したC++クラスを確認できる)

コードの記述

ヘッダファイル内のクラスの一番最後に以下のコードを追加

float point;

C++ファイルのBeginPlay関数に以下のコードを追加

point = 1.0f;

C++ファイルの一番下のTich関数に以下のコードを追加

FVector NewLocation = GetActorLocation();
if (NewLocation.Y > 100.0f) {
    point = -1.0f;
}
else if (NewLocation.Y < -100.0f) {
    point = 1.0f;
}
NewLocation.Y += point;
SetActorLocation(NewLocation);

最後に、UE4エディタの上部にある「コンパイル」ボタンで押す。(または、VSエディタ上でビルド)

コードのテスト

実際に実行して、ちゃんと動くか確認。

まず、UE4エディタ下部のコンテンツブラウザ > C++クラス > 作成したプロジェクト > 作成したActorを選択。

そのActorをレベルエディタ(ゲーム画面みたいなところ)へドラッグ&ドロップ。

これにより、右上のアウトライナに作成したActorが追加される。

アウトライナ上で作成したActorを選択し、コンポーネントを追加 > キューブを選択。

すると、レベルエディタ内にキューブが現れる。(見えないときはカメラを引く)

Actorのトランスフォームでキューブの位置を変更してみても良い。

これで準備完了。UE4エディタ上部にある「プレイ」ボタンを押す。

作成したキューブが左右にゆっくり動いていれば成功。

f:id:kato_robotics:20180316225731p:plain
UE4_TestImage

まとめ

今回はUE4の簡単な導入を行った。

ゲーム作成の流れは何となくわかった。

おわりに

大体はUnityと同じようなものだけど、UE4独特なところ(BluePrintなど)もある。

コードの書き方で分からないところをググってみると、BluePrintの情報がたくさん出てくるから、そっちも覚えた方が良さそう。

Blueprints Visual Scripting Systemってなんかかっこいいし。(見た目もかっこいい)