Let's Enjoy Unreal Engine

Unreal Engineを使って遊んでみましょう

UE4 エディタースクリプティングでアセットを操作してみる

現在UE4.17のPreview 2が既にダウンロード可能となっています。

4.17もかなりの追加機能があり、まだその全容は掴めていません。今回は4.17で追加された、ブループリントを使ってエディタースクリプティングによる、アセット操作をやってみます。

エディタースクリプティングはブループリントやその他のスクリプト言語からUE4のエディター機能が呼び出せるようになる仕組みです。公式ではPythonによるサポートも追加される予定です。

以前にもBlutilityという機能を紹介したことがありますが、今回はそれを更に推し進めたもののように見えます。

unrealengine.hatenablog.com

新たに4.17ではブループリントに『Editor Scripting』というカテゴリーが追加されています。特にBlutilityクラスを作成し、その中で『Editor Scripting』のカテゴリーを検索すると、更にノードの数が増えます。

f:id:alwei:20170720161851p:plain


見ているだけで色々できそうです!

事前にBlutilityのアセットをダブルクリックするとイベントが実行されるようにしておきます。


f:id:alwei:20170720162843p:plain

それでは早速これらでどのようなことができるか見てみましょう。

アセットの作成とアセットのインポート


まずは簡単な例として、Asset Toolsと呼ばれるものを作ってアセットを作成してみます。以下のような具合にノードを組んでみました。


f:id:alwei:20170720162914p:plain

これを実行すると、フォルダーが作成されてスタティックメッシュが生成されました。


f:id:alwei:20170720162958p:plain

ただし、このスタティックメッシュは何もメッシュ情報が割り当てられていないため、開こうとするとエディターがクラッシュしてしまいます。現状の方法のまま使用するのはダメなようです。

ひとまずアセットの生成自体は上手くいっているのでよしとしましょう。

次はアセットのインポートを試してみます。


f:id:alwei:20170720171924p:plain

このノードを使うと呼び出した瞬間にダイアログが表示されてインポート処理が実行されます。"Destination Path"にインポートするパスを指定します。


f:id:alwei:20170720172050p:plain

今回はFBXをインポートしようとしてみました。これでそのままOKを押すと…


f:id:alwei:20170720172139p:plain

いつものようにインポートが完了し、スタティックメッシュとして認識されます。でもこれだけだとあまり意味はないですね。

他にも自動的にインポートを行う"Import Assets Automated"やアセットのエクスポートを行う"Export Assets"やアセットのリネームを行う"Rename Assets"が用意されていますが、いずれもなぜか純粋関数になっており、そのままでは呼び出すことが不可能です。


f:id:alwei:20170720172748p:plain

おそらくこの辺りのノードは公開されているけどまだ使用不可能な状態です。近い将来にきっと使えるようにはずです。

レベルの作成とアクターのレベル間移動とレベルの読み込み

エディタースクリプティングには新規レベルを作成する機能がありました。


f:id:alwei:20170720173848p:plain

これで新規レベルが作成され、選択中のアクターをその新規レベルに移動させるという機能です。ただし、4.17 Preview 2現在ではまだこれらの新規作成を行うだけで確実にクラッシュしてしまいます…

しかし間違いなく面白い機能なので、ちゃんと動くと強力そうです。

他にも"New Blank Map"で空のレベルを作成したり、"New Map from Template"でテンプレートから新しいレベルを作成するノードがありますが、こちらも漏れ無くクラッシュしてるのでまだ使えません…

更にレベルを開く機能もあります。


f:id:alwei:20170720174800p:plain

"Load Map with Dialog"ではダイアログを開き、そこからレベルを選択すると、そのマップを開きます。"Load Map"は指定したファイル名のマップを開きますが、やはりこれも開いた瞬間にクラッシュ…

レベル関係は総じてまだこれからといった感じですね。

ソースコントロール操作やファイルパス変換


ソースコントロールが操作できるようにいくつかのノードが追加されています。


