SlideShare a Scribd company logo

UE4におけるエフェクトの為のエンジン改造事例

※本セッションには多くの動画が含まれていたり、ノートに備考が記載されている可能性があります。実際の講演で行われたスライドが下記からダウンロード可能ですので、是非そちらをご覧頂けますと幸いです。 講演パワーポイントリンク: https://epicgames.box.com/s/8mmgpxjfgbvk86wdfs23t0xbqwzfrrcu 登壇者 細川 拓馬さま 内容  エフェクトに関するエンジンの改造事例。どこを改造したか、改造してのメリットやデメリット、独自の追加機能などエフェクト関連の改造事例を紹介していきます。 本スライドは2019年3月15日に行われた「UE4を用いた大規模開発事例紹介 ~スクウェア・エニックス様をお招きして~」にてスクウェア・エニックス様に講演していただいたものです。

1 of 243
Download to read offline
V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved.
株式会社スクウェア・エニックス 細川 拓馬
U E 4 に お け る エ フ ェ ク ト の 為 の エ ン ジ ン 改 造 事 例
V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved.
スライドについて
・PowerPointファイルをEpic様より公開いただいています
https://epicgames.box.com/s/81hfj5f4ormna09fx3dvismbn40cjjeo
・スライド内の動画はPowerPointファイルのDLにてご確認ください
V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved.
略称について
・『Unreal Engine 4』をスライド内では『UE4』と記載しています
・『Particle System』を『PS』と記載しています
• 『Particle System Component』を『PSC』と記載しています
• 『ブループリント』を『BP』と記載しています
V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved.
自己紹介
V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved.
細川 拓馬
• スクウェア・エニックス
プログラマー
• 経歴
2007年入社
エネミーやギミック、ツールなどを担当
とあるプロジェクトではVFXプログラマー
エンジンの改造や拡張、デザイナーのサポートをしてきました。
自己紹介
V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved.
内容

Recommended

そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...エピック・ゲームズ・ジャパン Epic Games Japan
 

More Related Content

What's hot

マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DDマテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DDエピック・ゲームズ・ジャパン Epic Games Japan
 
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMERSAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMERエピック・ゲームズ・ジャパン Epic Games Japan
 
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~com044
 
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る!  | UNREAL FEST EXTREME 2020 WINTERUE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る!  | UNREAL FEST EXTREME 2020 WINTER
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTERエピック・ゲームズ・ジャパン Epic Games Japan
 
UE4でTranslucencyやUnlitに影を落としたい!
UE4でTranslucencyやUnlitに影を落としたい!UE4でTranslucencyやUnlitに影を落としたい!
UE4でTranslucencyやUnlitに影を落としたい!com044
 

What's hot (20)

マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DDマテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
 
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
 
UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4における大規模レベル実装ワークフローとブループリント活用事例UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4における大規模レベル実装ワークフローとブループリント活用事例
 
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
 
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の歩き方
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の歩き方UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の歩き方
UE4を用いたTPS制作事例 EDF:IR 地球を衛る兵士の歩き方
 
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
 
UE4におけるエフェクトの基本戦略事例 前半
UE4におけるエフェクトの基本戦略事例  前半UE4におけるエフェクトの基本戦略事例  前半
UE4におけるエフェクトの基本戦略事例 前半
 
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMERSAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
 
60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
 
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらいCEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
 
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
 
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
[UE4]マテリアルの注意すべきこと!~テクスチャロードとSwitch~
 
猫でも分かる UE4の新しいサンプル「Action RPG」について
猫でも分かる UE4の新しいサンプル「Action RPG」について猫でも分かる UE4の新しいサンプル「Action RPG」について
猫でも分かる UE4の新しいサンプル「Action RPG」について
 
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
 
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 1
 
60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編
 
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る!  | UNREAL FEST EXTREME 2020 WINTERUE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る!  | UNREAL FEST EXTREME 2020 WINTER
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
 
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られたNintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
 
UE4でTranslucencyやUnlitに影を落としたい!
UE4でTranslucencyやUnlitに影を落としたい!UE4でTranslucencyやUnlitに影を落としたい!
UE4でTranslucencyやUnlitに影を落としたい!
 
Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)
Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)
Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)
 

Similar to UE4におけるエフェクトの為のエンジン改造事例

DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方dena_study
 
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化Fixstars Corporation
 
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術dena_study
 
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~Fixstars Corporation
 
Qlik composeのインストール
Qlik composeのインストールQlik composeのインストール
Qlik composeのインストールQlikPresalesJapan
 
ACRiウェビナー_GIGABYTE様ご講演資料
ACRiウェビナー_GIGABYTE様ご講演資料ACRiウェビナー_GIGABYTE様ご講演資料
ACRiウェビナー_GIGABYTE様ご講演資料直久 住川
 
CEDEC2022 Keiji Kikuchi RemoteMobWork
CEDEC2022 Keiji Kikuchi RemoteMobWorkCEDEC2022 Keiji Kikuchi RemoteMobWork
CEDEC2022 Keiji Kikuchi RemoteMobWorkKeiji Kikuchi
 
グリーにおけるスマホアプリ開発~HTML5編
グリーにおけるスマホアプリ開発~HTML5編グリーにおけるスマホアプリ開発~HTML5編
グリーにおけるスマホアプリ開発~HTML5編Mitsuhiro Tanda
 
【Unite 2017 Tokyo】マルチプレイゲームのグローバル展開事例(BNE様)と完全同期を実現するPhoton TrueSync のご紹介
【Unite 2017 Tokyo】マルチプレイゲームのグローバル展開事例(BNE様)と完全同期を実現するPhoton TrueSync のご紹介【Unite 2017 Tokyo】マルチプレイゲームのグローバル展開事例(BNE様)と完全同期を実現するPhoton TrueSync のご紹介
【Unite 2017 Tokyo】マルチプレイゲームのグローバル展開事例(BNE様)と完全同期を実現するPhoton TrueSync のご紹介Unity Technologies Japan K.K.
 
Diskless Compute Nodeを使ったImmutable OpenStack
Diskless Compute Nodeを使ったImmutable OpenStackDiskless Compute Nodeを使ったImmutable OpenStack
Diskless Compute Nodeを使ったImmutable OpenStackYuki Yamashita
 
AZAREA-Cluster (Hadoop Conference Japan 2013 Winter Demo Image)
AZAREA-Cluster (Hadoop Conference Japan 2013 Winter Demo Image) AZAREA-Cluster (Hadoop Conference Japan 2013 Winter Demo Image)
AZAREA-Cluster (Hadoop Conference Japan 2013 Winter Demo Image) AzareaCluster
 
VCK5000_Webiner_GIGABYTE様ご講演資料
VCK5000_Webiner_GIGABYTE様ご講演資料VCK5000_Webiner_GIGABYTE様ご講演資料
VCK5000_Webiner_GIGABYTE様ご講演資料直久 住川
 
JavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jpJavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jpYuji Kubota
 

Similar to UE4におけるエフェクトの為のエンジン改造事例 (20)

実行速度の最適化のあれこれ プラス おまけ
実行速度の最適化のあれこれ プラス おまけ  実行速度の最適化のあれこれ プラス おまけ
実行速度の最適化のあれこれ プラス おまけ
 
UE4における大規模背景制作事例(コリジョン編)
UE4における大規模背景制作事例(コリジョン編) UE4における大規模背景制作事例(コリジョン編)
UE4における大規模背景制作事例(コリジョン編)
 
「電車でGO!!」アーケード大型3画面筐体で実在の街並みを表現するUE4開発事例
「電車でGO!!」アーケード大型3画面筐体で実在の街並みを表現するUE4開発事例「電車でGO!!」アーケード大型3画面筐体で実在の街並みを表現するUE4開発事例
「電車でGO!!」アーケード大型3画面筐体で実在の街並みを表現するUE4開発事例
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
 
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
 
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術
 
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
 
Qlik composeのインストール
Qlik composeのインストールQlik composeのインストール
Qlik composeのインストール
 
ACRiウェビナー_GIGABYTE様ご講演資料
ACRiウェビナー_GIGABYTE様ご講演資料ACRiウェビナー_GIGABYTE様ご講演資料
ACRiウェビナー_GIGABYTE様ご講演資料
 
CEDEC2022 Keiji Kikuchi RemoteMobWork
CEDEC2022 Keiji Kikuchi RemoteMobWorkCEDEC2022 Keiji Kikuchi RemoteMobWork
CEDEC2022 Keiji Kikuchi RemoteMobWork
 
グリーにおけるスマホアプリ開発~HTML5編
グリーにおけるスマホアプリ開発~HTML5編グリーにおけるスマホアプリ開発~HTML5編
グリーにおけるスマホアプリ開発~HTML5編
 
UE4におけるアニメーション制作事例
UE4におけるアニメーション制作事例  UE4におけるアニメーション制作事例
UE4におけるアニメーション制作事例
 
【Unite 2017 Tokyo】マルチプレイゲームのグローバル展開事例(BNE様)と完全同期を実現するPhoton TrueSync のご紹介
【Unite 2017 Tokyo】マルチプレイゲームのグローバル展開事例(BNE様)と完全同期を実現するPhoton TrueSync のご紹介【Unite 2017 Tokyo】マルチプレイゲームのグローバル展開事例(BNE様)と完全同期を実現するPhoton TrueSync のご紹介
【Unite 2017 Tokyo】マルチプレイゲームのグローバル展開事例(BNE様)と完全同期を実現するPhoton TrueSync のご紹介
 
UE4における大規模背景制作事例(データメンテナンス・大技設定編 )
UE4における大規模背景制作事例(データメンテナンス・大技設定編 )UE4における大規模背景制作事例(データメンテナンス・大技設定編 )
UE4における大規模背景制作事例(データメンテナンス・大技設定編 )
 
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_cccSpring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
 
UE4を用いたTPS制作事例 EDF:IR アニメーション作成事例紹介
UE4を用いたTPS制作事例 EDF:IR アニメーション作成事例紹介UE4を用いたTPS制作事例 EDF:IR アニメーション作成事例紹介
UE4を用いたTPS制作事例 EDF:IR アニメーション作成事例紹介
 
Diskless Compute Nodeを使ったImmutable OpenStack
Diskless Compute Nodeを使ったImmutable OpenStackDiskless Compute Nodeを使ったImmutable OpenStack
Diskless Compute Nodeを使ったImmutable OpenStack
 
AZAREA-Cluster (Hadoop Conference Japan 2013 Winter Demo Image)
AZAREA-Cluster (Hadoop Conference Japan 2013 Winter Demo Image) AZAREA-Cluster (Hadoop Conference Japan 2013 Winter Demo Image)
AZAREA-Cluster (Hadoop Conference Japan 2013 Winter Demo Image)
 
VCK5000_Webiner_GIGABYTE様ご講演資料
VCK5000_Webiner_GIGABYTE様ご講演資料VCK5000_Webiner_GIGABYTE様ご講演資料
VCK5000_Webiner_GIGABYTE様ご講演資料
 
JavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jpJavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jp
 

More from エピック・ゲームズ・ジャパン Epic Games Japan

『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
『バランワンダーワールド』でのマルチプラットフォーム対応について  UNREAL FEST EXTREME 2021 SUMMER『バランワンダーワールド』でのマルチプラットフォーム対応について  UNREAL FEST EXTREME 2021 SUMMER
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMERエピック・ゲームズ・ジャパン Epic Games Japan
 
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMERエピック・ゲームズ・ジャパン Epic Games Japan
 
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編) UNREAL FEST EXTREME 2021 SUMMER
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編)  UNREAL FEST EXTREME 2021 SUMMER『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編)  UNREAL FEST EXTREME 2021 SUMMER
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編) UNREAL FEST EXTREME 2021 SUMMERエピック・ゲームズ・ジャパン Epic Games Japan
 

More from エピック・ゲームズ・ジャパン Epic Games Japan (20)

初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
 
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
 
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
Unreal Engine 4.27 ノンゲーム向け新機能まとめUnreal Engine 4.27 ノンゲーム向け新機能まとめ
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
 
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
UE4 Hair & Groomでのリアルタイムファーレンダリング (UE4 Character Art Dive Online)
 
UE4を使った映像制作 (UE4 Character Art Dive Online)
UE4を使った映像制作 (UE4 Character Art Dive Online)UE4を使った映像制作 (UE4 Character Art Dive Online)
UE4を使った映像制作 (UE4 Character Art Dive Online)
 
Hair Groom入門 (UE4 Character Art Dive Online)
Hair Groom入門 (UE4 Character Art Dive Online)Hair Groom入門 (UE4 Character Art Dive Online)
Hair Groom入門 (UE4 Character Art Dive Online)
 
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive OnlineUE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
UE4で”MetaHumanを使わずに”耳なし芳一になる10の方法 | UE4 Character Art Dive Online
 
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
『バランワンダーワールド』でのマルチプラットフォーム対応について  UNREAL FEST EXTREME 2021 SUMMER『バランワンダーワールド』でのマルチプラットフォーム対応について  UNREAL FEST EXTREME 2021 SUMMER
『バランワンダーワールド』でのマルチプラットフォーム対応について UNREAL FEST EXTREME 2021 SUMMER
 
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMERVisual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
 
Unreal Engineでのコンフィギュレーター制作と映像制作 UNREAL FEST EXTREME 2021 SUMMER
Unreal Engineでのコンフィギュレーター制作と映像制作  UNREAL FEST EXTREME 2021 SUMMERUnreal Engineでのコンフィギュレーター制作と映像制作  UNREAL FEST EXTREME 2021 SUMMER
Unreal Engineでのコンフィギュレーター制作と映像制作 UNREAL FEST EXTREME 2021 SUMMER
 
バレンシアガ『Afterworld: The Age of Tomorrow』の舞台裏 UNREAL FEST EXTREME 2021 SUMMER
バレンシアガ『Afterworld: The Age of Tomorrow』の舞台裏  UNREAL FEST EXTREME 2021 SUMMERバレンシアガ『Afterworld: The Age of Tomorrow』の舞台裏  UNREAL FEST EXTREME 2021 SUMMER
バレンシアガ『Afterworld: The Age of Tomorrow』の舞台裏 UNREAL FEST EXTREME 2021 SUMMER
 
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
 
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編) UNREAL FEST EXTREME 2021 SUMMER
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編)  UNREAL FEST EXTREME 2021 SUMMER『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編)  UNREAL FEST EXTREME 2021 SUMMER
『ガールズ&パンツァー 最終章』第3話 アニメとゲームエンジンの融合(ジャングル完結編) UNREAL FEST EXTREME 2021 SUMMER
 
UE4を使用したバーチャルヒューマンの映像制作 UNREAL FEST EXTREME 2021 SUMMER
UE4を使用したバーチャルヒューマンの映像制作  UNREAL FEST EXTREME 2021 SUMMERUE4を使用したバーチャルヒューマンの映像制作  UNREAL FEST EXTREME 2021 SUMMER
UE4を使用したバーチャルヒューマンの映像制作 UNREAL FEST EXTREME 2021 SUMMER
 
オンラインで同期した100体の巨大生物から地球を衛る方法 UNREAL FEST EXTREME 2021 SUMMER
オンラインで同期した100体の巨大生物から地球を衛る方法  UNREAL FEST EXTREME 2021 SUMMERオンラインで同期した100体の巨大生物から地球を衛る方法  UNREAL FEST EXTREME 2021 SUMMER
オンラインで同期した100体の巨大生物から地球を衛る方法 UNREAL FEST EXTREME 2021 SUMMER
 
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
MetaHumanサンプル解体新書  UNREAL FEST EXTREME 2021 SUMMERMetaHumanサンプル解体新書  UNREAL FEST EXTREME 2021 SUMMER
MetaHumanサンプル解体新書 UNREAL FEST EXTREME 2021 SUMMER
 
Twinmotion 2021とAEC分野向けソリューションのご紹介
Twinmotion 2021とAEC分野向けソリューションのご紹介Twinmotion 2021とAEC分野向けソリューションのご紹介
Twinmotion 2021とAEC分野向けソリューションのご紹介
 
UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)
UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)
UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)
 
猫でもわかる Epic MegaGrants 応募への道
猫でもわかる Epic MegaGrants 応募への道猫でもわかる Epic MegaGrants 応募への道
猫でもわかる Epic MegaGrants 応募への道
 
Unreal Engine と XR でつくる「働く」の未来 | UNREAL FEST EXTREME 2020 WINTER
Unreal Engine と XR でつくる「働く」の未来 | UNREAL FEST EXTREME 2020 WINTERUnreal Engine と XR でつくる「働く」の未来 | UNREAL FEST EXTREME 2020 WINTER
Unreal Engine と XR でつくる「働く」の未来 | UNREAL FEST EXTREME 2020 WINTER
 

