Unity使いのOculusコンテンツ開発者がUnrealEngine4に再々入門してみる その4 ~ ブループリント編 #UE4Study

 

引き続き こなべさんの UE4でOculus Riftコンテンツを作る入門記事「この通りにやれば、ほぼねこのるんばが完成する筈」 – ラビットガーデン(うさぎでもわかるUE4) (http://konabe.blog.jp/archives/19230428.html)をやってみます。

前回

目次

Unity使いのOculusコンテンツ開発者がUnrealEngine4に再々入門してみる ~ その3 ゲームモードを知る
http://2vr.jp/2015/01/03/try-ue4-3/

うさぎになる

 ご注文はうさぎですか? 第4羽「ラッキーアイテムは野菜と罪と罰」 (23:37)
http://nico.ms/1399000431

ねこになる

前回はこなべさんの記事にある、UE4でFPS75を出すチューニングの途中、現状の確認まで行いました。

今回は引き続き、その前にちょっと不便なので、レベルブループリントに色々書く」でブループリントと触れ合い、「速度を稼ごう」で実際のチューニングをやってみます。


 

レベルブループリントに機能を追加

をするために、まずはブループリントの使い方が分からないので調べてみます。

?疑問


疑問1. ブループリントってそもそも何だろう

疑問2. いろいろ調べるためにもUIとかの正式名称何だろう

疑問3. グレーのグルーピングしてる枠線、赤い箱と青い箱は何者か

疑問4. どういう操作で作成すればよいのか

調べる


 UE4の個人的リンク集 – ラビットガーデン(うさぎでもわかるUE4) 

http://konabe.blog.jp/archives/19423495.html

最初の入り口はこなべさんの最新まとめから
(お世話になります!!)

ざっと見た感じ、ヒストリアさんのページにあるBlueprintのところから辿っていろいろ見ていくとよさそうです。

[UE4] お役立ちリンク&チュートリアル集 | historia Inc – 株式会社ヒストリア
http://historia.co.jp/archives/821

また、公式のこちらのページからもよさそうです。

Unreal Engine | ブループリント ビジュアル スクリプティング
https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/index.html

「疑問1. ブループリントってそもそも何だろう」の解

 Unreal Engine | ブループリント入門
https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/GettingStarted/index.html

Unreal Engine | ブループリントの概要https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/Overview/index.html

ブループリントにはよく使う、レベル(Unityのシーン)ごとのレベルブループリントと、クラスブループリント(UnityのPrefab)の2つがある。
 

と、このあたりはalweiさん記事で把握済み。

(他にブループリントインターフェース、ブループリントマクロライブラリ、ブループリント関数ライブラリ、列挙型、構造体といろいろ書いてあるけど実際に触らないとピンと来ないので、とりあえず今は頭の片隅に覚えておこうメモメモ。)

→ とりあえず主な概念はOK、次は具体的なUIを見ていきます。

「疑問2. いろいろ調べるためにもUIとかの正式名称何だろう」の解

Unreal Engine | レベルブループリントUI
https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/Editor/UIBreakdowns/LevelBPUI/index.html

ブループリントエディタUI周りの正式名称を覚えます。

スクリーンショット_010415_051239_AM

コンテンツブラウザ(Unityのプロジェクトビュー)のブループリント(UnityのPrefab)をダブルクリックして開く画面は、ブループリントエディタ。良し覚えた。
 

次にグラフエディタにフォーカスを当てて、タブの中のUI周りの正式名称を覚えます。

Unreal Engine | グラフ エディタ タブ
https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/Editor/UIComponents/GraphEditor/index.html

スクリーンショット_010415_052535_AM

Event Graph(イベントグラフ)

Unreal Engine | イベント グラフ
https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/UserGuide/EventGraph/index.html
今の理解は裏側の仕組みがノードベースのビジュアルスクリプティングで弄れる表示エリアという話でいいっぽい。

他にアニメーションブループリントというものに対してもイベントグラフがあるとのこと。ピンとこないので頭の片隅へ。
Unreal Engine | イベントグラフ https://docs.unrealengine.com/latest/JPN/Engine/Animation/AnimBlueprints/EventGraph/index.html
ブループリントエディタのイベントグラフタブのグラフエリア内でノードを定義してビジュアルスクリプティングを、(略
 

とりあえずなんとかなりそう

「疑問3. グレーのグルーピングしてる枠線、赤い箱と青い箱は何者か」の解

 UE4 ブループリント超入門編 – Let’s Enjoy Unreal Engine
http://unrealengine.hatenablog.com/entry/2014/05/05/204403

alweiさんの記事が公式よりわかりやすい) 

赤とか青とかの 箱を「ノード」と呼ぶ
グレーのグルーピングしてる枠線はコメント
赤い箱、赤いノードはイベントノード

フロー制御用ノードもある

[UE4] 最初に知っておきたいBlueprintノード集 | historia Inc – 株式会社ヒストリア
http://historia.co.jp/archives/534

→ 作るのに困らなそうになったから良し。
(青いのは関数、緑は単純なGetter?あと黄色とか変数を示す色なしとかあるっぽい)

無題クリップ_010415_072907_AM

「疑問4. どういう操作で作成すればよいのか」の解

コメントはキーボードのCキーを押すか、適当にあいているところで右クリックメニューから「コメントを追加」

無題クリップ_010315_073002_PM

実装の規約的な感じで、コメントというくくりで1機能づつ作って行くようです。無題クリップ_010415_043258_AM

ノードは右クリックメニューから

右クリックのコンテキストメニューの検索で追加したノードの名前を入力してサクサク追加していくスタイルで。

例えばBegin Playイベントノードを追加したい場合は「イベントを追加」から選ぶ

無題クリップ_010415_044725_AM

ただ今回、Begin Playを追加しようとしたら他のコメントの中にBeginPlayイベントノードが存在していたため、そちらにフォーカスが移った。

スクリーンショット_010415_044919_AM

(一つのイベントブループリント内でシーン開始時に自動的に開始されるBegin Playイベントノードが散在してたら管理が大変だからってことかな?)

ブループリントビジュアルスクリプティングシステムでノードベースビジュアルスクリプティングができる気になったので早速作ってみる

既存のVRなんとかのコメント内にあるBegin Playイベントノードは、遷移の線が他のノードにつながってない、使われていないようなので作成したSetupコメントへドラッグして移す。

無題クリップ_010415_073502_AM

 Execute Console Commandを2つ追加

無題クリップ_010415_082519_AM

 

ノードをつなげる

無題クリップ_010415_082652_AM

 

ノードのCommandに、「hmd sp 100」(Unityの「Virtual Texture Scale」のようなもの)と、デバッグ用のfps表示コマンドを設定。

 

無題クリップ_010415_082919_AM

 

これでBegin Playイベントノード、実行直後に自動的にコンソールコマンドが実行されるようです。

他のEscキーで終了、数字の0キーでレベルリスタート、FキーでFPS表示ON/OFFの機能については、記事の「その前にちょっと不便なので、レベルブループリントに色々書く」にある絵の通り
おんなじ要領で作っていきます。

無題クリップ_010415_111703_AM

 

Unreal Engine4で75fps安定へ

Unityの最適化は難しい話ばかりでつらたん。『UE4ではどんな辛酸を嘗めることになるのだろうか・・・』と覚悟する間もなくこなべさんの記事中、説明の流れで紹介されています。

OculusRiftでスタート時に横むいちゃう問題

OculusRiftでスタート時に右の壁見ちゃうというのは、UnityでいうところのReset Tracker On Loadと似たアプローチで解決できました。

Unityでの解決方法(OculusSDK0.4.4)スクリーンショット_010415_125339_PM
Unreal Engine4での解決方法
スクリーンショット_010415_111619_AM

ねこ乗るん場 モデリング

次回

Unity使いのOculusコンテンツ開発者がUnrealEngine4に再々入門してみる その5  ~ モデリング編
http://2vr.jp/2015/01/04/try-ue4-5/ 

連載


Unity使いのOculusコンテンツ開発者がUnrealEngine4に再々入門してみる

その1 OculusRiftで動かす
その2 他のプロジェクトからアセットを流用してみる
その3 ゲームモードを知る 
その4 ブループリント編
その5 モデリング編(Final)