私は『LTC(Linearly Transformed Cosines)によるエリアライトのUnity URP実装』というタイトルでライトニングトーク(LT)を行いました。
Eric HeitzさんがSIGGRAPH 2016で発表した、エリアライトをリアルタイムに計算する手法をURP上で実装したので、その解説をしました。
以下に発表資料を共有します。
私は『LTC(Linearly Transformed Cosines)によるエリアライトのUnity URP実装』というタイトルでライトニングトーク(LT)を行いました。
Eric HeitzさんがSIGGRAPH 2016で発表した、エリアライトをリアルタイムに計算する手法をURP上で実装したので、その解説をしました。
以下に発表資料を共有します。
学マス、鼻先の黒い点が横から見た時に消えるよう処理をしている
— のすけ (@noske2801) May 16, 2024
顔面全体の輪郭線を切ってるのもあって横顔で急な黒が浮いて悪目立ちしたり、鼻の頂点が欠けてシルエットの綺麗さが失われてしまうことに対する対処かな pic.twitter.com/82TiB41IDR
学マス、顔周りでいうと眉毛と目周りが正面からはステンシルして髪より前に見えているが回転させていくと横顔に近づくある程度の角度でフェードアウトしてく。キャラのデザインによっては横から見た時ステンシルしてる眉毛はチラつきが気になったりするのでとても真似したい pic.twitter.com/8O7WjcbF9w
— とれ (@clubnemos) May 16, 2024
鼻のアウトラインがカメラの角度で消える実装は容易に思いつくのですが(カメラのViewベクトルと頭のforwardベクトルの内積からディゾルブ等)、
眉毛が角度でフェードする処理(正面から見ると眉毛が前髪より手前に、横顔に近づくと眉毛がフェードアウトする処理)の実装はすぐには思いつきませんでした。
技術的にも面白そうなテーマだと思ったので、Unityで再現することにしました。
Unreal Engine 5.2上でオブジェクトスペースのレイマーチングを実装したので、その解説をします。
レイマーチングをノードだけで実装するのは大変なので、MaterialのCustomノードを用いて複雑な処理はHLSLのコードで実装しました。
UE(Unreal Engine)のプロジェクトはGitHubに公開しています。
Object Space Raymarching in Unreal Engine 5.2#UE5 #UnrealEngine #UnrealEngine5 #Shader pic.twitter.com/42n2W87HnJ
— がむ (@gam0022) July 27, 2023
Randomization of glowing animation borders#UE5 #UnrealEngine #UnrealEngine5 #Shader pic.twitter.com/FvLbVtE9Q3
— がむ (@gam0022) July 30, 2023
スプラトゥーン3、けっこう面白いですね。過去作の1,2は未プレイでしたが、3からスプラデビューしました。
スプラ3で遊びながら、インクシェーダーの実装方法に興味が出てきたので、UnityのShaderGraphでそれっぽいものを実装してみました。
ShaderGraphの基本機能だけで構成されており、ノードの量も少なめにしました。
ShaderGraphの基本操作は解説しませんが、なるべく丁寧に説明をしたつもりなので、ShaderGraphの入門記事として参考にしてください!
UnityのShaderGraphでインクシェーダーを試作#Unity3D #ShaderGraph pic.twitter.com/PHxIkfnkiQ
— がむ (@gam0022) December 23, 2022
色変更
しきい値の調整
normalize.fmの第032回にゲスト出演させていただきました。
#normalizeFM の新エピソード公開しました。
— h_doxas (@h_doxas) October 18, 2022
今回は @gam0022 さんをゲストに、普段の収録と比較するとかなりテックな話題に寄った感じで、深い技術の話をいろいろうかがいました。
032. たゆまぬ努力とキャッチアップhttps://t.co/acML0WOwYQ
KORG nanoKONTROL2 + KodeLife pic.twitter.com/UqFQqYUFHa
— がむ (@gam0022) January 30, 2022
このシェーダーはTokyo Demo Fest 2021のShader ShowdownをKodeLife向けに少し修正したものです。
前日は@UnagiHumanさんの「Unityの新MeshAPIでMeshColliderをリアルタイム変形させる」でした。
こんな感じのY軸のビルボードをC#スクリプトを使わずに、シェーダーだけで実装しました。
GitHubリポジトリ: gam0022/unity-urp-shader
『Unityゲーム プログラミング・バイブル 2nd Generation』について、公式ページから紹介文を引用します。
Unityのゲーム開発現場で最も使われた決定版書籍が、大幅バージョンアップして登場! ゲームの開発現場で即実践できるスキルが身につく!
本書は、ゲーム開発で最も使われている「Unity」の入門や初級レベルを卒業した方向けの書籍です。ゲームの開発現場で、即実践できるスキルが身につくように、「37」の最新のトピックを網羅しました。
本書には、第一線の現場で活躍している23名の著者陣が参加しており、ゲーム開発のノウハウやTipsが満載されています。またほとんどのトピックでは、サンプルゲームがダウンロードでき、実際に動かしながら、実践的に学んでいくことが可能です。
Unityでのゲーム開発のさまざまな場面で、すぐに役立つ1冊となっています。
37のトピックのうち、私は次の2つを担当しました。
この記事では私の担当した内容を簡単に紹介します。
『Unityゲーム プログラミング・バイブル 2nd Generation 』を執筆しました!
— がむ (@gam0022) May 13, 2021
6/29発売です!
・レイマーチング:基礎から応用まで
・Timelineによる映像制作
の2本を担当しました。https://t.co/lYWIxseCON
Windows Terminal 1.6から任意のHLSLのPixel Shadersを実行できるようになったので、Windows Terminalの背景でレイマーチングを実行してみました。
Raymarching in Windows Terminal
— がむ (@gam0022) February 16, 2021
Windows Terminal 1.6 から任意の Pixel Shaders を実行できるようになったので、Windows Terminal の背景でレイマーチングを実行してみた🎉 これは楽しすぎる🤣 pic.twitter.com/WX2JqUZtuL