Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
グランブルーファンタジー『Project Re:LINK』におけるリアルタイム雲表現の研...
Search
Cygames
February 23, 2017
Technology
1
14k
グランブルーファンタジー『Project Re:LINK』におけるリアルタイム雲表現の研究と技術紹介!
2017/02/18 GAME CREATORS CONFERENCE'17
Cygames
February 23, 2017
Tweet
Share
More Decks by Cygames
See All by Cygames
最高のアートワークを発信する『Cygames展 Artworks』企画制作事例
cygames
0
44
社内にバーチャルスタッフ!?「スイちゃん」のキャラクターデザインと施策の広げ方の秘訣
cygames
1
120
全高3m超のバハムート像がスマホを通して躍動する! ~『Cygames展 Artworks』ARコンテンツの開発プロセスと実装~
cygames
0
31
最高の資料を目指すために!社内フリーイラスト制作チームの取り組みについて
cygames
1
130
「生きているモーション」を作り出すCygamesのモーションキャプチャー
cygames
0
86
『Cygames展 Artworks』におけるShadowverseデジタルサイネージ制作事例
cygames
0
38
『GRANBLUE FANTASY: Relink』 原作の世界観に没入するステージの絵作り
cygames
0
770
『GRANBLUE FANTASY: Relink』イラストを再現する為のキャラクターモデル制作事例
cygames
0
140
『GRANBLUE FANTASY: Relink』キャラクターの魅力を支えるリグ制作事例
cygames
0
85
Other Decks in Technology
See All in Technology
個人開発から公式機能へ: PlaywrightとRailsをつなげた3年の軌跡
yusukeiwaki
11
2.8k
株式会社EventHub・エンジニア採用資料
eventhub
0
4.2k
データの品質が低いと何が困るのか
kzykmyzw
6
1.1k
人はなぜISUCONに夢中になるのか
kakehashi
PRO
1
220
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
890
[2025-02-07]生成AIで変える問い合わせの未来 〜チームグローバル化の香りを添えて〜
tosite
1
350
Fintech SREの挑戦 PCI DSS対応をスマートにこなすインフラ戦略/Fintech SRE’s Challenge: Smart Infrastructure Strategies for PCI DSS Compliance
maaaato
0
460
Moved to https://speakerdeck.com/toshihue/presales-engineer-career-bridging-tech-biz-ja
toshihue
2
600
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
6
57k
インフラをつくるとはどういうことなのか、 あるいはPlatform Engineeringについて
nwiizo
5
2.3k
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
1
210
オブザーバビリティの観点でみるAWS / AWS from observability perspective
ymotongpoo
8
1.2k
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
53
13k
The Language of Interfaces
destraynor
156
24k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
8
340
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
How GitHub (no longer) Works
holman
313
140k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Transcript
None
None
© Cygames, Inc. © Cygames, Inc.
© Cygames, Inc. © Cygames, Inc.
© Cygames, Inc. ⼤大阪Cygames • 設⽴立立⽇日 • 2015年年4⽉月1⽇日 • 所在地
• グランフロント⼤大阪 • 事業内容 • ハイエンドゲームの開発
© Cygames, Inc. グランブルーファンタジー PROJECT Re:LINK 対応機種 : PS4 発売⽇日
: 2018年年 予定
© Cygames, Inc. © Cygames, Inc. グランブルーファンタジーの空と雲の表現について
© Cygames, Inc. 空と雲のコンセプト どこまでも広がる壮⼤大且つ繊細で 気持ちの良良い空の世界を表現する。
© Cygames, Inc. 空の世界
© Cygames, Inc. 空と雲の形、デザイン ファンタジーらしく不不思議な形から 誰もが理理解できる⼊入道雲などを組み合わせる。
© Cygames, Inc. 空と雲の形、デザイン
© Cygames, Inc. 空と雲の形、デザイン
© Cygames, Inc. 空と雲の形、デザイン
© Cygames, Inc. 空と雲の形、デザイン
© Cygames, Inc. 空と雲の形、デザイン
© Cygames, Inc. 光や影の表現 フォトリアルな空気遠近法を基本としつつ ⼿手書きイラストらしい表現も加える。 影の中にもしっかりと⾊色表現を⼊入れる。
© Cygames, Inc. 光や影の表現
© Cygames, Inc. 光や影の表現
© Cygames, Inc. 他の環境物との関係 空と雲だけの処理理で考えるのではなく、 同じ環境にある物として⾒見見えるようにする。
© Cygames, Inc. 他の環境物との関係
© Cygames, Inc. 他の環境物との関係
© Cygames, Inc. 他の環境物との関係
© Cygames, Inc. PROJECT Re:LINKでは こ の 空の世界を 3Dで 描
く
© Cygames, Inc. © Cygames, Inc. 『Project Re:LINK』における雲表現の研究紹介
None
© Cygames, Inc. 雲表現
© Cygames, Inc. 雲表現 眼下に どこまでも広がる 雲表現が必要
© Cygames, Inc. どこまでも広がる雲 無限平⾯面下に 雲を充填して 表現 z y x
雲表現
© Cygames, Inc. z y x 平⾯面雲 Plane Cloud 雲表現
© Cygames, Inc. © Cygames, Inc. 平⾯面雲 スクリーンショット
© Cygames, Inc. © Cygames, Inc.
© Cygames, Inc. © Cygames, Inc.
© Cygames, Inc. © Cygames, Inc.
© Cygames, Inc. 平⾯面雲 1. そもそも雲とは? 2. 平⾯面雲を形作る⽅方法 3. 光学法則
4. レイマーチ 平⾯面雲の実装に必要な知識識
© Cygames, Inc. © Cygames, Inc. 1.そもそも雲とは? 平⾯面雲の実装に必要な知識識
© Cygames, Inc. そもそも雲とは 液体もしくは固体です。 気体ではありません。 Wikipedia⽈曰く… 雲は、 ⼤大気中にかたまって浮かぶ⽔水滴または氷の粒粒(氷晶)のことを ⾔言う。
© Cygames, Inc. そもそも雲とは わた雲 ⾼高度度0.5~∼2kmに浮かぶ ⽔水滴。
© Cygames, Inc. そもそも雲とは ⾶飛⾏行行機雲 排気ガス中の⽔水蒸気が ⽔水滴や氷晶に なったもの。 ※単なる排気ガスではない!
© Cygames, Inc. そもそも雲とは – まとめ 雲は ⽔水滴 もしくは 氷晶
の集まり。
© Cygames, Inc. © Cygames, Inc. 2.平⾯面雲を形作る⽅方法 平⾯面雲の実装に必要な知識識
© Cygames, Inc. 平⾯面雲を形作る⽅方法 • 雲を形作る⽅方法はいくつか存在します。 • 今回は Volumetric Noise
Textureを⽤用いた ⼿手続き型(プロシージャル)雲 ⽣生成法を 研究しました。
© Cygames, Inc. 平⾯面雲を形作る⽅方法 研究にあたって、Guerrilla Games社の The Real-‐‑‒time Volumetric Cloudscapes
of Horizon Zero Dawn という資料料を参考にしました。 http://www.slideshare.net/guerrillagames/the-‐‑‒realtime-‐‑‒ volumetric-‐‑‒cloudscapes-‐‑‒of-‐‑‒horizon-‐‑‒zero-‐‑‒dawn
© Cygames, Inc. 平⾯面雲を形作る⽅方法 • 通常の Noise Texture に 奥⾏行行き(W軸)が増えた
ノイズテクスチャ。 • 雲を形作る際の 基準となります。 イメージ図 Volumetric Noise Textureとは? U
© Cygames, Inc. 平⾯面雲を形作る⽅方法
© Cygames, Inc. 平⾯面雲を形作る⽅方法 Noiseアルゴリズム紹介 このテクスチャの作り⽅方
© Cygames, Inc. Perlin Noise • Ken Perlin⽒氏が開発したノイズ。 • 綺麗麗な雲模様を⽣生成することが
可能です。 • 左図は、 ⾮非整数ブラウン運動 (Fractional Brownian Motion) によるガウス過程を経たものです。 Fractal Perlin noise
© Cygames, Inc. Worley Noise • Steven Worley⽒氏が 開発したノイズ。 •
⽔水⾯面がキラキラ反射している様な 模様を⽣生成することが可能です。 Worley noise
© Cygames, Inc. Worley Noise • 階調を反転(1-‐‑‒n)させることで、 モコモコとした膨らみをもつ 模様になります。 Worley
noise Inversed
© Cygames, Inc. Perlin-‐‑‒Worley Noise Perlin Noise と Worley Noise
を合成することで モコモコとした膨らみを持つ雲模様を ⽣生成することが出来ます。
© Cygames, Inc. Perlin-‐‑‒Worley Noise Perlin-‐‑‒Worley noise と は
≦ ≦ の 任意のパラメータ Fractal Perlin Inversed Worley = ( ∗ )/ ( ∗ )
© Cygames, Inc. 平⾯面雲を形作る⽅方法 まとめ Perlin-‐‑‒Worley Volumetric Noise Texture
平⾯面雲を形作る⽅方法は…
© Cygames, Inc. © Cygames, Inc. 3.光学法則 平⾯面雲の実装に必要な知識識
© Cygames, Inc. 光学法則 雲のライティングを⾏行行うためには、 光が雲を通過した際の事象を シミュレートする必要があります。
© Cygames, Inc. 光学法則 ライティング無し
© Cygames, Inc. 光学法則 ライティング有り
© Cygames, Inc. 光学法則 まとめ ライティング有り ライティング無し
© Cygames, Inc. 光学法則 これからご紹介する光学法則は すべて液体に関する法則です。
© Cygames, Inc. 光学法則 ランベルトの法則
© Cygames, Inc. 光学法則 光が物質を通過する場合、 吸光度度は 光路路⻑⾧長に⽐比例例します。 これを、ランベルトの法則と⾔言います。 吸光度度=光の透過度度
© Cygames, Inc. ランベルトの法則 下の⽅方が 明るいぜ! ランベルトの法則 イメージ 光 光
光 光 光路路⻑⾧長 ⻑⾧長い 光路路⻑⾧長 短い
© Cygames, Inc. ランベルトの法則 吸光度度 = 吸光係数 ∗ 光路路⻑⾧長 吸光度度
= 吸光係数 ∗ 光路路⻑⾧長 = 透過光 ⼊入射光 吸光係数とは、物質固有の定数です。
© Cygames, Inc. 光学法則 ベールの法則
© Cygames, Inc. 光学法則 光が物質を通過する場合、 吸光度度は、物質のモル濃度度に⽐比例例します。 これをベールの法則と呼びます。 モル=濃度度の単位
© Cygames, Inc. ベールの法則 ベールの法則 イメージ 下の⽅方が 明るいぜ! 光 光
光 光 濃度度 薄い 濃度度 濃い
© Cygames, Inc. ベールの法則 吸光度度 = 吸光係数 ∗ モル濃度度 吸光係数とは、物質固有の定数です。
© Cygames, Inc. ベールの法則 吸光係数とモル濃度度の違い • 吸光係数 物質固有の係数 • モル濃度度
体積あたりの濃度度
© Cygames, Inc. 吸光係数とモル濃度度の違い 濃いジュースも 薄いジュースも 吸光係数は同じです。 モル濃度度は違います。 例例えば…
© Cygames, Inc. 光学法則 ランベルト・ベールの 法則
© Cygames, Inc. 光学法則 ランベルトの法則とベールの法則を 組み合わせたものを ランベルト・ベールの法則 と呼びます。
© Cygames, Inc. ランベルト・ベールの法則 吸光度度は物質の濃度度に⽐比例例する ベールの法則 吸光度度は光路路⻑⾧長に⽐比例例する ランベルトの法則 + 吸光度度は物質の光路路⻑⾧長と濃度度に⽐比例例する
© Cygames, Inc. ランベルト・ベールの法則 吸光度度=吸光係数 ∗ 濃度度 ∗ 光路路⻑⾧長 =
© Cygames, Inc. 光学法則 まとめ ライティング有り ライティング無し
© Cygames, Inc. 光学法則 まとめ 雲密度度(濃度度)と 雲の厚さ(光路路⻑⾧長)が 必要になる。 雲をライティングする為には…
© Cygames, Inc. © Cygames, Inc. 4.レイマーチ 平⾯面雲の実装に必要な知識識
© Cygames, Inc. レイマーチ 先程の光学法則は全て、 対象の濃度度が⼀一定の液体の場合でした。 ⼀一定!
© Cygames, Inc. レイマーチ しかし、雲は⼤大気中に浮かぶ液体であり、 その濃度度は⼀一定ではありません。 濃い! 薄い!
© Cygames, Inc. レイマーチ そこで、レイマーチによる 濃度度(雲密度度)の測定を⾏行行う必要があります。
© Cygames, Inc. レイマーチ レイマーチ…?
© Cygames, Inc. レイマーチ レイマーチとは? • レイトレースの⼀一種。 • レイを少しずつ進めながら 処理理を⾏行行います。
© Cygames, Inc. レイマーチ 例例:衝突判定 衝突! レイ 衝突物との距離離
© Cygames, Inc. レイマーチ このような反復復処理理を レイマーチと呼びます。
© Cygames, Inc. レイマーチ この をステップと呼び、 ⼀一つの幅を ステップ幅と呼びます。 ステップ
© Cygames, Inc. レイマーチ ステップの反復復処理理を マーチング ループと呼び、 その回数をステップ回数と呼びます。 マーチング ループ
© Cygames, Inc. レイマーチ 平⾯面雲では レイマーチを⽤用いて 雲密度度の測定を⾏行行います。
© Cygames, Inc. レイマーチ レイマーチにより雲密度度を測定すると… • 雲のかたちが決定します。 • 密度度が0ならばそこに雲は存在しません。 •
雲のライティングが決定します。 • ステップの進んだ⻑⾧長さ=光路路⻑⾧長 • ランベルト・ベールの法則 • 吸光度度=吸光係数 ∗ 雲密度度 ∗ 光路路⻑⾧長
© Cygames, Inc. レイマーチ 1 合計は 20mol/L! 雲密度度の測定 (イメージ) 3
6 2 8 ※この数値はイメージです。 1 + 3 = 4
© Cygames, Inc. レイマーチ 雲密度度の測定 (イメージ) 合計は 0mol/L! 0 0
0 0 0
© Cygames, Inc. レイマーチ ところで…
© Cygames, Inc. レイマーチ レイマーチは負荷の⾼高い処理理です。 float density = 0.0; for
(int i = 0; i < StepCount; i++) { density += calcDensity(...); } return calcColor(density); シェーダー内で ループ処理理… その為、 ⾼高速化が必要になります。
© Cygames, Inc. レイマーチ ⾼高速化 平⾯面雲における レイマーチの基本的な⾼高速化⼿手法は、 以下があります。 1.レイマーチの省省略略 2.ステップの早期終了了
3.ステップ回数の削減
© Cygames, Inc. レイマーチ ⾼高速化 1.レイマーチの省省略略 ⾼高速化前 合計は 0mol/L! 0
0 0 0 0
© Cygames, Inc. レイマーチ ⾼高速化 0 1.レイマーチの省省略略 ⾼高速化後 確実にレイが雲と衝突しない場合、 レイマーチを省省略略します。
合計は 0mol/L!
© Cygames, Inc. Raymarch ⾼高速化 2.ステップの早期終了了 ⾼高速化前 合計は 20mol/L! 1
3 6 2 8
© Cygames, Inc. レイマーチ ⾼高速化 2.ステップの早期終了了 ⾼高速化後 1 3 6
合計は 10mol/L! 雲密度度が充分濃い場合は、 ステップを早期終了了出来ます。
© Cygames, Inc. レイマーチ ⾼高速化 3.ステップ回数の削減 合計は 20mol/L! ⾼高速化前 1
3 6 2 8
© Cygames, Inc. レイマーチ ⾼高速化 3.ステップ回数の削減 合計は 19mol/L! 3.5 ステップ幅を拡⼤大することで、回数を削減出来ます。
ただし、測定結果の不不正確さが ⽐比例例することに注意してください。 ⾼高速化後 7.5 8
© Cygames, Inc. レイマーチ ⾼高速化 3.ステップ回数の削減 ステップ回数の削減とステップの早期終了了は、 併⽤用することも可能です。 ⾼高速化後 3.5
7.5 合計は 11mol/L!
© Cygames, Inc. レイマーチ – まとめ 平⾯面雲の形を決定し、 ライティングを⾏行行う為、 レイマーチにより、雲密度度を求めます。 ⾼高速化は必須です。
© Cygames, Inc. © Cygames, Inc. 平⾯面雲 おさらい
© Cygames, Inc. © Cygames, Inc.
© Cygames, Inc. © Cygames, Inc.
© Cygames, Inc. 平⾯面雲 – おさらい 雲は 液体または固体です。
© Cygames, Inc. 平⾯面雲 – おさらい 平⾯面雲は Perlin Worley
Volumetric Noise Texture で形作っています。 U
© Cygames, Inc. 平⾯面雲 – おさらい 平⾯面雲は ランベルト・ベールの法則 を⽤用いて ライティングしています。
© Cygames, Inc. 平⾯面雲 – おさらい 平⾯面雲は レイマーチ で 雲密度度を測定しています。
© Cygames, Inc. © Cygames, Inc.
© Cygames, Inc. 平⾯面雲 まとめましたが…
© Cygames, Inc. 平⾯面雲 -‐‑‒ ⽣生じた課題 • ⼊入道雲は形に個性があり、 機械的に⽣生成される Volumetric
Noise Textureでは ⽣生成することが難しかった。 • 任意形状雲の研究が 別途必要に。 ⼊入道雲が表現出来ない!
© Cygames, Inc. © Cygames, Inc. 任意形状雲
None
© Cygames, Inc. 任意形状雲について •任意形状雲は • ボリュームのある雲も表現できる! • 形は簡単に変更更可能! •
カメラが雲の中に⼊入ることができる!
© Cygames, Inc. 任意形状雲
© Cygames, Inc. 形状の作成⽅方法 • 球体を結合させて作成 • 処理理が単純かつ⾼高速 • 雲の形を作りやすい
イメージ 結合した時になんとなく雲っぽい
© Cygames, Inc. 最初の雲 • 3Dテクスチャに形状を格納 • レイマーチで描画 • 平⾯面雲と⾒見見た⽬目に差異異が出る
• 拡縮などに弱い
© Cygames, Inc. 現在の雲 • 平⾯面雲と⾒見見た⽬目に 差異異が出ない • 拡縮にも強い
© Cygames, Inc. 雲の描画 〜~単体の場合〜~ 空間に⾒見見えない雲を充満 ↓ 雲を表⽰示したい場所に球体を定義 ↓ 球体内のみ密度度を収集して描画
© Cygames, Inc. ライティング 平⾯面雲と同じ 同じにすることで、 平⾯面雲と⼀一緒に表⽰示しても⾒見見た⽬目に違いが出ない!
© Cygames, Inc. 完成図 〜~単体の場合〜~
© Cygames, Inc. 雲の描画 〜~複数の場合〜~ • 視線⽅方向に 複数の雲が重なる • 雲同⼠士で
影を落落とす などを考慮する必要がある
© Cygames, Inc. 視線⽅方向に複数の雲が重なるので(1/2) 描画する雲の球体をリストアップ
© Cygames, Inc. 視線⽅方向に複数の雲が重なるので(2/2) 不不透明になった時点で終了了する Alpha 0.1 0.4 0.6 0.8
1.0 描画されない!
© Cygames, Inc. 雲同⼠士で影を落落とすために ライト⽅方向へも複数の雲を考慮する
© Cygames, Inc. 完成図 〜~複数の場合〜~
© Cygames, Inc. 完成図 〜~複数の場合〜~
© Cygames, Inc. 動的結合
© Cygames, Inc. 動的結合
© Cygames, Inc. 動的結合
© Cygames, Inc. 動的結合
© Cygames, Inc. 動的結合
© Cygames, Inc. 様々な形状を表現可能
© Cygames, Inc. 様々な形状を表現可能
© Cygames, Inc. © Cygames, Inc. 平⾯面雲と任意形状雲
© Cygames, Inc. ⼆二つの雲を合体
© Cygames, Inc. ⼆二つの雲を合体
© Cygames, Inc. 今後の課題 • ⾼高速化対応が必要 • よりグランブルーファンタジーらしく!
© Cygames, Inc. © Cygames, Inc.
© Cygames, Inc. 最後に 『最高の雲』を作り上げ 『最高のゲーム』へ
© Cygames, Inc. © Cygames, Inc. ご清聴ありがとうございました