GDC2013 The Inner Workings of Fortnite's Shader Based Procedural Animation #gdc13j

GDC2013、4日目に行われた、頂点シェーダーによるアニメーション構築の実例についてのセッションのメモです。Unreal Engineで作られていますが、そうでない環境でも応用できるいい話です。こなれた技術ですが、工夫次第で面白くできるんですな。
2
xionchannel @ajinotataki

次はシェーダーベースのアニメーションシステムを聞いてきます #gdc13j

2013-03-29 03:00:49
xionchannel @ajinotataki

epicの人が話すので、ひょっとするとudkの中の話だったりするのかな? #gdc13j

2013-03-29 03:24:17
Iwade Takashi @rockout77

#gdc13j 次は The inner working of FORTNITE'S Shade-based peocedual animation。今回唯一?のアンリアル4実タイトルの事例。ただ内容に関しては予想の幅が広い、どう出るか。

2013-03-29 03:29:04
xionchannel @ajinotataki

epicのTAの方がしゃべってます #gdc13j

2013-03-29 03:29:50
xionchannel @ajinotataki

サンプルの動画すごかった。たてものが出来上がったり、バウンスしたり。 #gdc13j

2013-03-29 03:31:01
Iwade Takashi @rockout77

#gdc13j 始まった。やはりそっちか!。叩かれたオブジェがカートゥーン的にびよよんと震える表現。

2013-03-29 03:31:45
xionchannel @ajinotataki

Bounce Efffectsとして、壁をたたいてバウンスさせる動画。UDKのシェーダーベースビルダーつかってるかな。ワールドのポジションをあたえて、その近辺の頂点を距離に応じてアニメーションさせる。バウンスのカーブはゲーム側でアニメーションさせてるのかな #gdc13j

2013-03-29 03:33:07
Fumoto Kazuhiro @FumotoKZ

#gdc13j Bounce Effects 頂点シェーダでの事例

2013-03-29 03:33:16
Iwade Takashi @rockout77

#gdc13j バウンスエフェクト、これはUEのUIか?。ノードベースで、オブジェの揺れるところ揺れないところが輝度テクスチャで定義。ゆれの振幅がカーブで定義など

2013-03-29 03:33:20
xionchannel @ajinotataki

stylized cullingとして、たてものが出来上がったりするような動きをしながらかリングされている。ピョコピョコできあがって楽しい #gdc13j

2013-03-29 03:33:45
Fumoto Kazuhiro @FumotoKZ

#gdc13j Stylized Culling これか、動画の。かっこいいです。

2013-03-29 03:33:54
Fumoto Kazuhiro @FumotoKZ

#gdc13j オブジェクトのワールド座標から頂点のワールド座標へ0-1でスケールしてるのか。

2013-03-29 03:35:13
xionchannel @ajinotataki

センターを中心としてのスケーリングだが、バウンスして立ち上がる動きについては、キーポイントのスケール値をシェーダーパラメータにいれて置いてぴょこんとさせてるかな #gdc13j

2013-03-29 03:35:31
Iwade Takashi @rockout77

#gdc13j スタイライズドカリング。LODで生える際、上からオブジェが降って来て着地するように見せるシェーダー。ワールド系での頂点毎に振幅幅などを指定

2013-03-29 03:35:36
Iwade Takashi @rockout77

#gdc13j 自己建設。おそらく建設されたオブジェがどう形になるかの定義。骨組み→荒いパーツ→完成。壊れる際は逆で、消え際はピクセルシェーダーでニ値化して消したり。

2013-03-29 03:37:51
xionchannel @ajinotataki

パーツ分割しているものを別々に動かしてるが、サンプルにしたのは木の揺れや草の揺れのように扱うってことかな #gdc13j

2013-03-29 03:38:49
Iwade Takashi @rockout77

#gdc13j 木とその下の草がざわめく動画、これがパーテクックスシェーダーでと、概念紹介か?。

2013-03-29 03:39:16
Fumoto Kazuhiro @FumotoKZ

#gdc13j Self-Building Structures MaxScriptのサブオブジェクトレベルで頂点アニメーションをするのを使って頂点を分割してるのかな? TreePivotPainterToolを使うらしい。

2013-03-29 03:39:57
xionchannel @ajinotataki

バラバラに動かすには頂点からーにパラメータをいれて別々にコントロールするってことか。 #gdc13j

2013-03-29 03:40:51
Fumoto Kazuhiro @FumotoKZ

#gdc13j 前後するけど、ぴょこんアニメーションは多分カメラの深度をアニメーショングラフに利用していると予想。

2013-03-29 03:41:09
xionchannel @ajinotataki

必要な要素が動かす順序と、センターからの距離や高さ?それを頂点からーにいれているもよう。選択順序に動くように色設定をするためのmax scriptを作成して3dsmaxで色をつけているようです #gdc13j

2013-03-29 03:42:15
Iwade Takashi @rockout77

#gdc13j 実際の木壁の例。UDKでのパラメータ設定と、順番などを示してそうな色付きマップが。続いてモデルの各パーツも輝度か違ってる画面、連続でパーツを選択し、おそらく順番の指定。

2013-03-29 03:42:20
Fumoto Kazuhiro @FumotoKZ

#gdc13j これ、多分すぐ資料公開される。

2013-03-29 03:42:44
xionchannel @ajinotataki

ほんとにバーテックスシェーダーだけでやってるんだな。すごい。 #gdc13j

2013-03-29 03:43:48