SlideShare a Scribd company logo
1 of 34
Download to read offline
historia Inc.
2020/09/12
ヒストリア・エンタープライズエンジニア
橘内 正貴
実戦投入事例!
Niagaraで地球の風をビジュアライズ!
historia Inc.
自己紹介
• 2019/6からヒストリア・エンタープライズにJoin
現在の肩書はエンタープライズエンジニア
• ue4歴は約3年(historia以前は趣味レベル)
ちなみに前職は銭湯で受付のアルバイトをしていました
こんなものを作ったりしてました
https://www.youtube.com/watch?v=hU1vRI4E6sc
historia Inc.
コンテンツ紹介
Youtube:https://youtu.be/QoC4FEGD7fQ
historia Inc.
まえおき
開発Ver:UE4.25.1
講演内容は最適解ではない部分も多々あるか
と思います。参考程度に!
C++やBP関連の実装に関しては割愛します
historia Inc.
ビジュアライズってどうやったの?
UE4外
• Webで公開されている気象データ
「GRIB2(圧縮バイナリ)」のダウンロード
• →専門の外部ツールでCSV化
UE4C++
&BP
• UE4C++でCSVをテキスト読み込みし、数値配列にパース
• →数値配列をテクスチャに変換
• →テクスチャをナイアガラへ渡す
Niagara
• テクスチャの色情報を使ってパーティクルの動き・色を制御
historia Inc.
ビジュアライズってどうやったの? -データ(GRIB2)解説
• 風のデータは緯度経度0.25度
のグリッドでサンプリング
• 緯度方向と経度方向のベクト
ル量が格納されている
historia Inc.
• Q:なんでテクスチャ化?
緯度
0°
緯度-90°
緯度
+90°
経度-
180°
経度0° 経度
+180°
• A:ナイアガラは配列を直接扱えないから
U 1U 0
V 0
V 1
historia Inc.
historia Inc.
Niagaraはなにをやってるの? -モジュール構成
historia Inc.
Niagaraはなにをやってるの? -モジュール構成
• 1、StaticMeshLocationで地
球表面にパーティクルをス
ポーン
• 2、VortexVelocityで地球表面
に沿ってパーティクルを移動
• 3、Colorで透過や色付け
historia Inc.
Niagaraはなにをやってるの? -VortexVelocityの仕事
• Velocity Amount
→風速を計算してパーティクルの速度に変換
• VortexAxis
→風のベクトルを3次元の回転に変換
historia Inc.
パーティクルとテクスチャの関係
緯度
0°
緯度-
90°
緯度
+90°
経度-
180°
経度0° 経度
+180°
U 1U 0
V 0
V 1
XYZ→lat,lon≒UV
Wikipediaより引用
historia Inc.
どうやってるの?(VertexVelocityでパーティクルを動かす)
• 慣性をつけるための改造
historia Inc.
どうやってるの? -補助的に使っているモジュール
• Facingで地球の表面にきちんと沿わせる
• ScaleSpriteSizeBySpeedで速度差による表示ムラを軽減
historia Inc.
どうやってるの? -Rendere設定
• AlignmentをVelocityに設定、移動方向を向かせる
• FacingをCustomに設定、前述のモジュールと連携する
historia Inc.
どうやってるの? -色回り
• ColorCurveを入力に使用、ベクトルの強さで色分け
• 透過はベクトルの強さとLifeTimeでフェード処理
historia Inc.
どうやってるの?(BluePrintとナイアガラの連携Tips)
• BPでテクスチャはナイアガラに受け渡し
• ReinitializeSystemノードを更新したいタイミングで呼ぶ
historia Inc.
ここがよかったよナイアガラ
風の表現の為にとにかく物量が欲しい
→GPUパーティクルでバンバンだせる!
モジュールが自作できる
→思い通りのロジックでパーティクルが動く!
シーケンサーで変数を動的に変更可能
→表現を詰めるイテレーションが早い!
historia Inc.
Niagara 罠Tips 1
• (おそらくGPUパーティクル限定)
パーティクルの後ろのオブジェクトが動くと、変なブ
ラーが発生する
historia Inc.
Niagara 罠Tips 1
Youtube:https://youtu.be/1YdmBTW5DvA
historia Inc.
Niagara 罠Tips 1
• カメラ側が動く分には影響がなかった
• →カメラを動かすことで一応対策可能
• (この現象を確認した時点で既に地球をガンガン回してシーケンサが作られていたので全て
作り直しに……その節は大変ご迷惑をおかけしました)
historia Inc.
Niagara 罠Tips 2
• GPUパーティクルだとRibbonRendereが使えない
• 風が尾を引く表現をしたかったが、どうしても直せず。
• 形状や動き、密度で風感を表現する方向にシフトした
historia Inc.
Niagara 罠Tips 3
• StaticMeshLocationのカリングが効かない問題
historia Inc.
カリング範囲:0.5 スポーンレート:50,000,000
Youtube:https://youtu.be/RfZjx1f2y7w
historia Inc.
Niagara 罠Tips 3
• StaticMeshLocationのカリングが効かない問題
• → WorldAxisConstraintでパーティクルを多く出せるよ
うに制御しているはずなのに動画出力とするとなぜか
減ってしまう
historia Inc.
Niagara 罠Tips 3
スポーンした後に減らしてる!?
historia Inc.
Niagara 罠Tips 3
• 負荷回避のためのStaticMeshLocation改造
historia Inc.
カリング範囲:0.5 スポーンレート:120,000
Youtube:https://youtu.be/UZqEqrRRFjE
historia Inc.
実務的な豆知識:動画書き出しの自動化
• 今回は出力するカット数が多かったので、コマンドライ
ンでシーケンサー書き出しを自動化するbatをつくった
• 参考
https://docs.unrealengine.com/ja/Engine/Sequence
r/Workflow/RenderAndExport/RenderingCmdLine/in
dex.html
historia Inc.
実務的な豆知識:動画書き出しの自動化の罠
• 解像度をコマンド( -ResX=####・-ResY=#### )で設定で
きるはずなのですが、設定してもなぜかディスプレイ解
像度にひっぱられます
• UE4上のシーケンサー書き出しなら設定解像度で出力
• 恐らくフルスクリーン表示が原因っぽいですが、納期が
それどころじゃなかったのでエンジニア的解決は行えず
historia Inc.
まとめ
• Niagara×データビジュアライズ、結構いける!
• データをナイアガラに渡すパイプラインさえ作ればその
あとの表現部分を詰めるイテレーションもかなり早い!
• 嵌ろう!モジュール自作沼!
historia Inc.
巻末付録
プロジェクトの参考にしたサイト
historia Inc.
CSVのテクスチャ化の際に参考にしたサイト(C++サンプル)
• UE4/C++: メッシュのマテリアルやテクスチャーを
C++コードで制御する方法
https://usagi.hatenablog.jp/entry/2017/07/26/115603
• Generating Procedural Textures
https://www.orfeasel.com/generating-procedural-textures/
historia Inc.
ナイアガラを勉強するのに参考にしたサイト
• Niagaraの入門
https://crabpunch.hatenablog.com/archive/categor
y/Niagara
• 新しいエフェクトツール、Niagaraを楽しもう! ~
Niagara作例のブレイクダウン~
https://www.slideshare.net/EpicGamesJapan/ue4fe
steast2018-niagara

More Related Content

What's hot

What's hot (20)

Unreal Engine最新機能 アニメーション+物理ショーケース!
Unreal Engine最新機能 アニメーション+物理ショーケース!Unreal Engine最新機能 アニメーション+物理ショーケース!
Unreal Engine最新機能 アニメーション+物理ショーケース!
 
UE4アセットリダクション手法紹介
UE4アセットリダクション手法紹介UE4アセットリダクション手法紹介
UE4アセットリダクション手法紹介
 
Game Creators Conference 2019 Takashi Itai
Game Creators Conference 2019 Takashi ItaiGame Creators Conference 2019 Takashi Itai
Game Creators Conference 2019 Takashi Itai
 
UE4における大規模背景制作事例(コリジョン編)
UE4における大規模背景制作事例(コリジョン編) UE4における大規模背景制作事例(コリジョン編)
UE4における大規模背景制作事例(コリジョン編)
 
豚×京都 ~UE4でなろう破壊神~ (UE4 VFX Art Dive)
豚×京都 ~UE4でなろう破壊神~ (UE4 VFX Art Dive)豚×京都 ~UE4でなろう破壊神~ (UE4 VFX Art Dive)
豚×京都 ~UE4でなろう破壊神~ (UE4 VFX Art Dive)
 
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
 
UE4のライティング解体新書~効果的なNPRのためにライティングの仕組みを理解しよう~
UE4のライティング解体新書~効果的なNPRのためにライティングの仕組みを理解しよう~UE4のライティング解体新書~効果的なNPRのためにライティングの仕組みを理解しよう~
UE4のライティング解体新書~効果的なNPRのためにライティングの仕組みを理解しよう~
 
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
 
[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい
 
かわいい女の子になりたいんや! UE4の最新機能を使ってVTuberしてみた!
かわいい女の子になりたいんや! UE4の最新機能を使ってVTuberしてみた!かわいい女の子になりたいんや! UE4の最新機能を使ってVTuberしてみた!
かわいい女の子になりたいんや! UE4の最新機能を使ってVTuberしてみた!
 
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
 
UE4におけるエフェクトの為のエンジン改造事例
UE4におけるエフェクトの為のエンジン改造事例UE4におけるエフェクトの為のエンジン改造事例
UE4におけるエフェクトの為のエンジン改造事例
 
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られたNintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
 
UE4におけるレベル制作事例
UE4におけるレベル制作事例  UE4におけるレベル制作事例
UE4におけるレベル制作事例
 
UE4における大規模背景制作事例 描画特殊表現編
UE4における大規模背景制作事例 描画特殊表現編UE4における大規模背景制作事例 描画特殊表現編
UE4における大規模背景制作事例 描画特殊表現編
 
60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編
 
UE4 Volumetric Fogで 空間を演出する!
UE4 Volumetric Fogで 空間を演出する!UE4 Volumetric Fogで 空間を演出する!
UE4 Volumetric Fogで 空間を演出する!
 
Fortniteを支える技術
Fortniteを支える技術Fortniteを支える技術
Fortniteを支える技術
 
UE4の色について v1.1
 UE4の色について v1.1 UE4の色について v1.1
UE4の色について v1.1
 
60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
 

More from historia_Inc

目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
historia_Inc
 
Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~
Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~
Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~
historia_Inc
 
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
historia_Inc
 
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
historia_Inc
 
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
historia_Inc
 
【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見
【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見
【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見
historia_Inc
 
【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!
【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!
【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!
historia_Inc
 
映像屋さんのためのリアルタイムBG制作
映像屋さんのためのリアルタイムBG制作映像屋さんのためのリアルタイムBG制作
映像屋さんのためのリアルタイムBG制作
historia_Inc
 
【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション
【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション
【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション
historia_Inc
 
[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦
[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦
[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦
historia_Inc
 

More from historia_Inc (20)

電撃! ゲリラ的ゲームプロデュース論
電撃! ゲリラ的ゲームプロデュース論電撃! ゲリラ的ゲームプロデュース論
電撃! ゲリラ的ゲームプロデュース論
 
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
 
Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~
Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~
Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~
 
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
 
コンテンツサンプルを楽しむ"超"初心者の為のNiagara
コンテンツサンプルを楽しむ"超"初心者の為のNiagaraコンテンツサンプルを楽しむ"超"初心者の為のNiagara
コンテンツサンプルを楽しむ"超"初心者の為のNiagara
 
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
 
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
 
【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見
【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見
【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見
 
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
 
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』
 
【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!
【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!
【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!
 
映像屋さんのためのリアルタイムBG制作
映像屋さんのためのリアルタイムBG制作映像屋さんのためのリアルタイムBG制作
映像屋さんのためのリアルタイムBG制作
 
【出張ヒストリア2018】モーションキャプチャーを取り入れるには?
【出張ヒストリア2018】モーションキャプチャーを取り入れるには? 【出張ヒストリア2018】モーションキャプチャーを取り入れるには?
【出張ヒストリア2018】モーションキャプチャーを取り入れるには?
 
【出張ヒストリア2018】Caligula Overdose 開発ワークフロー アラカルト
【出張ヒストリア2018】Caligula Overdose 開発ワークフロー アラカルト【出張ヒストリア2018】Caligula Overdose 開発ワークフロー アラカルト
【出張ヒストリア2018】Caligula Overdose 開発ワークフロー アラカルト
 
【出張ヒストリア2018】Caligula OverdoseでのUIデザインアプローチ
【出張ヒストリア2018】Caligula OverdoseでのUIデザインアプローチ【出張ヒストリア2018】Caligula OverdoseでのUIデザインアプローチ
【出張ヒストリア2018】Caligula OverdoseでのUIデザインアプローチ
 
【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション
【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション
【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション
 
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
 
[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦
[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦
[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦
 
【出張ヒストリア2017】 Art of airtone
【出張ヒストリア2017】 Art of airtone【出張ヒストリア2017】 Art of airtone
【出張ヒストリア2017】 Art of airtone
 
【出張ヒストリア2017】 想像と違ってた! VRUI作りのコツ
【出張ヒストリア2017】 想像と違ってた! VRUI作りのコツ【出張ヒストリア2017】 想像と違ってた! VRUI作りのコツ
【出張ヒストリア2017】 想像と違ってた! VRUI作りのコツ
 

実戦投入事例! Niagaraで地球の風をビジュアライズ!