Top > GTMF2016大阪

#contents

----
2016
* 概要、資料 [#h13fcf08]
http://gtmf.jp/2016/
togetter: http://togetter.com/li/996417


* enlighten [#z94631fd]
* Enlightenを使ったリアルタイムの大域照明 [#z16ef1e6]
- リアルタイムなGI
- インドア、アウトドアどちらでもOK

- IBLを提供する

** 目指した [#je48f800]
- 深みのある影
- 動的なライティングなので、時間と天気の変更が出来る


** メモ [#vb16f955]
- SkyReflectionMap
 グレースケール。時間帯等で色を変えるため。
グレースケール。時間帯等で色を変えるため。

** 海辺のデモ [#a0d1d98c]
- CPUで動く。非同期で描画をブロックすることがない
- 間接光はフルで行う必要がない。間隔は調整できる
- コストと解像度のバランス

- 渓谷で光の遮蔽がないので、上から下まで同じ見た目になる
- Enlightenを使用すると、空からの光の遮蔽、バウンスを計算。
-- 太陽光とスカイライト2つだけで表現できる。
-- ライトマップ、ライトプローブを使用
-- 光の当たっている場所、フォリッジとかはプローブ。影部分はライトマップ。どこにプローブ使うかはアーティストが決めることができる。
-- メッシュに対して、ライトマップの解像度を指定する事ができる。

- enlightenは事前計算する。サーフェイス内の光の計算。
このシーンでは10台のPCで40分程度


** Diffuse Light Probes [#jeffff05]
- 自動で配置する
- 複雑なところは高めの解像度になる、マルチ解像度

** Reflection [#t2f3be6a]
- シーン内のライティングがリフレクションに反映される
- リフレクションキューブマップをリアルタイムに更新する

** Emissive [#uc09e015]
- コスト無しで追加のエリアライト

** Tools [#c1d67ffe]
- ライティングすべてをコントロールできる
- 早いイテレーション
- コストとのバランスもとっていける

** インテグレーション [#k7a395d5]
- UE4
- Unity5
- SDK
- クロスプラットフォーム

** ほか [#g2a25902]
blogに情報書いてる







* havok [#h66980a7]
* ゲームにおける物理の最適化とデバッギング [#xdc9c269]

** 衝突判定の仕組み [#h71715a2]
+ ブロードフェイズ
AABBで判定する剛体を絞る
+ ミッドフェイズ
複合シェイプをサブシェイプを判定する
+ ナローフェイズ
正確な衝突の判定

** デバッグ [#jb7afb6c]
- ブロードフェイズ、ナローフェイズの可視化

- タイムラインの巻き戻し

- ブレークポイントのひっかけ
- 条件でオブジェクトの検索

- パフォーマンスを可視化
負荷が高い所をスクリーンに赤く表示

** コリジョンメッシュの簡略化 [#bb28fda0]
- ミッドフェイズとナローフェイズは劣るネックになりやすい
-- 衝突判定する剛体を減らす
--- AABBの分離
--- 衝突フィルター
-- シンプルなコリジョンメッシュ

- 複雑なコリジョンジオメトリとは
-- 頂点数の多い凸形状
-- サブシェイプを多く持つ構造

- 複雑なコリジョンだと
-- ミッドフェイズ、絞るサブシェイプが多くなる
-- ナローフェイズ、衝突判定を検出するサブシェイプ、頂点が多くなる
 
- 簡略化
-- 手による簡略化
--- Hacokにはメッシュを簡略化するツールが有る(CGO CollisionGeometry Optimizer)。手で簡略化する前にこれで粗くする。
--- Havok Convex Hull Utility。メッシュを一つの凸形状に置き換える。頂点数も制限出来る。
--- Havok Convex Decomposition。目ssyを複数の凸形状に置き換える。元の形を維持したまま簡略化。

** 線速度、角速度の制限 [#haa50a15]
剛体が早い速度で動いている場合、壁をすり抜ける問題
移動量が大きいのでブロードフェイズのAABBがすり抜けてしまう

- 速度を考慮したAABBを作成してすり抜け防止する
→衝突判定を取るオブジェクトが多くなる
→制限を強くした方が判定負荷が減る

- デフォルトの制限
-- 線速度=200 m/s
-- 角速度=100 rad/s

** 地形メッシュのマージ方法 [#v23dc3fe]
*** 両極端なマージ方法 [#o610ed06]
- staticジオメトリを一つの剛体に
-- 短いブロードフェイズ
-- 少数の長いミッドフェイズ、ナローフェイズ
- 一つのstatic三角形を一つの剛体に
-- 長いブロードフェイズ
-- 多数の短いミッドフェイズ、ナローフェイズ

*** 中間を選ぶ形になる [#nb907269]
-レイヤー分けしたマージ
地形、木、岩
一つずつを別の剛体として定義すると3つの剛体
-- 注意点
--- ブロードフェイズのAABBがすべて重なる。全エリアがAABBになってしまうので。
--- AABBが元の形状から懸け離れる

- 領域分けしたマージ
-- 地形を領域に分けてマージする。XZ平面で空間を割る形。



* Mizuchi [#y4061962]
* Mizuchiによる超ハイクオリティなキャラクター表現(人肌、衣服など)技術デモ「YURI」について [#k34422d3]
** シェーダー [#c5acb8b0]
*** skinシェーダー [#ydff5e36]
Separable Subsurface Scatteringをベースに実装
テクスチャで強弱をコントロール
-- SSSカラー(表皮)、SSSフォールオフ(真皮)、SSS幅(BlurKernelサイズ)

*** 布シェーダー [#a5baad30]
スペキュラがソフトに入る、広範囲
スペキュラのピークが出る。リムライト的な。

標準的なBRDFでは表現できないので別シェーダーモデルを使用。
- 標準的なBRDFでは表現できないので別シェーダーモデルを使用。
IBLを用いることはできないので、LUTを使用

Clothnessというパラメーターで調整
- Clothnessというパラメーターで調整

*** 髪シェーダー [#sf228eca]
Kajiya-Kayベース
- Kajiya-Kayベース
Specular Shiftsによって2つのハイライト位置を調整
→入り具合の位置の調整

Noiseによって人工的な均一のスペキュラ見た目になるのを避ける
- Noiseによって人工的な均一のスペキュラ見た目になるのを避ける

*** クリアコート [#x3f796b2]
メタルフレークも表現可能
- メタルフレークも表現可能

*** 今後 [#e2e029cb]
- クリアコート対応
- 髪シェーダー
-- Defferd対応
-- 髪の先のエイリアス除去
- ガラスシェーダー
-- Deffered対応
- 眼球シェーダーも?
-- 今はガラスシェーダーを応用しているので。

** YURI Projects [#y15c88c6]
- およそ330,000ポリゴン
- テクスチャ容量300MB。
-- 2kテクスチャ、顔のアルべドだけ4k

4kでも見れるクオリティ

*** 気を付けたいポイント&Tips [#w4d38ec9]
- とにかく観察して人の形状パターンの把握
- モチーフ無しの場合、特定の素材を見すぎない。引っ張られてしまう
- 加齢やアシンメトリ等マイナス表現を恐れない
-- 写真を加工しすぎるとCG風になるのと同じ
-- 毛穴、シワ、シミ、形状の歪み

- 人物設定を掘り下げ、特徴づけに繋げる
-- 設定から要素分解。年齢や趣味、人柄からシワやシミ、血色、目つき等

- 肌は部位ごとに質感が異なる
-- 部位や加齢によってツヤツヤ感、カサカサ感、テカテカ感が変わる
-- 肌に多少青筋を入れるとしっとり感が増す
-- Tゾーン(額から鼻筋)毛穴が大きめでてかりやすい
-- Uゾーン(顎)、かさつきやすくスペキュラが控えめ
-- 頬。毛穴が開く安く黒ずみやすい
-- 目元口元。皮膚が薄くシワが入りやすい。毛穴ではなく角質が支配的。

- mizuchiのレイヤードマテリアルで高解像度感を増す
-- ベースレイヤー。部分ごとのシワやほくろ等。
-- 詳細レイヤー。毛穴や細かな角質。小ジワ。
→ベースレイヤーで突き詰めなくても高解像度感が出せる。

**  QA [#ncf30c1f]
- Q. 髪の流れの方向はテクスチャ?Tangent?
A. Tangent

- Q, 肌の透過やるのか?
A. やる予定。後ろからバックライトが当たった時とか


* 下田 [#rcca372d]
* Unreal Engine 4で高品質なVRコンテンツを制作するために知っておきたい100のテクニック [#ddabf951]
- Vircleデモ
-- 酔い調査にカメラのパスをloggingして表示。後から再生して確認できる。
-- スタビライザーに近い機能。SpringArmがあって、上下左右の揺れ、回転を抑える
-- ロールとピッチをしないようにしてシーンの水平線を保つ。

- Showdownデモ
-- 低速移動
-- 等速直線移動
-- 高いパフォーマンス
--- Palallax Mapping
--- POM

- Bullet Train
-- 基本的に定点で戦う
-- 移動はテレポート
-- テレポートの際にホワイトアウト、ホワイトイン
-- 腕を半透明にして、肌の質感の違いを無くす。指の動きの違いから感じる違和感の軽減
-- パフォーマンス
--- Instanced Stereo Rendering
--- 映り込みのフェイク。足の形をしたテクスチャを逆方向に張り付けてるだけ
--- 複数マテリアルのベイクによる軽量化
-- オブジェクトを掴める範囲の調整。奥行きはかなり余裕をもって

- VR Editor

- Japan VR ハッカソン

- 何から始めればいい?
FirstPersonテンプレートがVRコントローラーに対応済み。Motion Controllerコンポーネント。
手に持たせるのはMotion ControllerコンポーネントにStaticMeshを付けるだけ。

- パフォーマンスが出ない
-- 調べる
--- 「stat UnitGraph」 でボトルネックを調べる
--- 「Profile GPU」でGPUを調べる
-- ライティングとシャドウイングが重いことが多い
-- ポストプロセスも標準状態ではかなりリッチ


* ロブ [#r3fe5513]
* Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 [#r15c8931]
** Epic Gamesの開発スタイル [#k0d72d26]
- アーティスト、デザイナーにもっと力を
-- デザイナーのクリエイティビティを解き放つ
-- プログラマのボトルネック化を回避

- 面白さを早く見つける
-- 迅速なイテレーション
-- "Fail early, fail Often"

** ホワイトボックス [#n21da5f7]
レベルデザインのワークフロー
- 目的
-- 短時間でプレイ可能なプロトタイプを作る
-- イテレーションをしやすくなる
-- 無駄な作業とアセットの作り直しを抑える
-- 見た目ではなく、楽しさに集中する

- 順番
-- ハイレベルコンセプト
-- ブレインストーミング ミーティング
-- ホワイトボックス
→ 箱ポリや板メッシュでレイアウトを作る
-- メッシング
→ 最終段階に近いメッシュに置き換え、基本的なマテリアルを適用
-- スクリプティングパス(ゲームのロジックとか)
-- ライティング
→ ライティングとマテリアルの改善、ポストプロセスのエフェクトを入れる
-- ファイナルポリッシュ


- ホワイトボックス
-- 大まかにレイアウトを作る
--- レベルの流れを決める。
--- BSPやシンプルなメッシュ
-- ゲームプレイの骨組みを作る
--- ゲームコードのシミュレーション。橋が崩れるなど
-- 短時間で。数日〜数週間

- BSPブラシでホワイトボックスを作った後、そのBSPをブロッキングボリュームに変換したりする。
-- プロトタイプと同じコリジョンを使える

- なぜホワイトボックス?
-- 変更が簡単
--- コアな部分が出来上がるまでアートの実装はしない
-- 時間の無駄を抑える
-- チーム内のコミュニケーション・ロードマップ
--- 後工程の人が、何が必要なのかが分かりやすくなる
-- フィードバックや新しいアイディアを誘発
-- ホワイトボックスに向いていないゲームもある。
--- Fortnite
ルールに基づいてレベルがプロシージャルに作成される。
--- 格闘技ゲーム
固定しているライトやエリア



** キットバッシング [#v8260a5a]
- デザインドキュメントはうまく行かなかった
-- 多すぎるディティール?誰も読まない。
-- 少なすぎるディティール?曖昧さ、先入観
-- 読み手への依存
-- Noと言いがちな生活の人々
-- デザイナーがグルメ評論家になってしまった


- キットバッシング
-- 映画の業界。プラモデルのキット。

- 従来
-- 頭の中でデザイン
-- 書類か
-- 終わりのない議論
-- チームによるぷろとたいぴんg
-- デザイン通り出来上がるように祈る
-- 背咲くようにレビュー

- 新しい
-- 頭の中でデザイン
-- デザイナーが自分でプロトタイプを作る
-- 製作用にレビュー
-- 実際にテストしたうえで書類か


- アンリアルのキットバッシュ
-- メッシュのパーツ+ブループリント
-- 見た目は重要ではない。
-- 蜘蛛形の敵を作る。足を破壊していって全部破壊すれば倒せる
--- 適当な円形とかのメッシュを組み合わせてそれっぽい形を作る。
-- 遊んでみて面白ければ、実際に作っていく

- 使用例
-- クリーチャー
-- 武器
-- ゲームプレイシステム
-- 特別なゲームシナリオ

- ベストプラクティス
-- 一人のデザイナーによって製作されなければならない
-- 迅速に実装されなければならない
-- 既存のアセットを使わなければならない
-- 素早いイテレーションを行わなければならない
-- フィードバック(ゲーム中の反応表現)が重要。音やパーティクル等。雰囲気を最終に合わせる。
-- アイディアを捨てるのをためらうべきではない

- やってみよう
-- もっとリスキーなアイディアを考え、やってみよう!
-- Free Friday


** 新機能 [#pc60fc16]

- シーケンサー
-

    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS