Main Contents
●TOPICS
▼ゲーム開発者のための英語学習コミュニティ『GDEnglish』を開設!
▼My Tools and My Presentation Materials
moko-vfx (moko) · GitHub
Moko, Video game fx artist | SlideShare
『Tenpu Gazo Maker』や『List Fusen 2』など便利なのでぜひお試しください!
Tenpu Gazo Maker をリリースしました!
リスト管理できるテキストエディタ「List Fusen」がバージョン2になりました!
▼References for VFX on Pinterest
●Materials from past study sessions in VFX Developers Exchange Meeting
・第8回VFX技術者交流会(Vertex Shader / 2DFX / SD Techniques)
・第7回VFX技術者交流会(Shadow of Translucent / Material Techniques)
・第6回VFX技術者交流会(Introducion of GDC Talks)
・第5回VFX技術者交流会(GDC2016 VFXRT / Rendering / VFX on Unity)
・第4回VFX技術者交流会(Maya Fluids / Assets / AE Plugin / VFX Issues)
●Studying English - Presentation Materials
・GDC 講演動画を翻訳しながら視聴する
・海外講演の英語字幕を整形する秀丸マクロ
・Naughty Dog の講演動画・資料まとめ
・GDC 2012 | The Tricks Up Our Sleeves(前半)
・GDC 2012 | The Tricks Up Our Sleeves(後半)
・GDC 2017 | Visual Effects Bootcamp: The Rise of Realtime
・GDC 2019 | The VFX Process Behind 'Battleborn'
・GDC 2022 | How to (Not) Create Textures for VFX
・"「デビルメイクライ5」におけるVFX解説"の感想
●Studying English - Games
・英語学習向けのSteamゲームは?
・英語学習のためにプレイしたSteamゲーム
・ゲームプレイで英語を勉強する流れ
・英語ボイチャでAmong Usをプレイする際の英文集
・英語学習「Legend of Grimrock 2」をプレイ&クリア
・Danganronpa 英語版 クリア後の感想(ネタバレ)
・Danganronpa に登場した英語表現まとめ
・Return of the Obra Dinn が面白い
・Return of the Obra Dinn 感想(ネタバレ)
・Heroes of Hammerwatch が面白い
・Cult of the Lamb に登場する英単語
・Chrono Trigger に登場する英語表現 Part 1 ※ Part 8 まであります
・英語学習「Witch Spring R」をプレイ&クリア
●Studying English - Videos
・TEDの視聴に公式サイトを活用する
・Netflixで英語字幕から英文を学ぶ
・Netflixでの英語学習に英語対応の日本アニメを視聴してみる
・VPN + Netflix で日本のアニメを英語で観る
・英語の学習をはじめてみた1(アラジン編)
・英語の学習をはじめてみた2(タンボ編)
・モンスターズ・パーティに登場する英語
・Study English | プラダを着た悪魔
●Studying English - Other
・英語の学習をはじめてみた
・英語の学習のために行っていること
・英語の助動詞の役割りを表にまとめてみた
・英語学習を1年半続けてみた所感
・英語学習を3年続けてみた所感
・2人で短時間で可能でカンタンな英語学習
・C# 英単語を覚えるためのツール「English Words Check Tool」を公開しました!
・英語の技術記事の定番表現(UEの場合)
・英語の技術記事の冠詞・単数形・複数形(UEの場合)
・複合形容詞の例(UEの場合)
・英語のツール名・機能名(UEの場合)
・英語の技術記事のタイトルの付け方(UEの場合)
●Unreal Engine 4(UE4)
・エフェクトツールを使ってできること
・エフェクトのワークフロー
・テクスチャのインポートについて
・テクスチャのプロパティについて
・テクスチャのフォーマットについて
・マテリアル作成の基本的な知識
・最終マテリアル入力の各ポートについて
・パーティクル向けのマテリアルの設定について
●Maya
・MELの最初のステップ
・MELのウインドウ作成について
・MELでシェーダー作成 1
・MELでシェーダー作成 2
・MELスクリプトのある場所を参照する
・MELを配布する時のプロシージャについて
・UVの正規化
・頂点カラーを別のモデルに転送
・テクスチャの色を頂点カラーに転送
●Photoshop
・Photoshopのスクリプトを書いてみる
●C#やプログラム全般
・「C#」の記事一覧
●その他の記事
・処理速度と処理量のお話 ms(ミリセカンド)について
・ドローコールについて
・おおまかな開発コストの計算方法
・おおまかなゲームソフトの売り上げの計算方法
ソフトパーティクルのヒミツ!
@Zi_su さんの記事「UnrealEngineのデバッグUIをImGuiではなくSlateIMで作る」に続いて「UE Advent Calendar 2025」20 日目の記事になります!
去年の12月はプライベートで色々とバタバタしていて参加できなかったのですが、今年は 2023 年以来久々の参加になります。2 年ぶり!
という訳で今回のテーマは、エフェクト向けの技術や機能と言えば定番なソフトパーティクルです! UE ではマテリアルの「Depth Fade」を使って実現できますが、今回はこちらの処理について触れていきます。
ソフトパーティクルとは?
半透明のパーティクルエフェクトがキャラや背景に突き刺さった時にスパッと切れ目が目立ってしまうのをフェードさせて緩和させる手法です。PS3 登場くらいの頃に西川善司さんの「Crysis」か何かの技術解説記事で知ったような気がしますが、ChatGPT によると 2005 年くらいに確立されていたようです。

