前回に引き続き、UE4のGDC2017の情報を追っていきます。今回はEpic Gamesが講演した3つのセッションの中から気になった部分を抜粋して紹介していきたいと思います。
非常に画像と動画が多いので、ネットワーク環境には注意してください。
講演動画に関してはTwitchの公式チャンネルのアーカイブから観ることができます。
新オーディオエンジンについて
まずは最近色々と追加され始めている、UE4の新オーディオエンジンについてです。新オーディオエンジンは様々な部分が変わっています。
オーディオ機能は各プラットフォームに深く依存しており、その部分をなんとかしたいがために刷新されたようです。
なので全ての機能が実装されているわけではなく、MacやAndroid、LinuxやHTML5ではそれぞれ使えない機能や問題もあるようです。
マスターリバーブやマスターEQ、ストリーミングやリアルタイム非同期デコード、ダイナミックピッチシフトなどなどとにかく沢山の機能が。
アーキテクチャーは変わって、プラットフォーム依存?だった部分をAudio Mixer Moduleが広くカバーするようになったようです。
そして好評配信中のRobo Recallでは上記のような機能が既に入っているようです。
新しく利用できるようになったエフェクトたち。
ゲームのために用意された音声合成機能。Audio "Shader"とも書かれていますが、まさしくそんな感じですね。
そして今回注目の機能のひとつがUMGのUI機能で作られた、デジタルシンセサイザー。
UE4の新オーディオエンジンで搭載されるリアルタイムなDSPエフェクト のデジタルシンセサイザー。#GDC17 #UE4 pic.twitter.com/eO5Wz57Lx3
— alwei (@aizen76) 2017年3月2日
リアルタイムに変化する音声が面白い!しかも本物のシンセサイザーっぽく操作ができます。まさしく音屋さんたちのための機能です。この後も色々専門的な話がありますが、わかりにくいので、動画で観ましょう。
UE4新オーディオエンジンのより自然な音響の水の音や電磁音。 #GDC17 #UE4 pic.twitter.com/H0yACN5lp9
— alwei (@aizen76) 2017年3月2日
様々なエフェクトによりとても自然な音に聴こえてきます。
UE4新オーディオエンジンの物理ベースサウンドによる遮蔽物も考慮された音響環境。 #GDC17 #UE4 pic.twitter.com/7QWLrdoqYj
— alwei (@aizen76) 2017年3月2日
そして物理ベースサウンドによりついに3D環境情報をしっかりと計算した音環境が。遮蔽物がある場合にはちゃんと考慮されて音が聴こえるようになります。
新たにSteam Audioというプラグインが。これにより先ほどの遮蔽物による音響やリバーブなどの深い機能も使えるようになるようです。
更にこの先にはプロファイリングツールや既存のUE4ツールとの統合、ベターなアセットフォーマットサポート追加など行われるみたいですね。
マルチパスレンダーターゲットを使った様々な表現
次はマルチパスレンダーターゲットによる様々な表現についてです。
まずマルチパスレンダーターゲットとは?レンダーターゲットは様々な情報を書き込み、多様な表現が可能ですがこれまでは複雑なことをやるにはピクセルシェーダーなどを使う必要がありました。
このレンダーターゲット機能を使うとブループリントとマテリアルのみでも十分に多様な表現が可能となります。
そしてマルチパスレンダーターゲットは複数のレンダーターゲットを組み合わせて使う手法です。
一番よく使うメインのメソッドたち。
そして最も簡単な利用方法。
実際にこのマルチパスレンダーターゲットを使った様々な表現を実際にみることができましたので、早速みていきましょう。
マルチパスレンダーターゲットを用いてペイントした結果から波の流れを作る。 #GDC17 #UE4 pic.twitter.com/jov2r710NY
— alwei (@aizen76) 2017年3月2日
これは波のサーフェースとレンダーターゲットを組み合わせて、ペイントを行った部分に波の流れが発生するようになっています。難しそうな処理に見えますが、意外と簡単に実現しています。
マルチパスレンダーターゲットを用いて、VR空間上でボリュームペイント。 #GDC17 #UE4 pic.twitter.com/k1c7OxSjbC
— alwei (@aizen76) 2017年3月2日
これはボリュームペイントといって、複数のサーフェース上のレンダーターゲットを使ってレンダリングしたものを重ねることで雲のようなものを発生させることができます。そしてその情報をVR上でペイントすればまさしくこのような光景になるようです。
マルチパスレンダーターゲットを使ってペイントでヒットマスクを作り、ダメージ表現をする。 #GDC17 #UE4 pic.twitter.com/fpRMAS4MDv
— alwei (@aizen76) 2017年3月2日
キャラクター上を直接ペイントすることで、このようにマスクされた部分だけにレンダーターゲットの情報を適用させるとターミネーターのようなダメージ表現ができます。非常に面白い表現。
ここからしばらく非常に理論的な話が続いたので、少し飛ばして。
ボリュームレイマーチングやベクトルノイズやベクトルフィールドを用いて、カーブ編集により形が変形する流体シミュレーションの煙。 #GDC17 #UE4 pic.twitter.com/E4GDwilnHW
— alwei (@aizen76) 2017年3月2日
これまでに紹介された技術を使って、煙の流体シミュレーションをやっています。ボリュームレイマーチング、ベクトルカールノイズ、そしてベクトルフィールドをカーブで編集することにより、動的に形を変化させています。
ここまで使ってきた技術をかなり使い倒しているので、非常に難易度が高いですがこういう表現がUE4でも実現できるというのは凄い!
このセッションはプログラマーというよりはテクニカルアーティスト向けだったようですが、難易度が高いセッションでもとても実用的だったという印象でした。もう少し時間かけて理解したい。
アニメーションと物理の新機能について
最後はアニメーションと物理の様々な新機能についてです。このセッションではUE4.16以降に搭載される様々な新機能についての解説が行われていました。
リグを使ったアニメーションをもっとフレキシブルにユーザーフレンドリーにしたいというもの。
現状のパイプラインはDCCツール上でパッケージし、インポートするという手順がどうしても必要になっていました。
新しいパイプラインは滅茶苦茶シンプルになって、なんとUE4上だけでイテレーションが完結しています。
なんとUE4上でアニメーションの編集ができるように!!
アニメーション新機能。リグを用いてUE4内でコントローラーを動かし、シーケンサー上でアニメーションを作る。もちろんIKとFKの切り替えも可能。ランタイムリギング。 アニメーションシーケンスにも書き出し可能。#GDC17 #UE4 pic.twitter.com/MWj0KDco8I
— alwei (@aizen76) 2017年3月2日
新たにモードパネルに追加されたアニメーション編集パネルとシーケンサーを使ってリグのコントローラーを動かしてキーを打つと編集ができます。すばらしい!!
こういう機能あったらいいなぁというのが本当に来た感じ。まだまだこれから開発していくところだと思いますが、一番期待できる機能のひとつです。
新たな新機能ポーズドライバー。RBFソルバーという仕組みを使って、複数のポーズから中間値を割り出して、ボーンのジョイントに対して適用することが可能となります。
複数のポーズからそれぞれに与える入力値から最終的な出力値をジョイントに適用すると、より自然な動きを作り出すことができるようです。この設定はなかなか難しそう。以下はRBF補間について。
次はMayaライブプラグインについて。これはDCCツールであるMayaと直接繋ぎ、通信を行うことでUE4上へとMayaの情報を反映させることができる新プラグインです。
アニメーション新機能Mayaライブリンクプラグイン。Maya上でセットしたアニメーションの情報をリアルタイムに反映。 #GDC17 #UE4 pic.twitter.com/mPH1lxXHWI
— alwei (@aizen76) 2017年3月2日
つまりMayaの作業をリアルタイムにUE4へと反映させることができます。これの用途は主にモーションキャプチャーとの連携で利用するようです。実際にこれを利用してリアルタイムモーションキャプチャーの情報をUE4へと反映させてその場で編集を行うという用途に使われています。
次は布などの動きを表現するクロスシミュレーションツールです。これまではNVIDIAが作ったAPEXというものを使って外部のDCCツールで編集が必要でしたが、この機能によりそれらが完全になくなります。
これがこれまでに必要となっていたパイプライン。
そして新しいパイプラインではAPEXの部分が完全になくなり、APEX上に戻って作業するということがなくなりました。UE4上で完全に作業できます。
クロスシミュレーション新機能。もうAPEXなしでクロス設定が可能に。UE4上でウェイトペイントできる。激しい動きでも破綻しない。 #GDC17 #UE4 pic.twitter.com/pKOkVryqDK
— alwei (@aizen76) 2017年3月2日
これは便利!ウェイトペイントまで出来てしまいます。もうクロスシミュレーションの設定でMayaもいらない!!激しく動き回っても破綻しません。すばらしい。
最後に紹介するのが、Immediate Mode Phsyicsです。
わかりやすく言えば、LODを使って距離が離れている場合には物理処理を削って軽量化させようということですね。
実際の処理負荷。大体トータルで4,5倍程度変わってきていますね。
物理新機能Immediate Mode Physics。LOD別に物理処理を切り替える。遠く離れている物理物体の場合には自動的に物理が軽量化される。数が多い場合の物理処理が5倍以上軽減されるらしい。 #GDC17 #UE4 pic.twitter.com/XfrxKUjXdj
— alwei (@aizen76) 2017年3月2日
すごい数でも全く処理が落ちずに動いてます。動きが面白い。なんか見ているだけでも楽しいです。
最後にRobo Recallのチームはとても小さいチームだったようですが、UE4.14で実装された物理アニメーション機能や4.15で追加されたポーズスナップショットなどの機能を使うことにより、プロシージャルなアニメーションを生成したことで、とても小さい工数でリアルな動きが作れたようです。
これは実際にRobo Recallのプレイ動画を観ればよくわかりますね。これらの新機能がEpic Gamesで開発されている実際のゲームでも使われているので、とても実用的ということがよくわかります。
とても面白い機能が満載でしたが、これらの機能はほとんどがUE4.16以降からです。最初は実験的な内容のものが多いですが、バージョンアップを経てきっと完成度が上がるはずです。
今後のアップデートに期待!
今回のGDCでとても面白い機能が沢山発表されました。まだまだUE4からは目が離せません。個人的にアニメーションの機能はどんどん使っていきたいですね。
また何か新しい情報が入れば更新していきます。