April 18, 2015
Unreal Fes 2015 Osaka
UE4の新機能のご紹介
ライブコーディングもやるよ!
C++だけど何か?
シモダジュンヤ Jun Shimoda
Developer Support Manager, Epic Games Japan
April 18, 2015
Unreal Fes 2015 Osaka
自己紹介
シモダジュンヤ(@junyash)
• アンリアル・エンジンの利用経
験をきっかけとして2010年2月
からエピック・ゲームズ・ジャ
パンでサポート・マネージャー
としてアンリアル・エンジンの
普及・サポート活動を行ってい
ます。
• PC-1251とMZ-2000でBASICを
覚えて、Z80, 8086, 6502,
65c816くらいまではアセンブラ、
MIPS, ARM, PowerPC世代は主
にC++。
• DirectXとOpenGLは素で書いて
いたけど、最近UEがあるから書
いてない。
• C#はにわか…
Terrariumの頃から嗜む程度
April 18, 2015
Unreal Fes 2015 Osaka
本日のメニュー!
• UE4の最新ニュースと機能のご紹介
– GDC 2015より
• IF YOU LOVE SOMETHING, SET IT FREE
• 「Open World Demo Collection」等解説
• ライブコーディング
– C++のコードコーディング
April 18, 2015
Unreal Fes 2015 Osaka
April 18, 2015
Unreal Fes 2015 Osaka
IF YOU LOVE SOMETHING,
•SET IT FREE
– UE4は無料で利用できるようになりました!
– 4半期で3,000ドルを越える売上に対して5%のロイヤリティ
で開発を支援を。ぜひビッグヒットを!!
• 映像作品やアーケードゲーム等はロイヤリティはかかりません
April 18, 2015
Unreal Fes 2015 Osaka
Tim Sweeney
Epic Games, Founder 創業者 & CEO
振り返ってみると
僕らがプログラミングを始めた頃は
雑誌に沢山のサンプルプログラムが載っていて
それを打ち込んで動作を理解できたんだよ
ここ20年ほどゲーム業界の暗黒時代というか
沢山のゲームがリリースはされてきたけども
ソースの公開は限定的で、そこから勉強すると
いうことができなくなっていたんだよね
この現状を打開するためには
UE4のソースコードを公開して勉強できるよう
にするしかないと思ったんだ
GitHub OctoTales / Epic Games
https://www.youtube.com/watch?v=L8d0G7Duz9A
April 18, 2015
Unreal Fes 2015 Osaka
KITEデモで使われている新機能
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:目標
• Kiteデモの目標
–広大な自然表現
–キャラクター表現
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
• こんな感じの生物群系(Biome)
スコットランド スカイ島、岩と植生のコントラスト
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
• フォトリアリスティックを目指しリアルキャプチャを選択
– 実地で実物から
– 取り込む!
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
• ロケ地探し
– Google Earth
– Panoramio
– 500 Pixels
– Flickr
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
• アセットを細分化
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
• 要素を分類
地面
地面のカバー
大きな岩
地形から剥きだした岩
小さな岩
植生
小道
崖面
中くらいの岩
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
• 撮影地決定
– ニュージーランド2名
• 日中の12時間
• 開花した植物系
• 晴れ
– イギリス2名
• 天候は良くなかった
• でも実際のUK素材を取り込めた
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
• 取り込むカテゴリ
参照画像
Plants, Bushes, Flowers, Water, Distant Objects, Landscapes
実物取り込み
3D mesh 2D ground tile Tree bark
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
• 参照画像
– クロマキー用背景
– カラーチェッカー
– 円偏光フィルター
– 三脚
– 深い被写界深度
– ブラケット撮影!
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
• 実物取り込み
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
• 機材
– キャノン 5D MKIII x 3
– シグマ 8mm f/3.5
– キャノン 24-70mm f/2.8L
– カラーチェッカー
– Roundshot VR Drive
– 一脚
– 伸縮ポール
– リモートライブビュー
– グレーと金属球リグ
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
• 撮影プロセス
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
• 撮影プロセス
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
• 撮影プロセス
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:広大な自然表現
• 撮影プロセス
April 18, 2015
Unreal Fes 2015 Osaka
April 18, 2015
Unreal Fes 2015 Osaka
Final Results
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:ライティング
• 完全に動的なライティング
– 広大なアウトドア
– 日中の時間変化
– 即座に変更可能(ビルド時間なし)
– 広い視野範囲
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:ライティング
• 3つのライティング要素
太陽からの間接光
(グローバルイルミネーション)
太陽からの直接光
スカイライト
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:ライティング
• 太陽からの直接光
– カメラ付近のカスケーデッドシャドウマップ(CSM)
• フォーリッジのアニメーションに対応
• トライアングルからの大きなコスト
CSM
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:ライティング
• 太陽からの直接光
– レイトレースディスタンスフィールドシャドウ(RTDF)
• 広い視野範囲には3倍効果的
• 全ての距離でディテイルを保てる
RTDF
Shadows
CSM
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:ライティング
• 太陽からの間接光
スカイライトのみ ハイトフィールドGI
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:ライティング
• スカイライト
– HDR Cubemapから事前計算で異なるラフネスレベルに対応
(GIやイメージベースドライティングができる)
ラフネス 0.0 1.0
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:ライティング
• スカイライト
– シャドウイング
• Screen Space Ambient Occlusion (SSAO) を凸凹や近距離に
• Distance Field Ambient Occlusion (DFAO) を中距離に
SSAOのみ SSAO+DFAO
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:ライティング
• スカイライト
– Distance Field Ambient Occlusion
• メッシュディスタンスフィールドからコーントレースして空の
可視判定を行う
• ワールドスペースの遮蔽計算(スクリーンスペース問題なし)
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:シェーディングとポスト
• 両面シェーディングモデル
– 薄い面の透過光モデル
– 葉っぱと凧の素材で利用
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:シェーディングとポスト
• サブサーフェーススキャッタリング
– スクリーンスペース
– ディフュージョンプロファイルで制御(肌専用のものではない)
SSSなし SSS
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ:シェーディングとポスト
• モーションブラー
– スキャッターアズギャザー技法
– フル解像度
– モーション幅の制限なし
– スムースなエッジ
– 未だ実装中で公開はまだ先の予定
April 18, 2015
Unreal Fes 2015 Osaka被写界深度(DOF)
• スキャッターアズギャザー技法
– 近景と遠景の統合
– 円形のボケ
• フォーカスのインアウトのスムーズな変化
– フルと半解像度のサンプリング
– ソフトフォーカスのアーチファクトなし
• 現実のカメラパラメータで制御
– レンズ口径(Aperture)
– 焦点距離(Focal length)
– 集束距離(Focal distance)
April 18, 2015
Unreal Fes 2015 Osaka
ランドスケープとフォーリッジ
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: ランドスケープ
1m解像度で10x10マイル(16x16キロメートル)
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: ランドスケープ
ストリーミングで連続的なLODシステム
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: ランドスケープ
ウェイトマップによるテクスチャ参照
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: ランドスケープ
結果:ライティングされたテクスチャ付きマテリアル
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: フォーリッジ
• 樹木
• 樹木、岩・・・
• コリジョンあり
• 手動 / プロシージャル配置
• 草
• 草、花、小石・・・
• コリジョンなし
• マテリアルに応じた配置
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: フォーリッジ
• 階層的にインスタンシングされたスタティックメッシュ
– 100万超インスタンスの描画
– メッシュをBSPライクなツリーで管理
(Binary Space Partitioning)
– ピクセル単位でLOD変化
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: フォーリッジ
LOD polys: 115,000 13,000 2,500 32
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: フォーリッジ
• LODでピクセル深度オフセットを利用し、シャドウ品質向上
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: フォーリッジ樹木
April 18, 2015
Unreal Fes 2015 Osaka
地形とマテリアルによる草配置
April 18, 2015
Unreal Fes 2015 Osaka
動物
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: 動物
• とても素晴らしい表現ができた、でも動きに乏しい・・・
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: 動物群
• 我々のダイナミックシステムが広大な世界にどのくらい適
合できるかテストしてみた
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: AI
• 群れの中心がドローンから離れるためのパスを探索
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: AI
• 群衆シミュレーションで樹木と別の鹿を避ける
• 4足歩行での挑戦
– 点上での転回
– 加速までの時間
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: AI
• ナビゲーションメッシュ
– 樹木と崖を避ける
– 新たな効果的な移動
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: AI
• ナビゲーションメッシュ
– 事前計算するには大きな世界
• 5GBもメモリを使う!
– タイルを動的に必要に応じて生成
• 複数のコアに作業を分配
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: AI
• ナビゲーションメッシュ
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: AI
• アニメーション
– 合成されたルートモーション
• AIがゴールを設定
• ステートマシンが
ベストなアニメーションを探す
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: AI
• アニメーション
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: AI
• アニメーション
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: AI
• スポーン
– ワールドをセルに分割
– ベストな場所をルールにしたがって策定
April 18, 2015
Unreal Fes 2015 Osaka
シネマチックなキャラクター
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: キャラクター
• 序章
– ストーリーの中で技術を紹介
– キャラクターの旅
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: キャラクター
• イメージボード
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: キャラクター
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: キャラクター
April 18, 2015
Unreal Fes 2015 Osaka
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: キャラクター
• キャラクター向け技術
– 映画指向のフェイシャルリグ
• フェイスリグと
500以上のブレンドシェイプ
– 制御可能なボディシェイプ
• ポーズに適したメッシュの見栄えを
アーティスティックに制御できる
– スキンシェーダーの向上
• カスタムSSSディフューズプロファイル
April 18, 2015
Unreal Fes 2015 Osaka
Kiteデモ: ストーリーテーリング
Unreal Engine 4を使った
あなたのストーリーをぜひ見せてください
(映像利用はロイヤリティーがかかりません)
April 18, 2015
Unreal Fes 2015 Osaka
GDC報告は以上
April 18, 2015
Unreal Fes 2015 Osaka
C++ライブコーディング
• はじめましょう!
– C++版Flyingゲームテンプレート
April 18, 2015
Unreal Fes 2015 Osaka
C++ライブコーディング
• UFOの挙動を変えてみよう!
– ワールドアウトライナから「TP_FlyingPawn」を見つけて「開く ゲーム名
Pawn.h」をクリックでVisualStudioが起動します
– ゲーム名Pawn.cppに
UFOの挙動が実装されています
– FlyingのUFOの場合は
Aゲーム名Pawn::Tick(float DeltaSeconds)
があるので主にそこを変えればOK
April 18, 2015
Unreal Fes 2015 Osaka
C++ライブコーディング
• UFOの挙動を変えてみよう!
– 例えば前進速度を10倍にしてみる
void Aゲーム名Pawn::Tick(float DeltaSeconds)
{
const FVector LocalMove = FVector(CurrentForwardSpeed * 10.f *
DeltaSeconds, 0.f, 0.f);
:
– 変更して保存したらエディタから
「コンパイル」してみよう
(VisualStudio側でビルドでもOK)
– コンパイルができたら「プレイ」
April 18, 2015
Unreal Fes 2015 Osaka
C++ライブコーディング
• 独自のブループリントのノードを作ってみよう!
– ゲーム名Pawn.h
UFUNCTION(BlueprintCallable, Category = Flying)
void Drunk(float HowMuch);
– ゲーム名Pawn.cpp
void Aゲーム名Pawn::Drunk(float HowMuch)
{
CurrentYawSpeed = HowMuch;
}
– コンパイル!
April 18, 2015
Unreal Fes 2015 Osaka
C++ライブコーディング
• 独自のブループリントのノードを使ってみよう!
– コンパイルが終わればすぐにエディタ上で使えるようになります
– レベルブループリントから使ってみよう!
• Get Player Pawn
• ゲーム名Pawnへキャスト
• Drunk呼び出し
• あとはイベントBegin PlayやTick等を繋げるだけ!
April 18, 2015
Unreal Fes 2015 Osaka
C++ライブコーディング
• 敵を作ってみよう!
– 「ファイル」メニューから「プロジェクトにコードを追加」
– 親クラスを「Pawn」にして「MyEnemy」等の名前でクラス
を作成
April 18, 2015
Unreal Fes 2015 Osaka
C++ライブコーディング
• ソリューションに自動的に登録されコンパイルされます
April 18, 2015
Unreal Fes 2015 Osaka
C++ライブコーディング
• コンパイルが終わればコンテンツブラウザのC++クラス内
のゲーム名フォルダにMyEnemyが現れるのでレベル上にド
ラッグ&ドロップできます
– でもメッシュがないので
詳細タブの
コンポーネントを追加
から球を
April 18, 2015
Unreal Fes 2015 Osaka
C++ライブコーディング
• 敵もTickがあるので
– MyEnemun.cpp
void AMyEnemy::Tick( float DeltaTime )
{
const FVector LocalMove = FVector(500.f * DeltaTime, 0.f, 0.f);
AddActorLocalOffset(LocalMove, true);
Super::Tick(DeltaTime);
}
– あとはファイルを保存して「コンパイル」して「プレイ」!
– ゲームをプレイしながら「Shift+F1」や「F8」で抜け、コードを書き換え
て「コンパイル」でリアルタイムの反映も可能!
(500.fを2000.fとか変更して試してみよう!)
April 18, 2015
Unreal Fes 2015 Osaka
他にもいろいろ
• 50分に詰め込むには・・・ちょっと時間不足ですみません
– もっと内容とライブコーディング凝りたかったんですが…
• ホワイエにドスパラさん(サードウェーブデジノスさん)の
最新マシン上で「Showdown」デモをOculusで体験できます
– それと、VR関係のお話もしたかったんですが…
• 4/24(金) OGCに出展します、夜はとげとげさんの「UE4の歩き
方」出版パーティーもあります
• 4/25(土),26(日) 東京オッキューランド@ニコニコ超会議!
• 4/27(月) おきゅっていいとも!(桜花一門さんのニコ生配信)
でVR関連のネタをお見せできると思います。
April 18, 2015
Unreal Fes 2015 Osaka
Q&A
ありがとうございました
ご質問がある方?
ぜひアンケートにもご協力ください、次回の励みになります

UE4の新機能のご紹介、ライブコーディングもやるよ!C++だけど何か?

  • 1.
    April 18, 2015 UnrealFes 2015 Osaka UE4の新機能のご紹介 ライブコーディングもやるよ! C++だけど何か? シモダジュンヤ Jun Shimoda Developer Support Manager, Epic Games Japan
  • 2.
    April 18, 2015 UnrealFes 2015 Osaka 自己紹介 シモダジュンヤ(@junyash) • アンリアル・エンジンの利用経 験をきっかけとして2010年2月 からエピック・ゲームズ・ジャ パンでサポート・マネージャー としてアンリアル・エンジンの 普及・サポート活動を行ってい ます。 • PC-1251とMZ-2000でBASICを 覚えて、Z80, 8086, 6502, 65c816くらいまではアセンブラ、 MIPS, ARM, PowerPC世代は主 にC++。 • DirectXとOpenGLは素で書いて いたけど、最近UEがあるから書 いてない。 • C#はにわか… Terrariumの頃から嗜む程度
  • 3.
    April 18, 2015 UnrealFes 2015 Osaka 本日のメニュー! • UE4の最新ニュースと機能のご紹介 – GDC 2015より • IF YOU LOVE SOMETHING, SET IT FREE • 「Open World Demo Collection」等解説 • ライブコーディング – C++のコードコーディング
  • 4.
    April 18, 2015 UnrealFes 2015 Osaka
  • 5.
    April 18, 2015 UnrealFes 2015 Osaka IF YOU LOVE SOMETHING, •SET IT FREE – UE4は無料で利用できるようになりました! – 4半期で3,000ドルを越える売上に対して5%のロイヤリティ で開発を支援を。ぜひビッグヒットを!! • 映像作品やアーケードゲーム等はロイヤリティはかかりません
  • 6.
    April 18, 2015 UnrealFes 2015 Osaka Tim Sweeney Epic Games, Founder 創業者 & CEO 振り返ってみると 僕らがプログラミングを始めた頃は 雑誌に沢山のサンプルプログラムが載っていて それを打ち込んで動作を理解できたんだよ ここ20年ほどゲーム業界の暗黒時代というか 沢山のゲームがリリースはされてきたけども ソースの公開は限定的で、そこから勉強すると いうことができなくなっていたんだよね この現状を打開するためには UE4のソースコードを公開して勉強できるよう にするしかないと思ったんだ GitHub OctoTales / Epic Games https://www.youtube.com/watch?v=L8d0G7Duz9A
  • 7.
    April 18, 2015 UnrealFes 2015 Osaka KITEデモで使われている新機能
  • 8.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:目標 • Kiteデモの目標 –広大な自然表現 –キャラクター表現
  • 9.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現 • こんな感じの生物群系(Biome) スコットランド スカイ島、岩と植生のコントラスト
  • 10.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現 • フォトリアリスティックを目指しリアルキャプチャを選択 – 実地で実物から – 取り込む!
  • 11.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現 • ロケ地探し – Google Earth – Panoramio – 500 Pixels – Flickr
  • 12.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現 • アセットを細分化
  • 13.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現 • 要素を分類 地面 地面のカバー 大きな岩 地形から剥きだした岩 小さな岩 植生 小道 崖面 中くらいの岩
  • 14.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現 • 撮影地決定 – ニュージーランド2名 • 日中の12時間 • 開花した植物系 • 晴れ – イギリス2名 • 天候は良くなかった • でも実際のUK素材を取り込めた
  • 15.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現 • 取り込むカテゴリ 参照画像 Plants, Bushes, Flowers, Water, Distant Objects, Landscapes 実物取り込み 3D mesh 2D ground tile Tree bark
  • 16.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現 • 参照画像 – クロマキー用背景 – カラーチェッカー – 円偏光フィルター – 三脚 – 深い被写界深度 – ブラケット撮影!
  • 17.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現
  • 18.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現 • 実物取り込み
  • 19.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現 • 機材 – キャノン 5D MKIII x 3 – シグマ 8mm f/3.5 – キャノン 24-70mm f/2.8L – カラーチェッカー – Roundshot VR Drive – 一脚 – 伸縮ポール – リモートライブビュー – グレーと金属球リグ
  • 20.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現 • 撮影プロセス
  • 21.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現 • 撮影プロセス
  • 22.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現 • 撮影プロセス
  • 23.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:広大な自然表現 • 撮影プロセス
  • 24.
    April 18, 2015 UnrealFes 2015 Osaka
  • 25.
    April 18, 2015 UnrealFes 2015 Osaka Final Results
  • 26.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:ライティング • 完全に動的なライティング – 広大なアウトドア – 日中の時間変化 – 即座に変更可能(ビルド時間なし) – 広い視野範囲
  • 27.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:ライティング • 3つのライティング要素 太陽からの間接光 (グローバルイルミネーション) 太陽からの直接光 スカイライト
  • 28.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:ライティング • 太陽からの直接光 – カメラ付近のカスケーデッドシャドウマップ(CSM) • フォーリッジのアニメーションに対応 • トライアングルからの大きなコスト CSM
  • 29.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:ライティング • 太陽からの直接光 – レイトレースディスタンスフィールドシャドウ(RTDF) • 広い視野範囲には3倍効果的 • 全ての距離でディテイルを保てる RTDF Shadows CSM
  • 30.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:ライティング • 太陽からの間接光 スカイライトのみ ハイトフィールドGI
  • 31.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:ライティング • スカイライト – HDR Cubemapから事前計算で異なるラフネスレベルに対応 (GIやイメージベースドライティングができる) ラフネス 0.0 1.0
  • 32.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:ライティング • スカイライト – シャドウイング • Screen Space Ambient Occlusion (SSAO) を凸凹や近距離に • Distance Field Ambient Occlusion (DFAO) を中距離に SSAOのみ SSAO+DFAO
  • 33.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:ライティング • スカイライト – Distance Field Ambient Occlusion • メッシュディスタンスフィールドからコーントレースして空の 可視判定を行う • ワールドスペースの遮蔽計算(スクリーンスペース問題なし)
  • 34.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:シェーディングとポスト • 両面シェーディングモデル – 薄い面の透過光モデル – 葉っぱと凧の素材で利用
  • 35.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:シェーディングとポスト • サブサーフェーススキャッタリング – スクリーンスペース – ディフュージョンプロファイルで制御(肌専用のものではない) SSSなし SSS
  • 36.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ:シェーディングとポスト • モーションブラー – スキャッターアズギャザー技法 – フル解像度 – モーション幅の制限なし – スムースなエッジ – 未だ実装中で公開はまだ先の予定
  • 37.
    April 18, 2015 UnrealFes 2015 Osaka被写界深度(DOF) • スキャッターアズギャザー技法 – 近景と遠景の統合 – 円形のボケ • フォーカスのインアウトのスムーズな変化 – フルと半解像度のサンプリング – ソフトフォーカスのアーチファクトなし • 現実のカメラパラメータで制御 – レンズ口径(Aperture) – 焦点距離(Focal length) – 集束距離(Focal distance)
  • 38.
    April 18, 2015 UnrealFes 2015 Osaka ランドスケープとフォーリッジ
  • 39.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: ランドスケープ 1m解像度で10x10マイル(16x16キロメートル)
  • 40.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: ランドスケープ ストリーミングで連続的なLODシステム
  • 41.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: ランドスケープ ウェイトマップによるテクスチャ参照
  • 42.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: ランドスケープ 結果:ライティングされたテクスチャ付きマテリアル
  • 43.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: フォーリッジ • 樹木 • 樹木、岩・・・ • コリジョンあり • 手動 / プロシージャル配置 • 草 • 草、花、小石・・・ • コリジョンなし • マテリアルに応じた配置
  • 44.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: フォーリッジ • 階層的にインスタンシングされたスタティックメッシュ – 100万超インスタンスの描画 – メッシュをBSPライクなツリーで管理 (Binary Space Partitioning) – ピクセル単位でLOD変化
  • 45.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: フォーリッジ LOD polys: 115,000 13,000 2,500 32
  • 46.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: フォーリッジ • LODでピクセル深度オフセットを利用し、シャドウ品質向上
  • 47.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: フォーリッジ樹木
  • 48.
    April 18, 2015 UnrealFes 2015 Osaka 地形とマテリアルによる草配置
  • 49.
    April 18, 2015 UnrealFes 2015 Osaka 動物
  • 50.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: 動物 • とても素晴らしい表現ができた、でも動きに乏しい・・・
  • 51.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: 動物群 • 我々のダイナミックシステムが広大な世界にどのくらい適 合できるかテストしてみた
  • 52.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: AI • 群れの中心がドローンから離れるためのパスを探索
  • 53.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: AI • 群衆シミュレーションで樹木と別の鹿を避ける • 4足歩行での挑戦 – 点上での転回 – 加速までの時間
  • 54.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: AI • ナビゲーションメッシュ – 樹木と崖を避ける – 新たな効果的な移動
  • 55.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: AI • ナビゲーションメッシュ – 事前計算するには大きな世界 • 5GBもメモリを使う! – タイルを動的に必要に応じて生成 • 複数のコアに作業を分配
  • 56.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: AI • ナビゲーションメッシュ
  • 57.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: AI • アニメーション – 合成されたルートモーション • AIがゴールを設定 • ステートマシンが ベストなアニメーションを探す
  • 58.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: AI • アニメーション
  • 59.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: AI • アニメーション
  • 60.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: AI • スポーン – ワールドをセルに分割 – ベストな場所をルールにしたがって策定
  • 61.
    April 18, 2015 UnrealFes 2015 Osaka シネマチックなキャラクター
  • 62.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: キャラクター • 序章 – ストーリーの中で技術を紹介 – キャラクターの旅
  • 63.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: キャラクター • イメージボード
  • 64.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: キャラクター
  • 65.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: キャラクター
  • 66.
    April 18, 2015 UnrealFes 2015 Osaka
  • 67.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: キャラクター • キャラクター向け技術 – 映画指向のフェイシャルリグ • フェイスリグと 500以上のブレンドシェイプ – 制御可能なボディシェイプ • ポーズに適したメッシュの見栄えを アーティスティックに制御できる – スキンシェーダーの向上 • カスタムSSSディフューズプロファイル
  • 69.
    April 18, 2015 UnrealFes 2015 Osaka Kiteデモ: ストーリーテーリング Unreal Engine 4を使った あなたのストーリーをぜひ見せてください (映像利用はロイヤリティーがかかりません)
  • 70.
    April 18, 2015 UnrealFes 2015 Osaka GDC報告は以上
  • 71.
    April 18, 2015 UnrealFes 2015 Osaka C++ライブコーディング • はじめましょう! – C++版Flyingゲームテンプレート
  • 72.
    April 18, 2015 UnrealFes 2015 Osaka C++ライブコーディング • UFOの挙動を変えてみよう! – ワールドアウトライナから「TP_FlyingPawn」を見つけて「開く ゲーム名 Pawn.h」をクリックでVisualStudioが起動します – ゲーム名Pawn.cppに UFOの挙動が実装されています – FlyingのUFOの場合は Aゲーム名Pawn::Tick(float DeltaSeconds) があるので主にそこを変えればOK
  • 73.
    April 18, 2015 UnrealFes 2015 Osaka C++ライブコーディング • UFOの挙動を変えてみよう! – 例えば前進速度を10倍にしてみる void Aゲーム名Pawn::Tick(float DeltaSeconds) { const FVector LocalMove = FVector(CurrentForwardSpeed * 10.f * DeltaSeconds, 0.f, 0.f); : – 変更して保存したらエディタから 「コンパイル」してみよう (VisualStudio側でビルドでもOK) – コンパイルができたら「プレイ」
  • 74.
    April 18, 2015 UnrealFes 2015 Osaka C++ライブコーディング • 独自のブループリントのノードを作ってみよう! – ゲーム名Pawn.h UFUNCTION(BlueprintCallable, Category = Flying) void Drunk(float HowMuch); – ゲーム名Pawn.cpp void Aゲーム名Pawn::Drunk(float HowMuch) { CurrentYawSpeed = HowMuch; } – コンパイル!
  • 75.
    April 18, 2015 UnrealFes 2015 Osaka C++ライブコーディング • 独自のブループリントのノードを使ってみよう! – コンパイルが終わればすぐにエディタ上で使えるようになります – レベルブループリントから使ってみよう! • Get Player Pawn • ゲーム名Pawnへキャスト • Drunk呼び出し • あとはイベントBegin PlayやTick等を繋げるだけ!
  • 76.
    April 18, 2015 UnrealFes 2015 Osaka C++ライブコーディング • 敵を作ってみよう! – 「ファイル」メニューから「プロジェクトにコードを追加」 – 親クラスを「Pawn」にして「MyEnemy」等の名前でクラス を作成
  • 77.
    April 18, 2015 UnrealFes 2015 Osaka C++ライブコーディング • ソリューションに自動的に登録されコンパイルされます
  • 78.
    April 18, 2015 UnrealFes 2015 Osaka C++ライブコーディング • コンパイルが終わればコンテンツブラウザのC++クラス内 のゲーム名フォルダにMyEnemyが現れるのでレベル上にド ラッグ&ドロップできます – でもメッシュがないので 詳細タブの コンポーネントを追加 から球を
  • 79.
    April 18, 2015 UnrealFes 2015 Osaka C++ライブコーディング • 敵もTickがあるので – MyEnemun.cpp void AMyEnemy::Tick( float DeltaTime ) { const FVector LocalMove = FVector(500.f * DeltaTime, 0.f, 0.f); AddActorLocalOffset(LocalMove, true); Super::Tick(DeltaTime); } – あとはファイルを保存して「コンパイル」して「プレイ」! – ゲームをプレイしながら「Shift+F1」や「F8」で抜け、コードを書き換え て「コンパイル」でリアルタイムの反映も可能! (500.fを2000.fとか変更して試してみよう!)
  • 80.
    April 18, 2015 UnrealFes 2015 Osaka 他にもいろいろ • 50分に詰め込むには・・・ちょっと時間不足ですみません – もっと内容とライブコーディング凝りたかったんですが… • ホワイエにドスパラさん(サードウェーブデジノスさん)の 最新マシン上で「Showdown」デモをOculusで体験できます – それと、VR関係のお話もしたかったんですが… • 4/24(金) OGCに出展します、夜はとげとげさんの「UE4の歩き 方」出版パーティーもあります • 4/25(土),26(日) 東京オッキューランド@ニコニコ超会議! • 4/27(月) おきゅっていいとも!(桜花一門さんのニコ生配信) でVR関連のネタをお見せできると思います。
  • 81.
    April 18, 2015 UnrealFes 2015 Osaka Q&A ありがとうございました ご質問がある方? ぜひアンケートにもご協力ください、次回の励みになります