UE4でVR勉強会

に行ってきました。
togetter 名古屋 UE4でVR勉強会 15年2月1日#UE4Study 

■ 勉強会でやったこと(うろ覚え)
  • UE4の概要 
  • FPSテンプレートを使ったOculus Riftの使い方
  • 撃ったら壊れる箱のブループリント作成入門
■参考リンク(おかずさんがこの勉強会に合わせて書いて下さりました、感謝!!)
自分用も兼ねて、UE4+Oculusについて色々纏めてみる -準備編- (2015/02/01) byおかずさん
自分用も兼ねて、UE4+Oculusについて色々纏めてみる -高速化編- (2015/02/01) byおかずさん

■このブログで説明すること
3つ目のブループリント作成入門についての補足説明とブループリントの作成手順、ノードの具体的な書き方、応用編として3発で壊れる箱に改造する方法について説明します。
また、変数のクランプ設定についても言及。

■基本編
今日の勉強会では、こんな感じのブループリントを作りました
※訂正! SSでは「Destroy Component」になっているのが大量にありますが、正しくてはDestroy Actorです
ComponentだとComponentしか破壊されないので、復数コンポーネントで構成されている場合等問題になります


bp_destroy_before

作り方:

BP_okikae
まずFPSテンプレート内の適当な白い箱を選び、
詳細タブの1番下
「合成したブループリントで置き換える」選びます

make_bp
保存パスとブループリントの名前を付けます
何処になんて名前でもいいんですが、慣例的には
BluePrints直下にBP_と頭に付けます(付いていないサンプルが多いですが)

BP_brow
コンテンツブラウザ内にブループリントが出来ていますので、ダブルクリックで編集画面を開きます

event_graph
EventGraphタブのグラフを選びます

bp_destroy1
右クリックでノード作成の検索画面を出して「hit」と入力し
「イベントHit」ノードを作成
白い線をドラッグで伸ばして、同様に「SpawnEm…」っと入力して
「Spawn Emitter at Location」ノードを作成
Hit Location から Locationに 黄色い線を伸ばして
Hit時の位置を爆発用エミッタの出現位置に繋ぎます

bp_destroy2
Emitter Template に アセットの選択で爆発用エミッタを選択します

bp_destroy3
更に白い実行線を伸ばして、Destroy Actorノードを作成しますが…
「destorya…」と入力しても候補に出てきません(よくあることです)
文脈依存のチェックを外してみましょう

bp_destroy4
今度は出てきました

bp_destroy5
無事完成

2015-02-01 23_06_09-FPS_Sonomama - アンリアル・エディタ
撃ったら壊れるようになりました

実はブループリントとはUnity3Dでいうところのプレハブにほぼ相当します。
bp_3tu
「デフォルト」はpublic変数などの設定値の編集画面
「コンポーネント」は見た目やオブジェクト、コンポーネントの階層構造の設定等
「グラフ」はノードによるビジュアルなコード編集画面になります
これらをひっくるめて「ブループリント」と呼ぶそうです

コンテンツブラウザ上から作ったブループリントをエディタのレベル上にドロップをしまくれば、
Unity3Dのプレハブのようにインスタンスを作成できます。


■応用編 3発で壊れる箱

↑twitterだと公式クライアントで原寸画像を見るのが非常に面倒なのであらためて再掲↓

bp_destroy
 3発(変更可)撃つと壊れる箱のブループリント
メンバ変数は左上の変数ボタンを押せば作れます
変数名と型を選び、目のアイコンをクリックして開いたアイコンにすればpublicな値になります
コンパイルボタンを押せばデフォルト値の設定ができるようになります

drag
作ったメンバ変数をノード編集画面にドロップすれば「取得」or「設定」ノードが作れます


shisoku

「- (マイナス)」ノードはハイフンを(四則演算です)、「<=」は「<」を入力すれば候補に出ます
ブランチはそのまま「ブランチ」かifで候補が出ます
「-」ノード下側の1、「<=」の0は取り敢えずマジックナンバーを入力しています。
(マジックナンバーが嫌なひとは適当なピンから引っ張って…値を設定してもいいでしょう)

HitしたらHPにHP-1を代入、もしHP<=0がTRUEなら破壊…という意味のコードです

※ヒット時と爆発時のエミッタに適当なのが無かったので同じ爆発にしていますが、いいのがあればそれぞれ別々のにしてください


bp_destroy_editor
 Publicな変数はエディタ上の詳細タブで値を弄ることが可能です
この辺は、Unity3Dを使っていた方にはお馴染みだと思います

val_range
ちなみにメンバ変数は「値の範囲」を設定出来ます。
(※値を弄るとERROR!ってのが表示されますがコンパイルボタンを押すと消えます)
これはエディタ上でPublicな値を弄っても、設定範囲外の値はクランプされます。
デザイナさんにHPを0以下に設定されると困るので、1~5に設定してみました。
エディタ上で範囲外の値を設定すると範囲内にクランプされるのを確認してみてください。

下田さんの情報に感謝!!

続き その2