UE でソフトパーティクルを実現するには?
マテリアル内で「Depth Fade」ノードを使うのが定番です。(多分)

結果はこちら。黒い BOX に Depth Fade が入ったマテリアルを適用した場合です。

ただし、この処理を理解する際には注意が必要です!
「キャラや背景に突き刺さっている部分にフェードが入る」と説明するのが楽なのでそう説明することが多いですが、これは実際には誤解を招く表現で、正しくは「背後の不透明オブジェクトに近付くほど透明になる」処理になります。
なので見る角度で透過具合が変わります。特に動画のように板状のモデルが壁際で表示されたり床の上に敷かれたりするとすぐに消えてしまいます。

もう少しちゃんと理解しようと思うと「Scene Depth(シーンの深度)」と「Pixel Depth(マテリアルが適用されるピクセルの深度)」の理解が必要です。

Pixel Depth は画面からマテリアルが描画しようとしているピクセルまでの距離で、Scene Depth は画面から(深度が描かれていて最初にヒットする)不透明オブジェクトまでの距離です。そして「Depth Fade」はこの2点間の距離が近いほど透明にします。

このあたりはエフェクトアーティストは知っておいた方が良いと思うので「突き刺さる部分にフェードが入る訳では無い」ことをまずは覚えておいてください。
自前で Depth Fade を構成してみる
次に「Depth Fade」ノードを使わずに再現してみます。
先に結論から書くとこちらの図のように構成すれば OK です!

何をやっているのか解説すると、Scene Depth から Pixel Depth を引くと2点間の距離が分かります。不透明モデルよりも奥にあるならマイナスの値になりますね。

パラメータ FadeDistance の幅で 0.0 ~ 1.0 のグラデーションになるように割り算して、最後に 0.0 ~ 1.0 で値をクランプするために Saturate ノードを挟んでいます。つまり FadeDistance の値でグラデーションの長さが決まります。

試しに UE 標準の Depth Fade ノードを使ったマテリアルと、図の構成のものを並べてみましたが、全く同じ結果になることが確認できます。

「自前の構成にすると何が良いのか?」というと、特定の条件でフェードが入らないようにしたりフェードの長さが変わるといった処理を自由に拡張できる点です。色んなアイデアを組み込めるかも‥?
応用例
半透明オブジェクトが描画される時、自身のピクセルがシーンの深度より手前にあるかをチェックして描画するかどうかが決まりますが、その深度テスト(Depth Test)を自前で行うことで板ポリを疑似的に球体に見せるようなこともできます。
まずはマテリアルの Disable Depth Test を有効にして深度テストしないようにしておき、代わりに図のような構成にすると自前で深度テストができます。Sign と Max の部分は「 if で 0 より大きければ 1、そうでなければ 0」 と同じ結果になります。

ここでは分かりやすいよう黒い BOX に適用してみたのが下の図です。右側ではちゃんと不透明オブジェクトより奥になっている部分が消えてくれています。

それでは PixelDepth に嘘の奥行を与えてみます。リニアな円グラデ(テクスチャでも OK)の外側ほど奥にあるように補正しています。

するとこちらのように丸みを帯びているかのような結果になります。
さらに自前の Depth Fade でソフトパーティクルを与えてみます。

丸みを帯びつつもソフトパーティクルが入りました!

こちらのテクニックを利用すれば、煙に疑似的に丸みを帯びさせつつソフトパーティクルを入れるというようなことができますね!
‥という訳で今回の記事は以上になります!
明日 12/21 は @yohanashima さんの記事「Niagaraで発生させたStaticMeshからParticleを発生させる」です。みなさんエフェクト向けですよ!楽しみですね!
UE5 テクスチャの Preserve Border とエッジの処理
@O_Y_G さんの記事に続いて「UE Advent Calendar 2023」5 日目の記事になります!
UE4 の頃から存在する、あまり知られてないであろうマイナーなプロパティ(でもエフェクトには重要な)「Preserve Border」について取り上げます!
UE5 オーバーレイマテリアルを試してみた
昨日に引き続き「UE Advent Calendar 2023」3 日目の記事になります!
UE5.1 で追加された新機能「Translucent Overlay Material(透過オーバーレイマテリアル)」をあまりちゃんと試したことが無かったので UE5.3 で試してみました。
UE5 マテリアル関数インスタンスを試してみた
@tonkotsu3656 さんに続いて「UE Advent Calendar 2023」2 日目の記事になります!
いつの頃からか存在していたアセット「Material Function Instance(マテリアル関数インスタンス)」が気になっていたのですが、世の中にこちらについて書かれた記事が見当たらず、また自分でも試したことが無かったので試してみました。
PC を新調(スペックメモ)
時折、使っている PC の購入日やスペックを知りたくなることがあるのでメモ。
続きを読むUE5 Texture Sample ノードとミップマップの設定
UE5 のマテリアルでよく利用する Texture Sample ノードの設定周りについてや、マテリアルから Mip Level を制御する方法について簡単にまとめておきたいと思います。
