Let's Enjoy Unreal Engine

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

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

UE4.15のPreview 3が既に公開済みですが、今回も色々と新機能について公開されているので紹介していきたいと思います。

公開されている情報はUnreal Engine公式が毎週配信している生放送から引用しています。以下はアーカイブ

www.youtube.com

より詳しい情報が知りたい方は動画の方をゆっくりと観ましょう。

以下、非常に画像が多く、とても長いので注意してから開いてください。

ニンテンドースイッチをサポート


f:id:alwei:20170204181442p:plain

既に大きな話題となり、予約も開始されていますが新たにニンテンドースイッチのサポートが4.15から正式に対応します。

ニンテンドースイッチはユニークなコンソールゲーム機ですが、UE4が対応することにより、インディーゲーム開発者たちが積極的に参加できるプラットフォームになってくれたらいいなと思います。

テクスチャーストリーミングの改善


f:id:alwei:20170204181701p:plain

4.13、4.14と改善されてきたテクスチャーストリーミングが4.15で更に改善され、4.15を区切りとしてひとまず完成となります。

ロード時間やメモリー使用量が改善され、比較的視覚に影響しない範囲でテクスチャーの縮小化などを行ってくれるようになるようです。これまで手作業が必要だった部分を極力自動化してくれるようになり、作業が少なくなります。またデバッグ用にテクスチャーの視覚化ツールも追加されます。

クック時にブループリントからC++へのコンバート


f:id:alwei:20170204182450p:plain

こちらも少し前のバージョンから導入されていた機能で、パッケージ化などを行うタイミングでブループリントで組まれていたノードの情報をC++コードへと変換できるようになります。速度上の問題でブループリントを使うことがネックになることがありましたが、本機能のおかげでブループリントを使っていてもネイティブコードと変わらない速度で実行できることになります。

この機能は特定のブループリントはコンバートから除外することもでき、ピンポイントの最適化も可能です。これでブループリントが実行速度のネックになっていることはほぼなくなることでしょう。

C++でのコンパイル時間の高速化


f:id:alwei:20170204183035p:plain

"include what you use"(あなたが使用するものを含む)と呼ばれるツールで使われているビルドモデルを利用することで、C++コードのコンパイルが25%から最大で50%(!)も速くなります!これはかなり衝撃的ですが、C++を使っている人には大きく影響するはずです。特に設定をしなくてもコンパイル時間が速くなるというのはとてもいいことです。

矩形UIブラー


f:id:alwei:20170204183631p:plain

UMG上で2Dの情報として矩形の形で背後に対してブラーをかけることができるようになります。たとえばポーズ画面やメニュー画面を開いた時に背景をぼやけさせたい時などに使えそうです。強度を0から100の間で設定可能です。

シーケンサー上のアニメーションのブレンディング


f:id:alwei:20170204183820p:plain

これまでシーケンサーやマチネを利用した時にアニメーションを使用するとその遷移を行うとブレンディングがなく、一瞬でパっと切り替わっていたので大きな違和感がでていました。これを改善できるようにシーケンサーでアニメーションを利用した時にウェイトに基づいて区間をブレンディングしてくれるようになります。

シーケンサーアニメーションをブループリントでも利用可能に(実験的)


f:id:alwei:20170204184141p:plain

新たに"Actor Sequence"コンポーネントが追加され、ブループリント内でもシーケンサーのアニメーション機能が利用できるようになります。これまでタイムラインを使ってアニメーション制御を行っていましたが、これはかなり革新的な機能になる気がします。まだ実験的な機能ですが非常に楽しみな新機能です。

コンテンツホットリロード(実験的)


f:id:alwei:20170204184417p:plain

アセットをコンテンツブラウザーで開く時に自動的にリロードを行い、、ソースコントロールから自動的に最新を反映させる機能?のようです。実験的な機能なのでエディター設定からコンテンツホットリロード機能自体をオンにする必要があります。またリロードしたいアセット単位で"Reload"コマンドで選択ができるようになるようです。

自分に影響のない範囲で自動的にリロードしてくれるのは便利かもしれませんが、ちょっとトラブルが怖いですね。

HDRディスプレイ出力(実験的)


f:id:alwei:20170204185400p:plain

HDR(High Dynamic Range)ディスプレイの出力に対応します。PS4 Pro発売時に追加された機能として話題になりましたね。現状はNVIDIAカードを利用したDirectXかPS4かMacのMetalを利用した時のみ利用できるようです。ただし、この機能を利用してもHDR対応のディスプレイがないと意味がないので、PC用のディスプレイにはまだまだHDR対応のものが少ないのがネックです。

ビューポートでハイエンドモバイルプレビュー


