UE4.18がリリースされてからしばらく経ちましたが、まだまだ検証情報が少ないので、今回はブループリントの新機能についてを解説します。
UE4.18のリリースノート自体は以下にありますので、そこから拾ってきた情報をもとに独自に調べました。
それでは早速見ていきましょう。
続きを読む先日UE4.18がリリースされました。
色々な機能があり、試したいことが沢山あるのですが時間がどうにも足りていません。
ひとまず今回試してみたのはVisual Studioをインストールせずに、Visual Studio Codeという比較的軽量なテキストエディターを使って、UE4のC++プロジェクトを実行するというものです。
これができるとVisual Studioの高度なIDEまでをインストールせずにビルドからデバッグまで一通り完了することが可能です。
では早速試していきましょう。
続きを読む最近ブログ記事を書く時間もないほどに目まぐるしいalweiです。こんにちは。
今年も来ましたが、横浜での公式イベントであるアンリアルフェス。
『UE4の攻略方法を伝授!より効率よく楽しく学ぶための鉄則について』
というタイトルで喋ります。
『もう何度目だよ!』と突込みを入れられてしまいそうですが、今回もやります。今回のテーマは『教育と学習』について。
普段専門学校などでUE4を講師として教えている私ですが、今回はその際に得たノウハウや、個人的な勉強方法までを色々と伝授します。
UE4のセッションですが、今回の話はUE4以外にも十分通用する話となるので、学生さんや専門学校の先生だけでなく、これからUE4やそれ以外の勉強をやりたいと思っている人にも、非常に有用な内容となっております。
また今回はひとつ、大きめの告知があります。
ぜひ多くの方に聞いてもらいたいと思いますので、ぜひともよろしくお願いします!!
ぷちコンの最優秀者発表もありますので、みなさん今週末は横浜のパシフィコで会いましょう!!
UE4.17からアセットマネージメントフレームワーク(Asset Management Framework)と呼ばれるものが正式版として利用可能になりました。この仕組みは必要のない人には全く不要の機能です。UE4のアセットのロードやアンロードは自動的に行われており、それらを細かく制御する必要がありませんでした。
ただし、コンソールゲーム開発やモバイルゲーム開発ではこのようなやり方をとっていると致命的な問題になってきます。メモリーが足りていない状況や、一気にアセットを読み込むと負荷が問題になるようなケースがありますが、このような場合にアセットマネージメントフレームワークを使うことで、より細かいアセットの読み込みが可能となります。
では早速アセットマネージメントフレームワークもとい、アセットマネージャーについて解説をしていきたいと思います。
続きを読む現在UE4.17のPreview 2が既にダウンロード可能となっています。
4.17もかなりの追加機能があり、まだその全容は掴めていません。今回は4.17で追加された、ブループリントを使ってエディタースクリプティングによる、アセット操作をやってみます。
エディタースクリプティングはブループリントやその他のスクリプト言語からUE4のエディター機能が呼び出せるようになる仕組みです。公式ではPythonによるサポートも追加される予定です。
以前にもBlutilityという機能を紹介したことがありますが、今回はそれを更に推し進めたもののように見えます。
新たに4.17ではブループリントに『Editor Scripting』というカテゴリーが追加されています。特にBlutilityクラスを作成し、その中で『Editor Scripting』のカテゴリーを検索すると、更にノードの数が増えます。
見ているだけで色々できそうです!
事前にBlutilityのアセットをダブルクリックするとイベントが実行されるようにしておきます。
それでは早速これらでどのようなことができるか見てみましょう。
まずは簡単な例として、Asset Toolsと呼ばれるものを作ってアセットを作成してみます。以下のような具合にノードを組んでみました。
これを実行すると、フォルダーが作成されてスタティックメッシュが生成されました。
ただし、このスタティックメッシュは何もメッシュ情報が割り当てられていないため、開こうとするとエディターがクラッシュしてしまいます。現状の方法のまま使用するのはダメなようです。
ひとまずアセットの生成自体は上手くいっているのでよしとしましょう。
次はアセットのインポートを試してみます。
このノードを使うと呼び出した瞬間にダイアログが表示されてインポート処理が実行されます。"Destination Path"にインポートするパスを指定します。
今回はFBXをインポートしようとしてみました。これでそのままOKを押すと…
いつものようにインポートが完了し、スタティックメッシュとして認識されます。でもこれだけだとあまり意味はないですね。
他にも自動的にインポートを行う"Import Assets Automated"やアセットのエクスポートを行う"Export Assets"やアセットのリネームを行う"Rename Assets"が用意されていますが、いずれもなぜか純粋関数になっており、そのままでは呼び出すことが不可能です。
おそらくこの辺りのノードは公開されているけどまだ使用不可能な状態です。近い将来にきっと使えるようにはずです。
エディタースクリプティングには新規レベルを作成する機能がありました。
これで新規レベルが作成され、選択中のアクターをその新規レベルに移動させるという機能です。ただし、4.17 Preview 2現在ではまだこれらの新規作成を行うだけで確実にクラッシュしてしまいます…
しかし間違いなく面白い機能なので、ちゃんと動くと強力そうです。
他にも"New Blank Map"で空のレベルを作成したり、"New Map from Template"でテンプレートから新しいレベルを作成するノードがありますが、こちらも漏れ無くクラッシュしてるのでまだ使えません…
更にレベルを開く機能もあります。
"Load Map with Dialog"ではダイアログを開き、そこからレベルを選択すると、そのマップを開きます。"Load Map"は指定したファイル名のマップを開きますが、やはりこれも開いた瞬間にクラッシュ…
レベル関係は総じてまだこれからといった感じですね。
ソースコントロールが操作できるようにいくつかのノードが追加されています。
指定したファイルをソースコントールに追加したり、チェックアウトができるようになります。更にファイルのコピーを行い、そのファイルをそのままソースコントロール下に追加することができます。
これ以外にもファイルパスを相対パスから絶対パスに変換するノードがあります。
こんな感じで指定してあげると…
プロジェクト相対パスが絶対パスに変換されていることがわかります。"Package Filenames"と"Absolute Filenames"はどちらも絶対パスに変換するノードのようですが、細かい違いまではわかっていません。(そもそもFile NameとPackage Nameの違いは?)
まだこちらも実験的な機能だと思いますので、今後ノードが追加が追加される可能性は高いです。
次はアクターに対する操作です。操作といっても現状はほとんどアクターの状態をとれるノードがほとんど。唯一、"Set Is Temporarily Hidden in Editor"のノードはこのように組むことでエディター内で非表示モードの切り替えができます。
取得できるのは主に『選択しているか?』『編集しているか?』『エディター上で隠されているか』あたりの情報がメインです。
そして次はグループ化です。例えば以下のようにノードを組みます。
更にビューポート上で複数のアクターを選択して、Blutilityを実行すると…
アクターがグループ化されました。これでひとつのピボットで移動などの操作ができます。
他にグループをアクティブ化したり、グループを解除したり、グループをロックするなどの機能が一通りあります。大量のアクターを管理している時などは非常に便利ですね。
"Get All Actors Of Class"ノードなどを使って、特定クラスのアクターのみをグループ化したり、特定タグを持つものをグループ化したりもできるはずです。使い方次第でかなり便利そう。
更にマテリアル関係の操作もあります。
これらはマテリアルの存在をチェックし、そのマテリアルが存在する場合には、Material Interfaceを取得します。存在しない場合にはエラー情報を取得できます。
それとは別に"Material Editing"カテゴリーには更にマテリアルを操作できるノードがあります。例えば以下のようにノードを組みます。マテリアルは予め空のものを作成しておきます。
そしてこれを実行すると…
マテリアル内に指定したマテリアルノードが作成されています。現状では"Connect Material Expressions"ノードを使うとピンとピンのワイヤー接続もできるようですが、この辺りの指定の名前がまだよくわからないので、使い方が曖昧です。
ただし、マテリアルのノード生成までをブループリントのノードから行えるというのは非常に大きい強みとなります。
他にもマテリアルインスタンスやマテリアル関数の更新やセット行うノードや、マテリアルインスタンス内のパラメーターの操作や取得、マテリアルノードの追加や削除、マテリアルのシェーダー再コンパイルなど実に様々なノードがあり紹介しきれません。
現状ではまだまだこれらは追加途中の機能という感じで、まだ実用は難しそうですが本格的に利用できるようになればブループリントだけでマテリアルワークフローの改善ができるようになりそうです。
UE4でライティングを行う際に可動性(Mobility)をスタティック、またはステーショナリーにすることで、ライティングビルドを実行すると、ライトマップ(光と陰の情報)のベイク(焼き付け)を行うことが可能です。
ライティングそのものについては公式ドキュメントを参照してください。
しかしライティングビルドというものはとても時間がかかります。短い場合でも数分、長いと数時間以上かかってしまいます。
そこで複数PCを活用することで、ライティングビルドを分散化してビルド時間を短縮することが可能です。
前提として、複数PCが同一ネットワーク内に存在する必要があります。複数PCが同一ネットワークにあるのを確認したら早速やってみましょう。
続きを読む