f:id:alwei:20170720175714p:plain

指定したファイルをソースコントールに追加したり、チェックアウトができるようになります。更にファイルのコピーを行い、そのファイルをそのままソースコントロール下に追加することができます。

これ以外にもファイルパスを相対パスから絶対パスに変換するノードがあります。


f:id:alwei:20170720175943p:plain

こんな感じで指定してあげると…


f:id:alwei:20170720180011p:plain

プロジェクト相対パス絶対パスに変換されていることがわかります。"Package Filenames"と"Absolute Filenames"はどちらも絶対パスに変換するノードのようですが、細かい違いまではわかっていません。(そもそもFile NameとPackage Nameの違いは?)

まだこちらも実験的な機能だと思いますので、今後ノードが追加が追加される可能性は高いです。

アクターの操作やグループ化


次はアクターに対する操作です。操作といっても現状はほとんどアクターの状態をとれるノードがほとんど。唯一、"Set Is Temporarily Hidden in Editor"のノードはこのように組むことでエディター内で非表示モードの切り替えができます。


f:id:alwei:20170720182658p:plain

取得できるのは主に『選択しているか?』『編集しているか?』『エディター上で隠されているか』あたりの情報がメインです。

そして次はグループ化です。例えば以下のようにノードを組みます。


f:id:alwei:20170720183152p:plain

更にビューポート上で複数のアクターを選択して、Blutilityを実行すると…


f:id:alwei:20170720183304p:plain

アクターがグループ化されました。これでひとつのピボットで移動などの操作ができます。


f:id:alwei:20170720183449p:plain

他にグループをアクティブ化したり、グループを解除したり、グループをロックするなどの機能が一通りあります。大量のアクターを管理している時などは非常に便利ですね。

"Get All Actors Of Class"ノードなどを使って、特定クラスのアクターのみをグループ化したり、特定タグを持つものをグループ化したりもできるはずです。使い方次第でかなり便利そう。

マテリアルの操作

更にマテリアル関係の操作もあります。


f:id:alwei:20170720184003p:plain

これらはマテリアルの存在をチェックし、そのマテリアルが存在する場合には、Material Interfaceを取得します。存在しない場合にはエラー情報を取得できます。

それとは別に"Material Editing"カテゴリーには更にマテリアルを操作できるノードがあります。例えば以下のようにノードを組みます。マテリアルは予め空のものを作成しておきます。


f:id:alwei:20170720185554p:plain

そしてこれを実行すると…


f:id:alwei:20170720190311p:plain

マテリアル内に指定したマテリアルノードが作成されています。現状では"Connect Material Expressions"ノードを使うとピンとピンのワイヤー接続もできるようですが、この辺りの指定の名前がまだよくわからないので、使い方が曖昧です。

ただし、マテリアルのノード生成までをブループリントのノードから行えるというのは非常に大きい強みとなります。


f:id:alwei:20170720190805p:plain

他にもマテリアルインスタンスやマテリアル関数の更新やセット行うノードや、マテリアルインスタンス内のパラメーターの操作や取得、マテリアルノードの追加や削除、マテリアルのシェーダー再コンパイルなど実に様々なノードがあり紹介しきれません。

現状ではまだまだこれらは追加途中の機能という感じで、まだ実用は難しそうですが本格的に利用できるようになればブループリントだけでマテリアルワークフローの改善ができるようになりそうです。

まだまだ色々ある


UE4.17ではエディタースクリプティングだけではなく、アセットの中身を知る"Asset Data"、アセットの登録を行う"Asset Registry"、アセットの統合的管理を行う"Asset Manager"がそれぞれブループリントに追加されています。

これらは今までC++上から利用できていましたが、今後はブループリントからでも利用できるようになり、益々エディター内で作業を完結できるようになりそうです。

現状ではエディタースクリプティング共々、早期アクセスみたいなものなので、まだまだ実用は難しいかもしれませんが非常に楽しみな機能となってきました。