f:id:alwei:20170204185908p:plain

OpenGL ES 3.1、Metal、VulkanなどのハイエンドモバイルのレンダリングをPCのエディタービューポート上で再現できるようになります。この機能自体はこれまでずっと実験的なものでしたが、それが正式なものとなりました。今後はこれらのレンダリングを使うモバイルゲームも増えると思いますので、利用価値が増えると思います。

Map/Setコンテナがブループリントで利用できるように


f:id:alwei:20170204190419p:plain

4.14から追加されていたMapとSetコンテナが遂にブループリントからでも利用できるようになります。4.14では完全に実験的な機能であったため、使い物になりませんでしたが遂に使えるレベルのものとなりました。基本的な導入は配列と同じです。MapとSetはC++STLコンテナとほぼ同様の機能を持ちます。どちらも検索性に優れ、配列より高速に動作します。Mapは辞書型のコンテナなので、キーと値をペアで保持して使うことになります。

ゲームプレイタグのフルサポート


f:id:alwei:20170204190722p:plain

ゲームプレイタグとは既存のタグをよりゲーム上で利用しやすいタグとして作られたものです。このタグは専用のUIがあり、スキルやアイテムなど管理する際にも役立つようです。いわゆる辞書的な使い方が可能で、タグ自体にはプロパティの追加もすることができるようです。データテーブルとは違い、あくまでもエディター内で読み込む形の専用のタグと思えばよさそうです。

VRエディターのメニュー改善とナンバーパッドの追加


f:id:alwei:20170204191255p:plain

VRエディターのクイックメニューとラジアルメニューが更新されて、エディターの機能により素早くアクセスできるようになりました。更にテキストフィールドをクリックすることでナンバーパッドメニューという専用の数値入力UIが追加されます。

RawInputプラグインの追加


f:id:alwei:20170204191509p:plain

RawInputをサポートするプラグインが追加されます。RawInputとはXInputを利用しない入力のことで、主にDirectInputを使った入力となります。これで今までDirectInputのパッドを使えなかった問題が一部解決します。現状ではまだまだ対応はこれからといったところで、ジョイスティックやゲームパッドによっての問題を色々と報告してほしいとEpicの中の人も言っています。

自動車の物理処理をプラグイン


f:id:alwei:20170204231337p:plain

元々自動車の物理系の処理はエンジンの中に統合されていましたが、今回からエンジンプラグインとして別に用意されることになりました。主な理由は車を使わないゲームの場合に容量やメモリーを節約できるようにするためです。またプラグイン化にあたり、新規機能も色々と用意されたようです。

フォースフィードバックコンポーネントの追加


f:id:alwei:20170204230939p:plain

フォースフィードバック(振動処理)がコンポーネントとなって利用できるようになります。これにより、アクター側に複数のフォースフィードバックを追加したり、位置や向きをもったフォースフィードバックを発生させたり、サウンドと同じような減衰処理を行うことができるようになりました。

PlayStation VRのエイムコントローラーをサポート


f:id:alwei:20170204231540p:plain

PlayStation VRで専用に発売される予定の銃型のエイムコントローラーに対応します。基本的な操作はPS4のデュアルショックゲームパッドでも可能なようにマッピングされているようです。

新しい数式系マテリアルノードの追加


f:id:alwei:20170204231858p:plain

なぜか今まで存在していなかったような数式系のマテリアルノードが追加されました。更に『Fast』という文字がついたノードは一定の制限つきで更に高速に実行できるようになります。

前フレームスイッチのマテリアルノードの追加


f:id:alwei:20170204232416p:plain

前フレームの情報を取得し、モーションベクトルから動きを生成し、マテリアルに反映するために利用可能な"Previous Frame Switch"というノードが追加されます。これをWorld Position Offsetに反映させるとゴーストのような動きも作りやすくなります。

スキニング前のローカル法線を取得するマテリアルノードの追加


f:id:alwei:20170204232553p:plain

4.14でも追加された、"Pre-Skinned Local Posion"ノードの法線版です。スキニング前のローカル法線情報を取得し、それを使ってメッシュの面に対して様々な処理を加えることができるようになります。

MacのMetalでテッセレーションができるように


f:id:alwei:20170204232914p:plain

MacOSのMetalを使ってテッセレーション処理ができるようになります。テッセレーションを使うとリアルタイムにメッシュの加工を行うことができ、よりスムーズなメッシュを生成したりすることが可能となります。

シーケンサーのイベントトラックにパラメーターを渡せるように


f:id:alwei:20170204233045p:plain