UE4におけるエフェクトの為のエンジン改造事例

  • 1. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 株式会社スクウェア・エニックス 細川 拓馬 U E 4 に お け る エ フ ェ ク ト の 為 の エ ン ジ ン 改 造 事 例
  • 2. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. スライドについて ・PowerPointファイルをEpic様より公開いただいています https://epicgames.box.com/s/81hfj5f4ormna09fx3dvismbn40cjjeo ・スライド内の動画はPowerPointファイルのDLにてご確認ください
  • 3. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 略称について ・『Unreal Engine 4』をスライド内では『UE4』と記載しています ・『Particle System』を『PS』と記載しています • 『Particle System Component』を『PSC』と記載しています • 『ブループリント』を『BP』と記載しています
  • 4. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 自己紹介
  • 5. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 細川 拓馬 • スクウェア・エニックス プログラマー • 経歴 2007年入社 エネミーやギミック、ツールなどを担当 とあるプロジェクトではVFXプログラマー エンジンの改造や拡張、デザイナーのサポートをしてきました。 自己紹介
  • 6. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 内容
  • 7. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • その前に・・・このセッションについて • エンジン改造が前提のお話しです。 • もしかしたら標準で出来ることもあるかも・・・ • BPや標準機能のお話はありません。 • 全ての拡張を網羅しているスライドではありません。 内容について ご 注 意 ・ ・ ・ ・
  • 8. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 自己紹介 • 環境について • なぜ拡張したのか • 改造のメリットとデメリット • 改造した物と作った物 • おまけ • まとめ 内容
  • 9. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 内容詳細 • 環境 • なぜ改造したか • 改造方針 • メリットデメリット • Cascadeの改造内容 • Particle System改造 • PSC改造内容 • Emitter改造 • Module追加について • Type Data Module • GPU Particle • 特殊Module • Emitter Module • Particle Module • 既存 Moduleの拡張 • ポスプロ Module • 外部制御Module • MaterialModule • GPU Particle • 特殊Module • デバッグ • Attach System • Tool • Matinee • VFX Manager • Commandlet • Automation • マテリアル関連 • その他 • 並列化 • Niagara • まとめ
  • 10. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 自己紹介 • 環境について • なぜ拡張したのか • 改造のメリットとデメリット • 改造した物と作った物 • おまけ • まとめ 内容
  • 11. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 環境について
  • 12. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 最終バージョン • UE4.17.2 環境について 改 造 開 始 時 期
  • 13. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 改造、拡張はどこで? • エンジン側のプロジェクトで改造 • プラグインやゲーム側のプロジェクトでもテストしてみた。 • 色々エラーが出たのでエンジン側のプロジェクトで作業 • ENGINE_APIなどを追加しないとクラスが読めない・・・・ • UDNでお願いするのが面倒・・・ 環境について • どこで?
  • 14. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Editor周り • Particle System全般 • 既存Moduleの拡張と新規Module作成 • エフェクトのアタッチシステム作成 • 関連の処理 • Tool作成 • デバック環境 • 最適化 環境について 主 な 改 造 、 拡 張 箇 所
  • 15. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エフェクトの改造、拡張のベース • エディター • Cascade • アセット • Particle System • Component • Particle System Component • Module • FXSystem • その他は必要に応じて作成。 基本的には既存のクラスなどを流用 環境について
  • 16. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エフェクト用のBPは専用Actorを作成 • レベル上のエフェクト配置は専用アクター • 拡張系の処理にアクセスするため。 • 配置後に分かりやすくするため。 • ゲーム側の処理にアクセスしやすいため。 • カットシーンではAEmitterを使う事も容認 環境について
  • 17. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エフェクトの生成環境 • プログラム、BPから自由に生成 • デフォルトオブジェクトで作ることもある。 • 関数は”Spawn Emitter”系を拡張した物を使用。 • デザイナーはアタッチシステムを利用して生成。 • Notifyなどを利用して生成 環境について 生 成 処 理
  • 18. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • コードの改造、拡張時にはコメントを必ず残す。 // v SQEX_CUSTOM_○○○○ v [○○対応] /*○○対応*/ // ^ SQEX_CUSTOM_○○○○ ^ [ここまで。] 環境について 主 な 改 造 、 拡 張 箇 所
  • 19. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 作ったModuleについて… • Base含めて100個ほど追加しました。 • 描画系 :26 • Spawn系 :19 • Particle制御 :18 • Emitter制御 :15 • ポスプロ制御 :8 • 実験系 :7 • マテリアル制御 :4 • 外部制御 :2 • Parameter制御 :2 環境について:作成Module
  • 20. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 自己紹介 • 環境について • なぜ拡張したのか • 改造のメリットとデメリット • 改造した物と作った物 • おまけ • まとめ 内容
  • 21. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. なぜ改造したのか
  • 22. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • デザイナーがUE3やUE4を検証した結果、、、 • 結果:厳しい意見が出た。 • 機能面が足らない。 • エフェクト一つで起承転結が作り辛い • エフェクトの作成速度の問題 • 最終的なエフェクトの品質 なぜ拡張したのか:その1
  • 23. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Cascadeの開発停止 デザイナーからの要望が叶う事が無い。 • 新Effect開発環境 いつまでも来ない。。。 なぜ拡張したのか:その2
  • 24. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • BPでのエフェクト作成は難しい! • 当初はBPのノードを駆使してエフェクトを作れないかと考えた。 • 結果 デザイナー:BP制御でのエフェクト作成が難しい。 • 直観的ではない • BPは分かり辛い • 画面一つで完結しない。 • など意見が出て難しいことが分かった。 なぜ拡張したのか:その3
  • 25. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 改造決定!! なぜ拡張したのか:改造決定
  • 26. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. なぜ拡張したのか:改造決定 • 当初の方針 • そこまで拡張はしない。 • UE4を選択した以上はそこまで無理をしない・・・ • BPも使っていこう。 • 足りない機能は無理せず作る。 • ツールはプラグインで作る。
  • 27. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. なぜ拡張したのか:改造決定 • 実際の方針 • そこまで拡張はしない。 • それなりに改造、拡張する。 • 描画回りのModuleも追加していく。 • 足りない機能は無理せず作る。 • 足りない機能はなるべく作る。 • BPで補えるところは補おう。 • 基本はParticle Systemで制御する。 • ツールはプラグインで作る。 • 変わらない。
  • 28. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 自己紹介 • 環境について • なぜ拡張したのか • 改造のメリットとデメリット • 改造した物と作った物 • おまけ • まとめ 内容
  • 29. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 拡張のメリットとデメリット
  • 30. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. メリットに感じたこと・・・ 拡張のメリット
  • 31. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 標準で出来ないことが出来る。 デザイナーの要望に応えやすくなる。 制作効率が上がります。 クオリティーも上がります。 拡張のメリット
  • 32. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • BP関連の問題が発生しなかった。 コードでの拡張が殆どなので、BP関連の問題は出なかった。 コードだと不具合が出ても調査しやすい。 最適化がしやすい。 BPをコードに置き換えることも無かった。 コードだから分かりやすい。 拡張のメリット
  • 33. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 実験的な作業が自由にできます。 • 空のプロジェクトでの実験が容易。 空プロジェクトは起動が早い ゲーム側のプロジェクトは起動が凄く遅い。 拡張のメリット
  • 34. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 自由にできる!! 拡張のメリット
  • 35. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 改造してデメリットと感じたこと 拡張のメリット
  • 36. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • アップデート地獄 • 3ヶ月の間隔でやってくるアップデート • 約2週間の開発ストップ!最大1.5ヶ月ストップ! • アップデートはマージ作業と確認作業 拡張のデメリット
  • 37. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 改造、拡張は自己責任 • 不具合はUDNに聞いても改造済みの場合は対処が難しい。 • まずは通常版で発生するかを検証する必要がある。 • 対処されても2,3個次のバージョンで反映だったりする。 拡張のデメリット
  • 38. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 他プロジェクトとのエンジン共有が難しい 拡張のデメリット
  • 39. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 自己紹介 • 環境について • なぜ拡張したのか • 改造のメリットとデメリット • 改造した物と作った物 • おまけ • まとめ 内容
  • 40. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 作った物や改造した物
  • 41. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Cascadeエディターの改造 • エフェクト停止、コマ送り • キーボードから操作可能 • Timeline • 拡張ビュー • カーブエディターの拡張 • Distributionの追加 • Alt+クリック挙動の追加 • Locked Axes不具合対応 • Preset Emitter • Emitterの追加が楽になる。 改造:Cascade • 3DViewの拡張 • 表示情報の拡張 • Motionの移動をXTopで移動 • カメラ情報の保存 • ポスプロの設定 • カメラリセット • Emitter Viewの拡張 • 親子関係の色分け • 閉じた時の名前表示 • 同名Emitterへの対応
  • 42. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 改造:Cascade
  • 43. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Timeline Emitterの寿命などが一目で分かるようなTimelineを実装 • Emitterの寿命やカーブのKeyの視認性向上 • カーブデータのKey追加や移動 • Moduleのパラメータ変更 改造:Cascade:Timeline
  • 44. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Cascadeの拡張ビュー • Module&Emitterのプリセットリスト • ModuleやEmitterのプリセットを検索 • ダブルクリックでModuleやEmitterを追加 • 各種ショートカットボタン • ShaderComplexityの切り替え • ワイヤーフレーム • MotionのON,OFF • Geometry表示 • RealTimeの切り替え • など 改造:Cascade:拡張ビュー • 簡易Emitterリスト • Emitterの切り替え • 位置変更 • Emitterの開閉 • Solo Mode • Bounds • ループ切り替え • Moduleの追加削除 • 検索機能 • etc
  • 45. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • カーブエディター関連 • Module選択で直接カーブエディターに表示 • 標準はカーブボタンをクリックしないと表示されない。 • これがかなり不評だった。 • Current Tabは一切使用していない。 改造:Cascade カ ー ブ 関 連
  • 46. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • カーブエディター関連 • 軸表示のボタンをAlt+クリックの挙動を 追加 • 全軸表示時 : X軸をAlt+クリック = X軸のみ表示 • CurveデータもAlt+クリックで制御可能 改造:Cascade カ ー ブ 関 連
  • 47. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • カーブエディター関連 • Locked Axes時の不具合の修正。 • Locked Axesで軸を指定すると、 カーブデータで編集できる軸が標準UEだと壊れたまま。 • これはUDNでは修正しないという答えがついたので対応 改造:Cascade カ ー ブ 関 連
  • 48. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Distribution関連 • Distributionのタイプを追加 • デザイナーからの要望で作成 改造:Cascade カ ー ブ 関 連
  • 49. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • SQEX Distribution • 最大と最小値に偏りがあるランダム • FloatとVectorを用意 • カラーやサイズなどに設定可能。 改造:Cascade:カーブ関連
  • 50. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • SQEX Gauss Distribution • 正規分布感覚のランダム 改造:Cascade:カーブ関連
  • 51. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エフェクト停止、コマ送り • エフェクトの停止とコマ送り機能を追加 • ショートカットキーとボタンを用意 • カメラ座標を保存 • PS側に終了時のカメラ座標を保存 • 再びCascadeで開かれた時に終了時のカメラを再現。 • めちゃデカいエフェクトの場合は便利! • カメラ位置をリセット • Home Keyでカメラ位置をリセット • エフェクトの位置を見失ったときなどに利用します。 改造:Cascade:3DViewの拡張
  • 52. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Preset Emitter • 事前に用意されたEmitter • 基本セットはコードに組み込んである。 • プリセットはアセットベースで追加が可能 • Data Assetにプリセット用のPSが設定が可能。 • 特殊な設定をしたものを自由に設定できます。 改造:Cascade:3DViewの拡張 • 3DViewの拡張
  • 53. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Cascade上のPSCのTransform制御 • 表示しているPSCの座標、設定できる項目を追加。 • 特定の回転やスケール時のみ不具合が起きるとかの確認に便利。 改造:Cascade:3DViewの拡張
  • 54. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Particle System 改造:Particle System
  • 55. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Particle System • SQEX Tag • 半透明優先 • ソートオフセット • 改造:半透明の描画順の計算時の距離に下駄を設定できる。 • Cast Shadow • デカール影響度 • ベースカラーとスケール 改造:Particle System
  • 56. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • SQEX Tag • エフェクトに対するコメントの設定 • 担当者の設定 • タスク状態の設定 • Moduleの内容(bitフラグ) など 専用のツールで検索することも可能です。 • 今後はタスク状態などを外部の情報と連携させる。 • 例:アセットの説明追加 UPROPERTY(EditAnywhere, Category = "SQEX Tag", AssetRegistrySearchable,meta = (DisplayName = "説明") FString Description; 改造:Particle System Tagの入力 CBなどでの表示 設定
  • 57. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Particle System • ソートオフセット • 半透明の描画順を決めるためのキーにオフセットを設定 そうすることで、同一座標のエフェクトでも描画順を制御できます。 • 標準の”TranslucencySortPriority”では大きなくくりでしか制御できない。 ソースファイル:”TranslucentRendering.cpp” “CalculateTranslucentSortKey”内の”SortByDistance”で求められる“SortKey”に オフセット値を加算するだけでチラつきが抑えられる。 改造:Particle System
  • 58. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Particle System • ベースカラーとベーススケール • PS側に設定できるエフェクトのカラーとスケール • 全体のParticleのColorやSizeに反映される。 改造:Particle System
  • 59. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Particle System Component 改造:Particle System
  • 60. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tick Groupの追加と変更 • Group ID • ループエンド受け取り • EmitterのLOD最大時に動作停止 • 外部との連携 改造:Particle System Component • サウンドアタッチ • Dynamic Material化 • 親の速度などの情報を取得 • エフェクトのフェード • エフェクトの再生ディレイ • Instance Parameter拡張 • Particle System Component
  • 61. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tick Groupの変更と追加 • デフォルトを”DuringPhysics”から” EndPhysics”変更 • 他の更新の後にする必要があった。 • 標準でも”HasPhysics”をTureにすると” TG_PrePhysics”にはなる。 • “LastEffectUpdate”を追加 • 他の処理が終わった後に処理するエフェクト用 • そのフレームのプレイヤー情報やカメラ情報を必要とするエフェクト用 改造:Particle System Component
  • 62. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 他のTick Group • Early • SQEX LevelScript • LevelScriptActor用 • SQEX PrePre Physics • 通常キャラよりも先に動作したいキャラ用 • Pre Physics • Start Physics • During Physics • End Physics • Post Physics 改造:Particle System Component • SQEX PostUpdateTransform • 攻撃判定など • SQEX PostUpdateManager • マネージャー系の処理 • SQEX LastEffectUpdate • 最後に処理したいエフェクト用 • Post Update Work • Last Demotable • Newly Spawned
  • 63. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Group ID • エフェクト生成時に設定されるエフェクトの識別ID • 例:同一エフェクトを使用しカラー • 0:通常発生 • 1:強化状態で発生 など、分けて同じエフェクトでも状態を分けておく。 • 設定は生成時に行われる。 • アニメーションに紐づけることが多く。 • アニメーション切り替え時にEffect Group IDを設定して再生することで、 そのGroupIDがエフェクトにもセットされる。 改造:Particle System Component G r o u p I D
  • 64. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Group IDと一致するエフェクトのみ処理 • エフェクトの生成処理 • エフェクトの終了 • パラメータ制御 • 特殊処理の通知 • など 改造:Particle System Component G r o u p I D
  • 65. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • サウンドのアタッチ • エフェクト発生時に再生するサウンド • エフェクト終了時に発生せる事も可能 • 通常は無条件で再生 • Group IDと一致する時のみ再生も可能 • 設定は専用のData Assetで設定 • サウンドは複数設定可能 改造:Particle System Component サ ウ ン ド の ア タ ッ チ
  • 66. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • サウンドのアタッチ • その他 • Emitterへアタッチ • Emitterにアタッチしないと不自然なSEもある。 • Tail系の座標履歴へのアタッチも可能です。 • 長めの軌跡エフェクトでも自然にSEをアタッチ • 全て” UParticleSystemComponent::FinalizeTickComponent”で処理 改造:Particle System Component サ ウ ン ド の ア タ ッ チ
  • 67. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エフェクトのフェード • エフェクトのフェードイン、フェードアウトが可能 • マテリアル側でParticle ColorのAlpha値を利用している必要 • フェード処理は専用のModuleからも可能 • 基本はBPやプログラムから実行する。 • Moduleを利用してエフェクト自身でフェード処理を行う事も可能 改造:Particle System Component
  • 68. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エフェクトの再生ディレイ • エフェクト生成してから処理するまでのディレイ • EmitterのDelayとは別の処理。 • PSCのTick Componentが処理を処理するまでのディレイ • 主に生成時に外部から指定されることが多い 改造:Particle System Component
  • 69. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Instance Parameterの拡張 • UObjectをParameterに追加 • アタッチしているMeshや他のオブジェクト認識用に追加 改造:Particle System Component
  • 70. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Emitter 改造:Particle System
  • 71. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 区間ループ機構 • Emitterの動的生成 • Coordinatesの置き換え • Emitter優先度 • View距離でのParticle数制御 • Finalize Tick追加 改造:Emitter • Near Clip Fade • Emitterの置き去り機能 • LODの拡張 • マテリアルでEmitter Timeを取得 • Emitter Spaceでのローカル化 • バッチング処理
  • 72. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 設定例 • EmitterTimeの処理を変更 • Emitterに”Loop,InLoop,Loop End“の概念を追加 “FParticleEmitterInstance::Tick_EmitterTimeSetup”とは別の処理を作成 • 理由 • 拡張する理由のトップ • エフェクト一つで表現するために区間ループが必要だった。 • 通常版の”EmitterTime”の更新だと拡張の妨げになった。 • “EmitterDelay”を設定すると取得する場所によって時間が変わる。 • Time更新時に”EmitterDelay”分引いて、Tickの最後に加算する処理がある。 改造:Emitter 区 間 ル ー プ 機 構
  • 73. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エフェクトの終了処理 • Loop中に専用の終了通知を受けるとLoopEndの処理をして終了 • 標準の”Deactivated“が挙動が怪しいかった。 • 無限寿命のParticleの対応 • 無限寿命のParticleだと標準では思い通りに消えない? 標準だと即消えてしまったりしてしまう? ループしていても無限寿命のParticleが自然に終了されるように対応 改造:Emitter
  • 74. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Emitterの動的生成 • 親Emitterに“Parent Module”を設定し任意の タイミングで子Emitterを生成 • また子ではなく、ただ生成するだけも可能。 • 初期化でEmitterを生成しない処理を追加 • 標準のままだと生成したタイミングでEmitterが 生成されてしまうため。 改造:Emitter
  • 75. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Emitterの動的生成の拡張時の罠 • Emitterの生成と削除を繰り返すと無限にEmitter Instanceが増加 • 通常のUEではEmitterはDeleteされるが、 Emitter InstanceのリストはNullが設定されるだけ。  リストから不要になったEmitterを削除する処理を追加していた。 • 4.12で描画回りの最適化が入った。 • その影響でEmitterの動的生成も影響を受けました。 • 今のバージョンでの動的Emitterの追加と削除には注意が必要 改造:Emitter
  • 76. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Emitterの動的生成の拡張時の罠 • Emitterの動的生成を実装時は • “FParticleSystemSceneProxy”内の TArray<FParticleVertexFactoryBase*> EmitterVertexFactoryArray; このリストの中身が適切かどうか確認する必要がある。 • 増えたり消えたりすると、リストの内容と合わなくなる。 このアップデートによる不具合がとても印象的だった・・・・ 改造:Emitter
  • 77. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Emitterの動的生成の拡張時の罠の解除 • 解決策としてEmitter固有のIDを作成 キャッシュリストから取得する方法に変更 改造:Emitter
  • 78. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Coordinatesの置き換え • Emitterの座標、回転、スケールの制御が可能 • “Transform Module”で制御 • 基本は加算式で制御されます。 • カーブを利用して制御します。 • ランダム値や固定値も利用できる。 • Emitterのビルボードが可能 • “FParticleEmitterInstance::UpdateTransforms”の置き換え 改造:Emitter
  • 79. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 親子関係 • Emitter間で親子関係を組める。 • 例 • 真ん中:Root :回転 • 2番目:子Emitter:回転+スケール • 3番目:孫Emitter:回転 • 引き継げる内容 • 座標、回転、スケール、カラー情報など • 引き継ぐ内容は”Takeover Module”で決定 • その他の情報も共有可能 • 座標履歴やParticle情報 改造:Emitter
  • 80. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Emitter優先度 • Emitterに優先度を設定することが可能です。 • 通常Emitterは生成順にリスト化されますが、 優先度を設定することで、 処理や描画の順番を制御することが可能です。 改造:Emitter
  • 81. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • カメラとの距離でParticle数の抑制 ・カメラとの距離が離れるとParticle数を制御する処理 カメラとの距離とBound RadiusからSpawnRateを求める。 • 別の設定で、近い場合にParticle数を減らす設定もある。 • 標準のLODだとミスが発生する可能性があるので、 背景エフェクト以外は殆ど利用していません。 改造:Emitter
  • 82. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • LODの拡張 • LOD切り替え時に再度ParticleをBurstさせる。 • LOD最大レベル時のTickComponent停止 改造:Emitter
  • 83. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Near Clip / Fade • カメラとの距離でParticleのSizeやAlphaを制御 • Fadeの開始距離やAlpha等の最小値は自由に設定できます。 • Alpha値が0.0fになるとParticleサイズを0.0fにする。 • 処理 • CPU系のParticleは各頂点データ計算時に処理 • GPU Particle系は描画時にシェーダ側で計算 改造:Emitter
  • 84. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Emitterの置き去り機能 • Emitterの座標をWorld上に置き去ります。 改造:Emitter
  • 85. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Emitter SpaceでParticleをローカル化 改造:Emitter • 標準:通常 • 標準:Local Space ・拡張:Emitter Local Space
  • 86. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 無限寿命Particleに関する制御 • 無限寿命のParticleもループエンド後に自動的に削除。 • 削除するタイミングはEmitterの寿命などを考慮 改造:Emitter
  • 87. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Particle Module 改造:Module
  • 88. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Moduleの追加について簡単に紹介 改造:Module
  • 89. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Moduleの追加自体は簡単 1. クラスを用意 • “UParticleModule”を親とするクラスを用意 • “UCLASS”に” abstract”を設定したクラスがベースになる。 2. コンストラクタの宣言 改造:Module
  • 90. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • それはどんなModule? • Particle生成時に処理する? = bSpawnModule • Emitterの更新時に処理をする? = bUpdateModule • 他のModuleの更新後に処理する? = bFinalUpdateModule • ループ時に処理する? = bRequiresLoopingNotification • スレッドセーフ? = CanTickInAnyThread() • PSCのFinalizeTickで処理するように拡張 • デバック表示が必要か? = bSupported3DDrawMode 改造:Module
  • 91. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Module作成で気を付けること • GPU Particleで処理する場合は宣言が必要 • “bUpdateForGPUEmitter = true;”にする。 • Mesh Particleの回転を制御する? • “TouchesMeshRotation()”で“true”と返す必要があります。 • 並列動作時に参照される可能性があるカーブデータがある。 • CanTickInAnyThread()内で“Distribution::OkForParallel()”をコール 改造:Module
  • 92. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Particleに情報を追加する。 • “UParticleModule::RequiredBytes”で追加したいデータの 構造体のサイズを返します。 • するとParticle一個で確保するサイズが増加します。 • 参考例 • FHoge* HogeData = (FHoge*)((uint8*)&Particle + HogeDataOffset); • “HogeDataOffset“は”UParticleEmitter::ModuleOffsetMap”にあるので、 一致するModuleのサイズを取得して使用 改造:Module
  • 93. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Emitter用の情報を追加する。 • Moduleで使用するEmitter毎の情報も追加することが出来ます。 • “RequiredBytesPerInstance”で必要な構造体サイズを返します。 • Particleの追加データと同様に” ModuleInstanceOffsetMap”にオフセット が設定されているので、そこから引っ張ってきます。 • アクセス FHogeData* HogeData = (FHogeData *)(Owner->GetModuleInstanceData(this)); 改造:Module
  • 94. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • “Distribution”のご利用は計画的に・・・ • UObjectの数が増えます。 • GCで問題になることも・・・ 改造:Module
  • 95. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Type Dataの追加は少し違う • “UParticleModuleTypeDataBase”を親とするクラス • 新しい“Emitter Instance”クラスを用意 • “CreateInstance()“で追加した”Emitter Instance”をnew • Type Dataは”Render3DPreview”が呼ばれないので拡張 • 3Dデバックが出来ない。 • あとはEmitterInstanceに処理を書く。 改造:Module
  • 96. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 作成して有用だったModuleのご紹介 改造:Module
  • 97. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Spawn Module 改造:Module:生成系
  • 98. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Range • Ring • Any Vertex Spawn • Bone Attach • Vertex Spawn • Quadrangle • Spawn Parent History Pos 改造:Module 生 成 系 • Parent Particle Pos • Spawn PS • Spawn Sea Surface • Raycast • Spawn Actor • Spawn Fluid
  • 99. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 拡張生成系Moduleの概要 • 標準のSpawn系の高機能版のModule • 他の生成Moduleの併用可能 • Emitterの生成にも利用可能 • 子Emitterの生成位置の為に利用可能 • EmitterをRing上に配置したいなども手軽にできます。 改造:Module 生 成 系
  • 100. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Ring • 任意頂点からParticleを生成 • 最低1点~自由に頂点数を設定 • 外側、内側と別々に半径設定が可能。 • ドーナツ型も作れます。 • 扇状にすることも可能 • 頂点間から発生させることも可能 • 基本はランダムな頂点から発生させていることが多い。 • 頂点順に設定するとリングを作りなら粒子を生成するようなエフェクトが手軽にできる。 改造:Module:生成系 生 成 系
  • 101. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Range • “Sphere Module”の高機能版 • 発生の偏り • 発生角度 • 縦軸から何度の範囲で発生するか指定 • Meshは球の法線方向に向く 改造:Module 生 成 系 偏りパラメータ例 • 0.0:完全に中心 • 0.2:中心付近に発生しやすい • 0.5:球内にランダム • 0.7:外側に発生しやすい • 1.0:完全に外側
  • 102. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Any Vertex • Ring同様に球状の頂点を自由に設定可能 • 上下の頂点を消すことでシリンダーも可 • 縦横のスケール制御も可能 ひょうたん形状や円錐等の形状も出来ます。 改造:Module 生 成 系
  • 103. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Raycast • レイチェックするModule • EmitterやParticleの発生位置チェック • Beam系のEnd位置の自動チェック • ヒット位置の法線に生成した物体を傾けることが可能 • 生成条件を指定 • ヒットしたポリゴンの”Physical Material”をチェックする。 • 水や土の時のみ発生させたり、 逆に一致しない時のみ生成することもできます。 改造:Module 生 成 系
  • 104. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Spawn PS • 別のエフェクトを生成するModule • 基本的には生成したEmitterへアタッチ • アタッチしない置き去りも可能。 • 生成したエフェクトのカラーやスケール値など自由に変更可能。 • Dynamic化してマテリアルのパラメータも制御できる。 • 自由なタイミングでループエンド出来る。 • 生成系Moduleと併用してRing上に別のエフェクトを生成するなどが可能。 • Emitter親子関係で作るよりは並列化されるので負荷が隠蔽されやすい。 • 半透明の優先もある程度適切になる場合がある。 改造:Module 生 成 系
  • 105. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Spawn ParticleSystem実装時のご注意 • 他のComponent制御はFinalizeTickで • Emitter InstanceにFinalizeTickを追加する拡張が必須 • Cascadeの更新は一つのPSCしかやってくれない。 • 複数のComponentを更新する場合は拡張が必須 • “UCascadeParticleSystemComponent::ParticleTickComponent” で制御したいComponentの“TickComponent”をコールする必要があります。 改造:Module 生 成 系
  • 106. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 頂点発生系 • Skeletal Meshの発生とStatic Meshの頂点から発生する専用のModule • Skeletal Meshであれば直接アクセスして取得します。 • 任意のSkeletal Meshの頂点情報を削除している場合は、 CPUでアクセスできるように拡張します。 • Static Meshの場合は別途データを用意した。 • 直接使用する場合は”AllowCPUAccess”にチェックを入れる。 • 実機でアクセスできるようにします。 • 頂点カラーは別途データを用意 • 本プロジェクトは頂点カラーをカラーとしては利用していないことが多いので、 別のデータを用意する必要がありました。 改造:Module 生 成 系
  • 107. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Type Data(描画系Module) 改造:Module: Type Data
  • 108. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Control • Tail Shape • Tail Shape Ex • Tail Polygon • Tail Tube • Tail Mesh • Tail Mesh March • Tail Mesh Circulation 改造:Module:Type data,描画系 • Restraint Tail • Decal • Thunder • Dynamic Shape • Fragment • LineRoad Mesh • Gather After Burst • Grass Force • Skeletal Mesh • LineRoad • Triangle Particle • Voxel Mesh • GPU Mesh Particle • GPU Fluid • 2D Fluid
  • 109. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Contorl • Emitterなどの制御系Module • 画面効果、外部制御などのModuleを設定 • ParticleのSpawn処理をしない。 改造:Module:Type Data
  • 110. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tail:しっぽ機能 • イメージは”Ribbon, Anim Trail”の高機能版 • Emitterの座標履歴を利用 • 座標履歴は骨情報の利用や、外部から設定可能 • 先頭から末尾までの制御が可能 • 0.0f~1.0fでカラーやサイズを制御 • 履歴制御用のModuleで座標履歴を加工 改造:Module:描画系:Tail
  • 111. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tail Shape • Tail系専用Module • 描画系と同じ名前ですが、こちらは座標履歴を制御するModule • 先頭から末尾までのサイズやカラーの制御 • 上記のパラメータのスクロール • Particleの回転(ツイスト) • その他のオブジェクトと干渉する機能。 など、Tailの座標履歴に関係する処理を色々やります。 改造:Module:描画系:Tail
  • 112. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tail Shape • ツイスト機能 • 先頭から末尾までのParticleを回転させます。 • 先頭から末端まで何回転するかを設定。 • 例:ツイスト状態でUVを2倍にしたもの。 改造:Module:描画系:Tail
  • 113. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tail Shape • Scroll機能 • 先頭から末尾までのスケールやカラーを スクロールさせる機能です。 • 例 上から下へParticleのスケールをスクロール 改造:Module:描画系:Tail
  • 114. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tail Shape • SpriteをEmitterの軌跡上に配置するエフェクト • Particleをルール通りに配置するので、 サイズや長さを指定することできます。 • 標準のSpawn PerUnitでも似た表現は 出来るが、より制御しやすくなっている。 改造:Module:描画系:
  • 115. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tail Polygon • リボンの高機能版みたいな物。 • これも標準のリボンとは違い成形しているので 不自然に長い、短いが出ない構造 • 最大4ラインのポリゴンで描画 • 縦横をAlphaやカラー制御が可能。 • UV制御 • UV反転機能 • 軌跡の移動距離をUV値に変換する機能 • U値をカーブで制御 改造:Module:描画系:
  • 116. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tail Tube • TailPolygonをチューブ状に描画 • 立体感のある軌跡エフェクトを 作ることが可能 • ポリゴンのライン数など細かく設定可能。 改造:Module:描画系:
  • 117. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tail Mesh • Spriteの代わりにMeshを描画するTail • 鎖などの表現で利用 • 表現別にTail Mesh MarchとTail Mesh Circulationがある。 • これは特殊な表現の為に作成しました。 改造:Module:描画系:
  • 118. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tail Mesh • Tail Mesh March 改造:Module:描画系: • Tail Mesh Circulation
  • 119. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tail Wave Module • Tail系専用Module • 座標履歴を加工するModule • 指定方向に座標履歴を伸ばす。 • 揺らぎを設定 • 一定間隔でランダムな方向を座標履歴に加える。 改造:Module:描画系:Tail
  • 120. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tail Noise Module • Tail系専用Module • 座標履歴を加工するModule • 座標履歴のスケールやカラーにノイズを設定 • ノイズのかかり具合もカーブで制御可能 • 徐々にノイズが広がって消える。も可能 改造:Module:描画系:Tail
  • 121. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tail Inertia • Tail系専用Module • 座標履歴に慣性や遠心力を加えるModule • 慣性のつもりで作っていったが、 標準は遠心力っぽい • パラメータを負の値を入れると慣性っぽくなる。 改造:Module:描画系:Tail
  • 122. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Decal • PSCからDecal Componentを生成 • BPを使用せずにデザイナーだけでDecalの制御が可能 • 透明度やサイズなどをCurveで制御 • ループエンドなどで綺麗に消せます。 • エフェクトと同じ時間を共有 • マテリアルのTimeでエフェクトと同じ時間が取得可能 • スローなどの演出が簡単 改造:Module:描画系
  • 123. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Tail Decal • 他のTail系同様の処理でDecalを描画 改造:Module:描画系
  • 124. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Skeletal Mesh • Skeletal Meshを生成して制御するModule • 任意のアニメーションが再生可能 • 指定時間で停止させた状態で生成可能 • ループエンドで別モーションの再生などいくつかの機能があ ります。 • Meshの頂点からParticleの生成可能 • 複数のSkeletal Meshを生成しアタッチが可能 • 外部からのMesh指定 • 生成したMeshのマテリアルパラメーターの制御も可能 改造:Module:描画系
  • 125. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Dynamic Shape • 動的にスプリング形状のMeshを生成 • 現状一つの形状のみ • スプリングなら結構自由な形状が作成可能 • UV制御可能 • 十字ポリゴン 改造:Module:描画系
  • 126. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 他にも特殊表現用に専用のType Dataを作成 • Particle Systemのみ作成されたボスとかあります。 改造:Module:描画系
  • 127. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Emitter制御系 改造:Module:Emitter制御系
  • 128. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • All Fade • Component Cutoff • Emit Init Transform • Emit Transform 改造:Module E m i t t e r 制 御 系 • Take over • Init Scale • Parent • Raycast
  • 129. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Transform • Emitterの座標系を制御するModule • 座標、回転、スケールを制御 • 重力の設定が可能。重力落下出来る。 • Velocityの設定が可能。加速度を付けて移動が可能 • カーブを書いたり直接値を設定するなど自由です。 改造:Module E m i t t e r 制 御 系
  • 130. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Init Transform • Transform計算時のベースとなる値 • Emitterのループ毎にランダムな値に変更することも可能 改造:Module E m i t t e r 制 御 系
  • 131. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Parent Module • 親子関係構築用のModule • 任意タイミングで子Emitterを生成できます。 • Particleの死亡時などにも生成することが出来ます。 • 生成数の指定が出来ます。 • 座標、回転、スケールのオフセット • 生成した子Emitterのループエンド制御 改造:Module E m i t t e r 制 御 系
  • 132. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Takeover Module • 親Emitterの何を引き継ぐか設定す るMdoule • 複数の引き継ぎタイプ • 自身のParticleがEmitterのどの要 素を引き継ぐか指定も可能 • Mesh Particleのビルボード時に Emitterの影響を無効化 改造:Module E m i t t e r 制 御 系
  • 133. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Component Cut Off • Componentの影響を制御 • 初期はTakeoverと一緒だった。 • Takeoverが複雑になってきたので分離 改造:Module E m i t t e r 制 御 系
  • 134. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Particle制御系 改造:Module
  • 135. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Attach Particle • Depth Offset • Curl Noise • Local Particle • Particle Around • Raycast • Mesh Pivot 改造:Module P a r t i c l e 制 御 系 • Sphere Force • Box Force • Particle Color • Particle Location • Particle Rot • Particle Scale • Particle State
  • 136. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Attach Particle Module • ParticleをアタッチするModule • Glow系のParticleやMesh Particleを制御によく使います。 • ParticleがEmitterの座標や回転値と同期する。 改造:Module P a r t i c l e 制 御 系
  • 137. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Depth Offset Module • Particleの描画時の深度にOffsetを設定できるModule • Clip空間で計算 • ”Pixel Depth Offset”の半透明版 改造:Module P a r t i c l e 制 御 系
  • 138. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Local Particle Module • Particleをローカル化します。 • Emitterからの相対位置を計算します。 • EmitterLocalSpaceを実装するまではこちらを利用していた。 • Module利用の場合はGPUParticleには使用できない。 改造:Module P a r t i c l e 制 御 系
  • 139. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Local Particle Module • Tail系の座標系のローカル化も担当 • 座標履歴をローカル化 改造:Module P a r t i c l e 制 御 系 • 座標履歴そのまま
  • 140. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Mesh Pivot Module • Mesh ParticleのPivot • Mesh ParticleのPivotが無かったので実装しました。 • Mesh Particleの重心を調整が可能 • 実装例 • “MeshPivot“をUniformBufferなどでシェーダーに渡す。 • MeshParticleVertexFactory.ush float4 CalcWorldPosition(FVertexFactoryInput Input) float4 location = float4(/*Pivot Offset*/MeshParticleVF.MeshPivot.xyz, 0.0f) + Input.Position; float3 WorldPosition = mul(location, Transform).xyz + ResolvedView.PreViewTranslation; 改造:Module P a r t i c l e 制 御 系
  • 141. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Particle Location Module • Particleの生成位置からの座標オフセットするModule • 疑似的なバウンドをさせたり、X軸方向に移動してから、 元の位置に戻るParticleなどが作成できます。 改造:Module P a r t i c l e 制 御 系
  • 142. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Particle Rot/Color/Scale Module • Particleの角度やカラー、スケールを設定するModule • それぞれ別々のModule • 標準のMesh Particleの回転用Moduleが使いづらいと言う話から生まれた。 • 標準だとRot Rateのパラメータが分かり辛い。 • 初期回転値、回転アニメーション、それに対してのスケール値で制御 • 回転の制御単位は度 • EmitterTimeでのCurve制御が可能 改造:Module P a r t i c l e 制 御 系
  • 143. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 既存Moduleの拡張 改造:Module:既存Moduleの拡張
  • 144. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 既存Moduleの拡張 • Mesh Particleの拡張 Billboard 複数Mesh 連番対応 • UV置き換え機能 • Dynamic Module 改造:既存Moduleの拡張 既 存 M o d u l e の 拡 張 • Actor Collision • Initial Size • Sub UV
  • 145. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Mesh Particle その1 • Billboard拡張 • Camera Facingとは別の処理を追加 • Camera FacingやLock Axisが不評 • カメラビルボード、軸ビルボード、スクリーンビルボードがある。 • Emitterの軸も利用可能 改造:Module 既 存 M o d u l e の 拡 張
  • 146. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Mesh Particle その2 • 複数のMeshを一つのEmitterで処理できるように拡張。 • 一つのEmitterに複数のMeshを設定して、 Particle毎にランダムに表示するMeshを変えることが出来ます。 改造:Module 既 存 M o d u l e の 拡 張
  • 147. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Mesh Particle その3 • Meshの連番アニメが使えるように拡張。 • 設定した複数のメッシュを一つのParticleで切り替えて表示 • 連番の再生速度や時間がカーブで設定可能 • そこそこ良い感じにアニメーションしているように見せれる。 • 連番リストは複数設定可能 • プログラム側からどのMeshListを使うかも指定できます。 • これによってエフェクトが空中ではこの連番、 地面に着地してからはこの連番という事も可能です。 改造:Module 既 存 M o d u l e の 拡 張
  • 148. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Mesh Particle その4 • Meshを外部から指定できるように対応 • BPやプログラムから使用したいMeshを設定することが可能 • 同じエフェクト、同じEmitterでも描画を指定できる。 改造:Module 既 存 M o d u l e の 拡 張
  • 149. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • UV置き換え機能 • UVの反転 • UVの回転 • UVのスケール これらを”Required”から制御できるように拡張 改造:Module 既 存 M o d u l e の 拡 張
  • 150. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Dynamic Module Emitter Instance側にDynamic Parameterの値を保持 • Random使用時にTail系(Ribbon)系のエフェクトでDynamiParameterの値 を取得するとParticle毎に値が違うので困ることがあった。 加算値を取得できるように対応 • MaterialでTimeをスケールしてUVスクロールの速度制御に使用していた。 スケール値で動的に変化させると、不具合が起こるので加算値の対応をし た。 改造:Module 既 存 M o d u l e の 拡 張
  • 151. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Dynamic Module • Particle毎に加算値を取得できるように対応 • GPU Particleで使用できるように拡張 • Emitter Instance側にDynamic Parameterの値を保持 • Instance Parameterでも外部から指定すれば可能 改造:Module 既 存 M o d u l e の 拡 張 • 例: • 左:Emitter側に保存したランダム値 • 右:通常のUniformランダム
  • 152. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Actor Collision • Mesh Particle時にMeshのBoundsを無視する処理を追加 • 標準ではMeshのBoundsのサイズを必ず使用していた・・・? • レイチェックのサイズをParticleサイズとは別のサイズでチェック • 衝突後にヒット座標が直接セットされていた。 その影響でパカつくことがある。 セットしないフラグを追加して対応 改造:Module 既 存 M o d u l e の 拡 張
  • 153. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Initial Size • Particleの反転機能 • 指定確率でSizeが反転するように対応 • 無改造でもMirrorタイプはあるが要望により実装した。 改造:Module 既 存 M o d u l e の 拡 張
  • 154. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Sub UV • UVのランダム開始を追加 • Requiredの“InterpolationMethod”にUVのランダム開始タイプを追加 改造:Module 既 存 M o d u l e の 拡 張
  • 155. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Post Process制御系 改造:Module
  • 156. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Post Process制御系 • Filter • Radial Blur • Screen Blur • Bloom Radial Blur • Gauss Blur 改造:Post Process制御系 P o s t P r o c e s s 制 御 系 • Post Fringe • Post Aura • Post Glare
  • 157. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Filter • 種類 • 「合成」「加算 」「減算 」「ネガポジ反転」「グレースケール」 • 特定のキャラのみマスクする機能付き。 • おまけでアウトライン表示機能を付けています。 • グレースケールでアウトラインを出すと昔のアニメ風になります。 改造:Module P o s t P r o c e s s 制 御 系
  • 158. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Filter • 種類 • 「合成」「加算」「減算」「ネガポジ反転」「グレースケール」 改造:Module P o s t P r o c e s s 制 御 系
  • 159. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Radial Blur • Radial Blurを制御します。 • 放射状にブラーを発生させます。 • シーンカラーを使用してピクセルを 引き延ばしながら作り出す放射ブラー 改造:Module P o s t P r o c e s s 制 御 系
  • 160. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Screen Blur • スクリーンブラーを制御します。 • 1f前のシーンを拡大しながら合成するBlur 改造:Module P o s t P r o c e s s 制 御 系
  • 161. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Bloom Radial Blur • 現在のフレームの絵を使用してピクセルを引き延ばしながら作り出す放射ブラー ブラー対象画像を作成するときに、特定の情報抽出を行う(高輝度を抽出) • ブラー画像との合成は「加算」合成としているため、 より明るくなってしまうが、AlphaBlendよりもきれい。 改造:Module P o s t P r o c e s s 制 御 系
  • 162. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Gauss Blur • ぼかし用のフィルター本来はUI専用だったものを VFX側でも利用できるように拡張してもらった。 • ぼかし度とぼかし幅が制御可能。 改造:Module P o s t P r o c e s s 制 御 系
  • 163. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Post Fringe Blur • 色収差制御用のModule • 標準にもあるScene Fringeの値を制御 改造:Module P o s t P r o c e s s 制 御 系
  • 164. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Post Aura • 特定のメッシュの縁にぼかした輪郭を描画する • アルゴリズム • 対象者を抽出 フルサイズで深度情報、シーンのアルファ情報、対象者の印を出力 • ダウンサンプリングを行い16分の一のサイズにする。 • ダウンサンプリングした情報を1ピクセル分縁を拡大する。 • 深度情報をみつつガウスブラー • 拡大した小さい画像を参照しつつ、情報が入っている場合はブラー処理を行う。 • 深度浸食を行わないように深度情報はボカさずに運んで合成 改造:Module P o s t P r o c e s s 制 御 系
  • 165. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Post Glare • 特定のメッシュ全体をぼやっとさせる • オーラ表現と同じような処理で表現 改造:Module P o s t P r o c e s s 制 御 系
  • 166. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 外部制御系 改造:Module 外 部 制 御 系
  • 167. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Camera Shake • カメラシェイクを実行するためのModule • 既存のカメラシェイクの改造版 • BPで設定したシェイク時間、シェイク力などを オーバーライドできるようにしてあります。 • カメラとの距離に応じてカメラの揺れを自動で調整 改造:Module 外 部 制 御 系
  • 168. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Change Scene Color • シーン上のライトの強度を調整可能 • 大技時に暗くしたりするのに使用 改造:Module 外 部 制 御 系
  • 169. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. マテリアル制御系 改造:Module マ テ リ ア ル 制 御 系
  • 170. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • マテリアル制御系 • マテリアルのDynamic化 • Material Scalar & Vector制御追加 • Material Aura • Material In Light 改造:マテリアル制御系
  • 171. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • マテリアルのDynamic化をチェック一つで対応 • 各EmitterのRequiredにフラグを追加 • 動的にマテリアルのパラメータを制御する場合はチェック • 生成したマテリアルはPSC側で保持しておく必要がある。 • GCで回収される。 • ” UParticleSystemComponent::GetUsedMaterials”で取得できるようにする。 • PSC側で保持しているマテリアルは上記の関数で取得できるようにする必要があり ます。 改造:Module マ テ リ ア ル 制 御 系
  • 172. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • マテリアルのDynamic化の対応 • 各EmitterのRequiredにフラグを追加 • 動的にマテリアルのパラメータを制御する場合はチェック • 通常は”CreateDynamicMaterialInstance” 関数をコールする必要がある。 • 生成したマテリアルはPSC側で保持しておく必要がある。 • GCで回収される。 • ” UParticleSystemComponent::GetUsedMaterials”で取得できるようにする。 • PSC側で保持しているマテリアルは上記の関数で取得できるようにする必要があります。 改造:Module マ テ リ ア ル 制 御 系
  • 173. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Material Scalar&Vector • マテリアルのパラメータを制御するModule • 通常は“SetScalarParameterValue”や”SetVectorParameterValue”で制御 • 毎フレーム制御することも多いのでパラメーター名をキャッシュ • エフェクト側のマテリアルも制御可能 • アタッチ先のMeshのパラメータも制御可能 改造:Module マ テ リ ア ル 制 御 系
  • 174. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Material Aura • キャラに含まれているオーラ表現制御用 • エフェクトからはオーラカラー等を設定 改造:Module マ テ リ ア ル 制 御 系
  • 175. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Mat InLight • 内部発光を制御するModule • エフェクトからは発光度合いやカラーを制御 改造:Module マ テ リ ア ル 制 御 系
  • 176. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. GPU Particle 改造:GPU Particle
  • 177. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Simulation Shaderの拡張 • カールノイズ、コリジョン追加、その他挙動追加 • パラメーターTextureの追加 • カラー用、ParticleのSate用、Dynamic用、Target座標用 • カーブデータの追加 • DynamicModuleがGPU Particleで使用できるように拡張 • Warmup時にParticle情報がリセットされないように対応 改造:GPU Particle G P U P a r t i c l e
  • 178. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • カールノイズの実装 • Vector Fieldが無くてもノイズでの移動が可能 • VFはデザイナーには不評 • VFも使用可能 • Noise用のIntensityはカーブデータ • Particle TimeかEmitter Timeで制御可能 • GPU Particleの場合は専用のShaderコードを追加 • ノイズ値をカラーやParticle Sizeへ利用する事も可能です。 改造:GPU Particle G P U P a r t i c l e
  • 179. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • SphereとBoxのコリジョン判定を追加 • “Depth Collision”や”DistanceField”の代わり。 • プレイヤーなどに設定されている。 • いくつかのエフェクトは自動的に反応 • 判定情報は256x256のテクスチャー • 反応するタイプ定義が可能 • プレイヤーやエネミーなど反応タイプが設定可能 • ヒット時の挙動をいくつか用意 • スライド、反射、吸収、スライド+吸収 改造:GPU Particle G P U P a r t i c l e
  • 180. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 特殊表現 改造:特殊表現
  • 181. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Voxel Mesh • Voxel用の範囲にチェック用の座標が、 入るとCellが表示されるエフェクトです。 • Meshのボーン情報を利用して、 ある程度の形状が作れます。 • 専用のCPを作成して計算してあります。 • 例だと9000個ほどのCellを表示しています。 改造:特殊
  • 182. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • GPU Mesh Particle • 大量のMeshを処理する必要があったので作成 • こちらも専用のCPで処理 • 専用に作りすぎて通常のGPU Particleほど汎用的ではない。 • 連番メッシュが使用可能です。 • Mesh Particleの処理が利用可能です。 • プレイヤーの一通りの攻撃に反応します。 • ダメージを受けて消えます。 改造:特殊 特 殊
  • 183. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Effect Debug System 改造:Effect Debug System
  • 184. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 改造: Effect Debug System
  • 185. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Effect Debug System • エフェクト用のデバックシステム • Stat Unit等で表示するmsと同じ計算をして処理時間を表示 • PSC、Finalize、GPU Spawn等の処理時間を計測して表示 • 一定間隔で前回の負荷との差を表示 • 攻撃後やカットシーン中などに見て負荷が高いシーンなどを、 デザイナーでも簡単に確認できるようになっている。 • エフェクトの発生位置にエフェクト情報をデバック表示。 • エフェクト自体が出ていない不具合は、実際にエフェクトが出ているかチェック • 各種ショートカットを実装 改造:Effect Debug System
  • 186. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Effect Debug System • エフェクトのリスト表示 • リスト表示ではレベル上の情報より詳しい情報を表示 • 座標、回転、スケールなどの情報や並列化情報など • PCSの負荷情報や、詳細情報にはEmitterInstanceごとの負荷などを表示 • 負荷の高いエフェクトの報告がある場合はこちらを利用して確認することもある。 • 負荷毎にリストをソートも出来る。 • Emitter数やParticle数も表示しているので、 負荷が高いシーンなどではまず実機でこちらを見ることが多かった。 • その後それぞれの計測ツールで見る感じです。 改造:Debug System
  • 187. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エフェクトをどこでも生成できる機能。 • 自動負荷チェック • 全エフェクトを再生して負荷をチェックする。 • Automationで月一ぐらいで測っていた。 • 自動デバックシステム • 別のセッションとは別の機能。 • 適当に攻撃し続けて不具合をチェックするのに使用した。 • 昔に作った物。 改造:Debug System
  • 188. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 負荷チェック • Zキーを押して負荷計測を開始 • 再度Zキーを押すと負荷処理を停止します。 • 計測中のエフェクトの表示数やStatの負荷などを平均化 • それらの情報を元に攻撃などのアクションの負荷を簡易的に計測。 • 計測した情報は”csv”ファイルにして出力 改造:Debug System
  • 189. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Effect Attach System
  • 190. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Effect Attach System • 専用のComponentを作成 • 機能概要 • エフェクトを生成してMeshにアタッチする。 • 生成したエフェクトの管理 • 生存チェックし生成回数などを制御 • 生成したエフェクトのパラメータ制御 • ‘’ のVisibility制御 Effect Attach System
  • 191. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 生成方法 • Notify • Notify State • BPのノード • プログラムコード • Matinee用のEffect Attach Track Effect Attach System
  • 192. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Effect Attach System • データの設定や作成方法 • アタッチには専用データ • 全ての生成方法で同じデータ構造を利用 • NotifyやTrackにデータを直接設定 • 外部のData Assetにデータを作成
  • 193. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エフェクトの生成管理 • Group IDで管理 • Group IDはアニメーション再生時やプログラムから設定します。 • 設定したGroup IDがデータが(逆条件も可能) • 同じ:生成する。 • 違う:生成しない。 • 特殊条件での生成分け • 水の中を潜っている時など特殊条件のみ生成する、しないを設定できます。 • 再生回数設定 • 同じデータを何度も生成しないような仕組み。 Effect Attach System
  • 194. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • カメラへのアタッチ機能 • アタッチデータにはカメラへアタッチする機能も付いています。 • 標準でも”CameraLensEffect”がありますがそれを拡張した物を生成 • カメラの位置に生成するだけの機能もあります。 • 回転やスケールの影響を受けない設定 • “AbsoluteRotation”や”AbsoluteScale”でのフラグ制御 Effect Attach System
  • 195. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. アタッチ方法 Effect Attach System Effect Attach Code Attach Data Meta Attach Data (Animation)Notify Attach Data Asset BP Attach Data Particle System Meta Attach Data (Animation) Attach Data Asset BP Attach Data Area Custom Data PS参照先 BP Node Track • アタッチ方法とアセットの参照について Effect Spawn Attach Data 参照先
  • 196. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エフェクトの終了について • モーション切り替え時の動作 • 終了させる • プログラムやBPなどでのアニメーション変更時の処理 • 何もしない • 外部で終了通知をさせる必要があります。 Effect Attach System
  • 197. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エフェクトの終了について • エフェクト終了時の動作 • ループエンド • フェードアウト • 設定時間後にループエンド • 何もしない(エフェクト寿命に任せる Effect Attach System
  • 198. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エリア専用エフェクト • アタッチデータの設定でエフェクトデータを、 エリア専用のデータテーブルから参照することも可能です。 • 特定のアクション時に発生するエフェクトが、 このエリアだけ違う場合に利用 • 雪や雨エリア • など • データテーブルはWorld Settingにバインドされています。 Effect Attach System
  • 199. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Tool
  • 200. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Effect Attach Dataの編集ツール • 大量のモーションに設定されたNotifyを 一覧と編集出来る。 • まれに起こる大量のモーションの編集が 必要になった時に利用。 • 全てのリストで編集可能状態にすると 重たいので基本はラベル表示。 • 編出したいものにチェックを入れて編集 Attach Data Editor
  • 201. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エフェクトやMesh用のビューアー • Cascadeを開かなくてもエフェクトのチェックが可能。 • エフェクト以外にMesh系のビューアーも兼ねている。 • 専用のSQEXTagでの検索機能がある。 • 担当者検索 • Module検索 • など Effect Previewer
  • 202. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • その他 • アタッチチェック • Skeletal Meshにアタッチ • PSのプロパティー編集 • Bound Size編集 • PSなら編集可能 • エフェクトのエラー検出 Effect Previewer
  • 203. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Matinee
  • 204. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Matinee用のトラックを作成 • マチネ用にアタッチや生成用のトラックを作成。 • 基本はアタッチシステムや、生成系の処理と同じ。 • マチネ限定としてエフェクトの終了用のトラックを用意 • Nofity側でも要望があり提供を考えたが、 実装すると不具合が発生する可能性が大だったので見送った。 • プログラム側で消していないのにエフェクトが消える。など。 • シームレスなイベントで位置だけあった。 • パラメータ制御用のトラックを追加 Matinee:エフェクト用トラック
  • 205. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. VFX Manager
  • 206. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • VFXManage • VFXManagerと言うシステムを用意しました。 • エンジン側とゲーム用のプロジェクトと連携用 • ゲームの状態や動的に生成したエフェクトのリストの保持や チェックをしている。 • エフェクトの一括削除などのManagerを通して行う。 VFXManage
  • 207. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Commandlet
  • 208. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 特定のパラメータ編集やマテリアルのパラメータの 一括変更などの対応の時に利用。 • エフェクトのエラーチェック時にも利用 Commandlet
  • 209. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エフェクトのエラーを検出する機能 • 例 • 無限に寿命を持たないParticleを生成するループエフェクト • LOD切り替え時にPartilceが増え続ける。 • BurstでParticleを生成する設定にしている時に、LODが戻るとParticleが増える 現象があった。 • 次回のプロジェクトでは早めに実装しようと決めた機能 Errorチェック機能
  • 210. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • LOD数や旧式のModuleを使っているエフェクトの検出 • Emitterを別のエフェクトにコピーするとLODもおまけについ てきて、不具合の物になることがあった。 Errorチェック機能
  • 211. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. Automation
  • 212. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • レベルから参照されているエフェクトの一覧を出力する機能を実装 • イベント用のエフェクトが配置&マチネに設定されているかをリスト化して 欲しいと言う要望があったので実装 • エフェクトと参照数やエフェクトのパスを出力します。 • どんなエフェクトが使用されているかリストで分かるのは便利。 エフェクトの参照リスト
  • 213. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. マテリアル関連
  • 214. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Timeノードを拡張 • Emitter時間を取得できるようにノードを拡張 • これによりエフェクト毎にスローになったりする時にでも 簡単にマテリアルの表現をスローにできます。 • 他にもChara,Envなどのタイプもある。 マテリアル関連:Timeノード拡張
  • 215. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 環境カラー • エリア毎のベースカラーを設定出来る。 • Material側で専用ノードを使用してレベル上のベースカラーを 取得できる。 環境用のカラー取得用のノード追加
  • 216. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 環境用のカラー • 専用ノードで取得できる値 • ベースカラー • ブライトカラー • ダークカラー • カラーの合成値 • 専用のData tableに設定します。 環境用のカラー取得用のノード追加
  • 217. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 環境用のカラー • 特殊な空間のみ色を変えたい場合。 • Trigger Boxで情報を上書きすることで、特定の場所専用の色を付けたエ フェクトを制せすることも可能です。 環境用のカラー取得用のノード追加
  • 218. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • オプティカルフロー • 要望により実装したノード • 連番テクスチャーのアニメーションを滑らかにするノード • Textureの輝度から移動した位置を求める。 • スローで見た時に効果が分かる。 オプティカルフロー • Optical Flow • Cross Fade • そのまま
  • 219. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. その他
  • 220. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • お掃除機能 • 生成しているエフェクトをすべて削除する機能を追加した。 • イベントが発生する前など動的に生成していたエフェクトをす べて削除する場合に使用する。 • 基本は動的に生成したエフェクトは全て消えます。 • 生成時のフラグでお掃除の対象にならないようにすることも可能 お掃除機能
  • 221. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 最適化
  • 222. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 並列化 • 今は普通に並列化できているかもしれないが、 以前は並列化のフラグを有効にするとすぐにハングしていた。 • エディター側でも並列動作されるように拡張 • 全Moduleにスレッドセーフかどうかのフラグを追加したり、 カーブデータの並列のチェック対応が必要 • 描画回りの改造で不具合がよく出たりしていたが何とかなった。 並列化
  • 223. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 並列化 • Emitter InstanceにFinalize Tickを追加 • スレッドセーフに出来ないModuleはFinalizeTickで処理。 • “Distribution::OkForParallel()”をコールする必要があるので、 全Moduleチェックして対応 • Type DataやRequiredのModuleもチェックする必要がある。 • 標準では通常のModuleのみ? 並列化
  • 224. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 不要なEmitterやModuleを削除したりする機能を追加 • 開発終盤のデータ整理の時期に対応した機能。 • EmitterやModuleで無効にしている物を削除する。 Emitter整理系
  • 225. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Indirect Lighting CacheをOFF • Unlit系のマテリアルを設定されているエフェクトは IndirectLightingCacheをOFFにする機能を入れました。 • 一部エリアでエフェクトの生成時などでILCの負荷が激増した。 • 原因はエリアの設定でもあったが、ILCが不要なエフェクトも多いの で、全エフェクトをチェックしてOFFに。 • 専用のCommandletを用意しました。 Indirect Lighting CacheをOFF
  • 226. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. おまけ
  • 227. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 2DFluid • 実際に使ってはいませんが2DFluidも実験していました。 • 次回は使用できるように頑張りたい。 おまけ:実験系
  • 228. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • バッチング処理 • 同じエフェクト、同じマテリアルであれば、 Drawを1回で済ませるようにする処理。 • 背景で大量に置かれていて、カメラが近づけないものに使用しようと思ってい たが、あまりなかった。 • 負荷自体はカメラに近いところにあるエフェクトが問題になることが多かった。 • 対応したところ、Drawの負荷が結構下がったので機能としては良かったかなと 思う。 おまけ:実験系:バッチング処理
  • 229. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Emitterからのマテリアル制御 • Emitterの項目にShader Parameterという項目を追加した。 • パラメータやTextureを自由に設定することが出来る。 • Dynamic化やマテリアルインスタンスを増やさなくても、 Textureやパラメータを制御できるので、良かったが・・・・ • 実装時期が遅かったため、今回は見送り・・・ • 次回はしっかり設計して導入したい。 • シェーダーはそのまま乗っているので、使用できるようにはなっている。 おまけ:実験系:Material Parameter
  • 230. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • PSC Poolシステム • 標準でもPoolシステムとして実装されている。 • こちらも独自に実装してみた。 • 同じエフェクトならどのComponentでも使いまわせるようにしてみた・・・ • 失敗 • Task graphでエラーが出る。 • PSCの並列化の影響。 • 時間が無かったため諦めた。 おまけ:実験系
  • 231. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Module数などの統計 • 全エフェクトから色々データを集計しました。 • 総PSAsset数:8,892個 • 総Emitter数:47,409個 • 総Module数:420,672個 おまけ:Module数などの統計
  • 232. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. おまけ:Module数などの統計:Module Moduleの使用数&使用率ベスト10 1. Scale Color /Life 2. Initial Color 3. Size Scale 4. Initial Size 5. SQEX Emit Transform 6. SQEX Take over 7. Lifetime 8. Dynamic 9. SQEX Attach Particle 10. SQEX Particle Rot • 39217(82.7%) • 38167(80.5%) • 37659(79.4%) • 36942(77.9%) • 36529(77.0%) • 29953(63.1%) • 28199(59.4%) • 18180(38.3%) • 16746(35.3%) • 12095(25.5%) カラーとサイズの制御系Moduleが上位に来ています。 これは殆どのエフェクトが制御しているという事の ようです。 またEmitterを制御するModuleも上位に来ているの はほぼ必須のModuleだからです。 またInit系よりScale系が多いのが複数設定して、制 御しているエフェクトが多いからのようです。
  • 233. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. おまけ:Module数などの統計:Module Spawn系の使用数&使用率ベスト10 1. SQEX Range 2. SQEX Ring Spawn 3. Initial Location 4. SQEX Quadrangle 5. SQEX Bone Attach 6. SQEX Spawn PS 7. Sphere 8. SQEX Any Ver Spawn 9. SQEX Raycast 10. SQEX SpawnSea • 8383(47.5%) • 4360(24.7%) • 1626(9.2%) • 1148(6.5%) • 604(3.4%) • 592(3.4%) • 292(1.7%) • 287(1.5%) • 188(1.1%) • 127(0.7%) 生成系Moduleについて。 RangeとRingが上位に来ているのでParticleを生成 するEmitterに使われていたようです。 基本順当な感じです。 Initial Locationが上位に来ているのは、 Quadrangleという上位Moduleが出来るまでは利用 していたからだと思われます。
  • 234. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. おまけ:Module数などの統計: TypeData TypeDataの使用数&使用率ベスト10 1. Mesh Data 2. CPU Sprite 3. GPU Sprites 4. SQEX Control 5. SQEX Decal 6. SQEX Tail Polygon 7. SQEX Tail Shape 8. SQEX Skeletal Mesh 9. SQEX Fragment Mesh 10. AnimTrail Data • 20187(42.5%) • 10397(21.9%) • 8520(17.9%) • 5476(11.5%) • 1317(2.7%) • 882(1.86%) • 208(0.43%) • 86(0.18%) • 62(0.13%) • 57(0.12%) 描画系のModuleについても統計を取りました。 MeshDataが一番よく使われていた描画データとなり、 次にCPU Spriteこれはスプライトでグローなどをよく使用す るのでその結果だと思います。 あとはEmitter制御系が多くその次にDecalです。 これはDecalの需要が多かったという事だと思います。 数が少ない方が需要ではなかったという事ではありません。 Meshに関してはSimple Meshを作ろうとしていました。 この結果を見たので次は作って使用しようかと思います。
  • 235. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. 今後の課題
  • 236. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • Niagara 今後の課題:Niagara
  • 237. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 自己紹介 • 環境について • なぜ拡張したのか • 改造のメリットとデメリット • 改造した物と作った物 • おまけ • まとめ 内容
  • 238. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. まとめ
  • 239. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • エフェクトの改造はエンジン側のプロジェクト • ツールはプラグイン化 • Moduleの沢山?作成 • 描画系Moduleはちょっと複雑で影響が大きい。 • 改造すると一度はアップデートで地獄を見る…かも? まとめ
  • 240. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 改造の影響度 • 個人的に感じた改造の影響度(もの凄く個人的な感想です) まとめ 改造部分 影響度 内容 PS拡張 小 Registry追加ぐらいは楽 PSCの改造 小~中 座標系の拡張は中 Emitter改造 小~中 内容次第。動的生成は少し面倒 Module追加 小 Spawn系は影響小 他のComponent制御 中 他のCom制御は並列有なら中 描画系追加 大 描画系はShader追加となると大 シェーダー 大 描画の仕組みが変わると地獄
  • 241. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • 標準のままで大丈夫ならそれが一番 まとめ
  • 242. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. • それでも。 • 最終的には改造、拡張してよかったと思いました。 • 当初のBPで頑張ろう!の方針だとデザイナーも苦労する。 • PG側もBPのデバックを結局しなくてはならい。 • パフォーマンスも出なかったかも・・・ • 結果ネイティブコードで拡張した事で • 自由に出来た。 • 楽しくプロジェクトを遂行できた。 • 途中苦労もあったが… まとめ:
  • 243. V F X S T U D Y G R O U P©2019 SQUARE ENIX CO., LTD. All Rights Reserved. ご清聴ありがとうございました! Unreal Engine 4 は Epic Games 社の商標または登録商標です。 その他掲載されている会社名、商品名は、各社の商標または登録商標です。