UE4 ライティングを複数PCで分散ビルドする

UE4でライティングを行う際に可動性(Mobility)をスタティック、またはステーショナリーにすることで、ライティングビルドを実行すると、ライトマップ(光と陰の情報)のベイク(焼き付け)を行うことが可能です。

ライティングそのものについては公式ドキュメントを参照してください。

docs.unrealengine.com


しかしライティングビルドというものはとても時間がかかります。短い場合でも数分、長いと数時間以上かかってしまいます。

そこで複数PCを活用することで、ライティングビルドを分散化してビルド時間を短縮することが可能です。

前提として、複数PCが同一ネットワーク内に存在する必要があります。複数PCが同一ネットワークにあるのを確認したら早速やってみましょう。

続きを読む

UE4 IKを使ってリアルタイムにボーンを制御してみる

IK(インバースキネマティクス。日本語では逆運動学)という機能は3DCGの世界でごく一般的に使われている機能のひとつですが、リアルタイムのゲームではまだまだ使われていないことも多いです。

IKを使うと高さに合わせて足の位置を調整したり、腕の位置をドアやコップの位置に合わせて移動させ、リアリティをより追求することが可能です。

今回はUE4で使えるふたつのIKノードについてを解説します。

使用するバージョンはUE4.16.1の日本語版となっています。

また今回は特に意味もなくGrayちゃんを使っていますが、ご了承ください。

Grayちゃんモデルデータ | rarilog

続きを読む

UE4 アニメーションモディファイア(Animation Modifier)で自動的にアニメーション情報を追加する

UE4.16で追加されたアニメーション新機能に"アニメーションモディファイア(Animation Modifier)"というものがあります。

www.youtube.com

ただこれ、パッと見てもぜんぜん利点も使い方もわからないですよね…私も全然わかりませんでした。というわけでちゃんと触ってみましたが、しっかり使い方を理解すれば相当便利な機能であるとわかりました。

今回はそれをしっかり解説したいと思いますので、続きをどうぞ。

続きを読む

UE4 AIで使う移動と停止のまとめ

UE4にはAIを移動させるための機能が沢山あります。

ちょっと多すぎて、いつも移動はできるのに、どれで停止させられるのかわかりづらいですね…
個人的な備忘録も兼ねてまとめておきたいと思います。

まずUE4でAIに移動で使うための機能は大きく2種類あります。

・ブループリントで利用するMoveTo系
・ビヘイビアツリーで利用するMoveTo系

大きく分けると、この2種類ですが、それぞれに色々なノードがあります。

これらの移動系ノードと停止系ノードについて解説していきましょう。
ちなみにビヘイビアツリーの場合には、移動はビヘイビアツリーで行いますが、停止は全てブループリント上で行いますので注意してください。

続きを読む

UE4 LookAt機能を使ってGrayちゃんに見つめてもらってみる

UE4のアニメーションブループリント内で使用できる、"Look At"ノードは簡単にキャラクターたちを振り向かせることが可能です。
UE4.16では"Look At"ノードが強化され、さらに使いやすいものとなっています。

今回はこの"Look At"ノードを使ってGrayちゃんに見つめてもらうようにしてみました。

"Look At"ノードに関するドキュメントは以下にありますが、4.16には対応していないため、一部古い情報があります。
2017/06/10追記 "Look At"ノードのドキュメントが4.16に対応したものになりました。

docs.unrealengine.com


Grayちゃんに関しては別途配布サイトからDLしてあげてください。

Grayちゃんモデルデータ | rarilog


それでは早速やってみましょう。

続きを読む

UE4.16で追加される新機能ハイライト

いよいよUE4.16の正式版がリリースされそうです。
今回も正式版リリース直前に放送される機能ハイライトについての動画から新機能を紹介していきたいと思います。

オリジナル動画は以下にありますので、気になるという方は自分でも確認してみてください。

www.youtube.com


いつも通り、画像が大量にありますので注意してください。
それでは早速紹介していきます。

続きを読む