これまでシーケンサーのイベントトラックはイベントを発生させるのみで、追加パラメーターを渡すことはできませんでした。今回の追加で構造体を定義し、パラメーターをイベントトラックで指定すると直接イベントに値を渡すことが可能となります。テキストアドベンチャーゲームなどで各種フラグを渡したりするのが楽になりますね。

シーケンサーに対して動的にオブジェクトが追加可能に


f:id:alwei:20170204233422p:plain

シーケンサーに対して、動的に追加されたブループリントのアクターを関連付けさせることができるようです。シーケンサーは基本的に事前に決められたものしか動かすことしかできませんが、この機能を使うとゲームプレイ中に様々なアクターを動かすことができるように?なるかもしれません。

ブレンドスペースエディターの改良


f:id:alwei:20170204233808p:plain

ペルソナアニメーションエディターの一部であるブレンドスペースエディターが改良されます。今までスペースが狭かったところが詳細タブに移動したりして、今までよりも広くブレンドスペースを編集できるようになるようです。

ポーズスナップショット機能の追加


f:id:alwei:20170204233941p:plain

ブループリント上からアニメーションの動きをスナップショットとして撮影し、そのポーズ状態をそのままアニメーションとして反映させることができます。これは物理やブレンド情報なども含み、普通では再現できないようなポーズもスナップショットとして残すことができます。後でそのポーズを再現したい時に使えますね。

質量情報デバッグ機能の追加


f:id:alwei:20170204234222p:plain

今まで微妙にわかりにくかったスタティックメッシュなどの質量情報を視覚的に確認可能なデバッグ機能が追加されます。実際にそのオブジェクトがどの程度の質量を持っているのかを視覚的にわかりやすく確認ができるようになります。

カーブの動きを追加可能なアニメーションノード


f:id:alwei:20170204234612p:plain

カーブの動きをアニメーションに追加可能となるアニメーショングラフで利用可能なノードです。実際どのように見えるかはわかりませんが、既存に動きの中にカーブの動きを足して動かせるようになるようです。

フォントアセットの改良


f:id:alwei:20170204234802p:plain

フォントアセットのランタイムキャッシュフォントを利用時にメモリーの消費と安定性が向上するようです。更にフォントアセットはフォントとフォントフェースという2つに分割され、フォントフェースにはフォントデータを格納することになります。つまり複数のフォントで同じフォントデータを共有することが可能となり、より複数のフォントが扱いやすくなります。

バイルVRでモノスコープファーフィールドレンダリングが利用可能に(実験的)


f:id:alwei:20170204235218p:plain

バイルVRにて、遠隔のオブジェクト表示を最適化する、モノスコープファーフィールドレンダリングが利用可能になります。現時点ではモバイルマルチビューとモノスコープファーフィールドは両方利用できず、モバイHDRの機能も無効にする必要があるようです。GearVRなどでパフォーマンス向上目的では利用できそうです。

バイルポストプロセスでカスタムステンシルが利用可能に


f:id:alwei:20170204235459p:plain

バイルのポストプロセスでカスタムステンシルを使うことが可能となります。カステムステンシルを使うことオブジェクトごとに独自の処理をかけて加工するといったことが容易となります。簡単なマスク処理などをかけるのにとても重宝するので、モバイルでも有効に活用できるはずです。この機能はモバイHDRオプションをオンにしないと利用できません。

Androidグラフィックスデバッガーの統合


f:id:alwei:20170204235720p:plain

サードパーティが提供している、Android用のグラフィックデバッガーがエンジンに統合されます。UE4側から利用するデバッガーを選択すると、Android実機上でグラフィックス負荷などのデバッグを簡単に行えるようになります。

iOSAndroidGPSのロケーションサービスが利用可能に


f:id:alwei:20170204235913p:plain

ポケモンGOのようにGPSを使ったゲームが流行っていますが、この仕組みでブループリントからでもGPSのロケーションサービスを各種モバイルデバイスで利用可能になります。ここUE4のモバイル機能はかなり追加されており、あとは磁気センサー(コンパス)が追加されればほぼ揃ったことになります。

マテリアルエディターにRerouteノードが追加


f:id:alwei:20170205000107p:plain

ある意味で4.15最大の注目点かもしれないのがこのマテリアルエディターにRerouteノードが追加されることです。ブループリントではお馴染みでしたが、マテリアルエディターではなぜか使えませんでした。これまでスパゲッティになりがちだったマテリアルノードもこれできっと綺麗にワイヤーを整えることができるようになるはずです。

UE4.15も面白い機能が満載!

以上がUE4.15に追加されるであろう新機能のハイライトでした。

今月末にはGDC2017も開催され、おそらくUE4.15はその前にリリースされるはずです。今回ここに載らなかった機能もまだまだあるはずなので、実際にリリースされるタイミングが楽しみです。