【動画文字起こし】Unity公式の無償提供資料

VFX & 3DCG

このページは情報の再認識のために自身が文字起こししているものです。
他社のコンテンツのためNoIndex/NoFollow・広告Off にしています。
誤って広告等がしている場合は、お手数ですがコメントいただけると幸いです。

VXFグラフでなんかつくる

しゃべりながら、VXFグラフでなんかつくる動画です。
適宜質問が入るためわかりやすく、VXFグラフをやりたいがなにをやったら良いかわからない人向けの導入動画です。
ただ、カタカナ語や、答えが後から出てくるケースもあるため、若干文字起こし時に要約している部分もあります。

VFX Graph でなんか作る | Unity Learning Materials
今回はエバンジェリストの高橋が VFX Graph を使ってエフェクトを制作する様子をゆる~く配信します。さてどうなることやら……司会:高橋啓治郎ゲスト:安原祐二・名雪通・宮田大輝...

前半:VFXGraphを設定してみる

バージョンは 2019.3.9F1(撮影当時2019.3の最新)
元ネタとしてモデルデータを取り込んで、そこからエフェクトを発生させていこうと思います。
ネタとして複雑な形状があった方がよくて面白くなりやすいので、
エフェクト作りを練習するときには、そういうアプローチにした方がいいのではないかな?というのを踏まえて、それをやってみたいと思っています。
モデルデータを作る(ここではBlenderの猿顔)

  • Blenderを立ち上げる。
  • Add > Mesh > Monkey で既成メッシュを出す。
  • File > Export > Wavefront(.obj)で書き出す。(名前をMonkeyとしてdesktopに書き出す。)
  • OBJファイルで書き出されたファイルを、unityにimportする(unityのassetsにドラッグして入れる)

■ モデルデータから Point Cash を作る
これをFxのソースとして使用する方法は、
window > Visual Effects > utilities > Point Cash Bake Tool
を開き、mesh(Monkey.objのmesh)をドラッグして指定し、とりあえず初期値のまま “Save to pCash file…” を押してBakeする。(一旦、objと同階層にbake)

Point Cashとは?
バーテックスのデータを画像データに焼いたもの。
Cash とは?
事前計算して再利用できるようにしたデータ全般をキャッシュと呼ぶ傾向があると思う。
シミュレーション結果などを再計算しなくても再利用可能にしたものが、Point Cash や、Vertex Cash などと呼ばれている様子。
(フーディニ等でパーティクルの挙動を物理シミュレーションし、その結果をキャッシュしておく など)

VFXgraphで、
空白部分を右クリック > Create Node > “Point Chash” と打ち込んで選択し、アトリビュートを作成する。
MonkeyのPointCash を drag & drop する。

PointCashのデータを入れると、
PointCount(頂点数)、AttributeMap:position(テクスチャにBakeされたポジションのデータ)、AttributeMap:normal など、Bakeされたデータの項目が現れ、取り出せるようになる。

■ Point Cash を ParticleSystemの初期座標として使う
Initialize Particle に set position From Map(MapからAttributeMapからpositionを拾い出してきてparticleの座標としてセットする)というブロックを置き、これをPoint Cash の AttributeMap:position とつなげると使用できるようになる。
(形がわかりにくい場合は、いったん粒の数を増やしてみる。Spawn の Constant Spawn Rate を 10 → 10000にしてみる)

■ Billboardをカメラ正対にする
横から見たときに板が横を向いてしまうので、
Output Particle Quad に Orient:Face Camera Plane を入れるとカメラ正対し、横から見ても見た目が保たれます。

Point Mesh 補足
元のBlenderMonkeyの頂点数より多くの粒が出ている。
これはBake tool のなかの Point Count の数を多く設定し、Distribution:Random Uniform Area(polygon の三角形1枚1枚にランダムに分散) などの設定で頂点数を増やしているものと思われる。
これで、Mesh表面に一様に発生点が広がる。
(ただし、法線に関しては元のMeshからまま拾っているようなので、ある程度細かく割られたmeshのほうが良い。)
■ mesh の法線方向を使用する
Initialize Particle に set Direction From map のブロックを置く。
PointCashの Attribute Map:normal から set direction From map のAttribute Map に線をつなぐ。
inspector のcompositionを Direction → Velocity にすると、法線方向に移動するようになる。
(↓ 置き換え)
Initialize Particle に set Velocity From map のブロックを置く。
PointCashの Attribute Map:normal から set direction From map のAttribute Map に線をつなぐと、法線方向に移動するようになる。
このように名称が定まっているものもあれば、検索に出てこないものもある。
そのためデータを簡略化するためには、ブロックを作成してからinspectorも調整する必要がある。
■ 寿命をつける
このままだと無限に出続けてしまうため、
Initialize Particle に set lifetime Random(Uniform) のブロックを入れ、A:2 ~ B:3(2~3秒間で消える)という設定にしてみる。
  • B:set Velocity From map → set Direction From map に戻す。
    get Direction のAttributeをつくり、Update の中にsetVelocity を作り、つなぐ。
    この状態では動きは元のまま変わらない。
  • A:sample curve のAttributeを作る。
    これで自由に設定したカーブをサンプルして値として使うことができる。
    これに対し、Age Over Lifetime のAttributeを作り、sample curveのTimeにつなぐ。
    こうすることで、パーティクルが生まれたとき0で死ぬときに1っていうふうな時間の推移を指示することができる。

この2つのAttributeをmultiply(掛け算)のそれぞれA・Bに入れ合わせ、Update の中のsetVelocity に繋ぎ直すと、Lifetimeの推移での動きが加わる。
SpawnがConstantSpawnRateだと常にparticleが発生しているためメリハリがないため、発生の仕方を変える。
PeriodicBurst にし、発生しては飛んでいく感じに変えてみる。
┗ Count:1000 / Delay:2 → 2秒おきに1000個のparticleが発生
ただし、initialize Particle のCapacityを多くしておかないと発生できなくなるため、増やしておく。

この状態だとコンパイルした(発生命令から実行に移った)後 0~2秒までparticleが発生しないため、Spawnの最上位にsingleBurstのブロックを置き、補完する。
┗ Count:1000 / Delay:0 → 開始から0秒の時に1000個のparticleが発生

また、Bounds(バウンディングボックス )が小さいとカメラから少し外れただけで消えてしまうため、大きめのエフェクトを作る際はとりあえず大きくしておくとよい。
(完成してゲームで使う際は、視界外にある時は描画する必要がないためなるべく小さい値にしたほうが良い。)

■ Particle毎のばらつきを与える。
RandomNumber というAttribute をmultiplyの3項目(Bの下、適用前は空白の丸)につなぐ。
min / maxに差をつけると、Random性が出る。

元となったMeshが、ややポリゴンが荒く平面的なため、法線に沿って飛ぶ際に平面感が出てしまっている。
Initialize Particle に Add Direction を足し、inspectorの Random をPar Componentにする。
min / max を -1 -1 -1 / 1 1 1 とするとランダムに飛散するようになる。
このようにすべての絶対数が同じときは、float という Attribute で 1 という数値を指定し、min を指定する方にはNegate(-x)(float)をかませて繋ぎ、maxの方にはそのままつなぐと、-1 -1 -1 / 1 1 1 と同じRandomを指定したことになる。

■ アルファを加えて消していく
Output Particle Quad に SetAlphaOverLifetime というブロックを追加する。
(OutputではなくUpdateの方に入れてもよい。)

■ 色をばらけさせる
Output Particle Quad に Set Color Random from Gradientというブロックを追加する。
Alphaは別で設定しているため、ここではColorMode:Color にして色だけを設定する。
Gradationの面積によって確立が変わるため、赤~オレンジをメインにし、青の範囲を狭めることで、低い確率で青が出るようになる。
(ここまでは StartColorのRandomGradation と一緒、sample Modeを OverLife にするとColorOverLifetimeと同じになる。)

HSVを使用して色を指示するのも便利です。
HSV to RGB というAttributeを作る。(色表現を HSV から RGB に変換してくれるもの。)
X:Hue・色相
Y:Saturation・彩度
Z:Value・明度
とりあえず作業前は 1 1 1 に設定しておく。

■ 再生されてからの時間で、発生する粒の色を変える
Total Time というAttributeを作ります。
色相は 0 – 1 の間で与えないといけないため、Fractional を間に挟み、HSVtoRGBの X につなぐ。
これをSetColorのBlockにつなぐと、発生する色がStartColorに合わせて動く。
・表示部分(Rendering。前に置いた Set Color Random from Gradient)においてしまうと、すべての色が一様に変えられてしまうため
・発生したときに1回だけ変わるようにするためには、
Initialize Particle に Set Color Random from Gradient を置き、
粒の発生サイクル と 色繊維サイクルが同期しないように、Multiplyを挟み(Multiplyを作成し、Total time からの腕をMultiplyのAにつなげる)、Bに適当な乱数を入れてFractionalに返す。
Output Particle Quad にある Set Color の inspector のcomposition がoverwriteだと上書きされてしまうため、multiply などにする。

■ 原点からの距離で粒の色を変える
SetColorを消す(Fractionalからはそのまま使う。)
Get Attribute:Position を作成し、Distance を挟み Fractionalにつなぐ。

後半:particle Stripの使い方(トレイル)

1:43:30頃から後半開始。

ParticleStripは発生させたparticle同士を線でつなぐことができる機能。

■ Particle Stripを出す基本手順
一旦、決まりきった手順と思ってやってください。
このアップデートパーティクル(パーティクルをアップデートする処理)の中で、イベントを発生させます。
Trigger Event Rate (OverTime)のブロックを追加し、秒間 何回のイベントを発生する というのをここで定義することができる。
60フレームぐらいで動いてるので、秒間 60 回のイベントを発生させるよう入力する。
このEventの右手を出し、GPUイベントをつなげる。
GPUEvent といって、イベントの受け口を作ります。
このイベントが発生したら、パーティクルがイニシャライズされるというふうに、下から手を出しinitialize Particle を繋げてあげ、これのinspectorのdata type をparticle Strip にすることで、initialize particle Strip になる。
Strip Capacity というのは、点と点をつなぐ線が何本まで表示できるかというキャパシティで、
Particle per Strip Count は、その1本の線の中に何個までパーティクルが存在しうるかというふうなキャパシティをそれぞれ別々に設定できるようになっています。
一旦、元となるパーティクルの

  • initialize のCountを1000個に、
  • Spawn数を、500 の2秒サイクルくらいに

制限しておく。
あまり大量に発生させると重くなると思うので少し減らしておく。
なので、こちらでは1,000本のStripを扱うようにして、パーティクルのカウントは1本あたり、多分500個ぐらいは使えれば十分だと思うんですよね。
こんなふうにスリップのキャパシティを設定してあげます。
ここでこのイベントが発生したときのパーティクルのポジションというのをinitialize Particle Stripに引き継がせます。
これはInherit source position(unity6からは、Inheritという単語が存在しない) っていうノードをここに置くことによって、親のパーティクルのポジションをここにコピーすることができる。
生存期間を適当に setLifetime で 2秒 を設定する。
この下に Update Particle Strip をつなげ、最後に下にOutput Particle Strip line にすると、particleの移動に沿って軌跡がトレイルとしてつくことができる。
大体どんな使い方をしようとしても、ParticleStripはparticleの軌跡に出すことになると思うのでこの形になると思います。
ここから、initializeに InheritSourceColorを入れて親の色を軌跡に継承してみたりできる。
動きがつまらない場合は、UpdateParticleStripにTurbulenceを加え、出てきた軌跡がさらにアニメーションするなども可能。
そのまま消えるのが良くない場合は、OutputにmultiplyColorOverLife を入れ、白から黒に変わるようなGradationを入れる。

再説明。
元のParticleが動き、秒間60(ほぼ毎フレーム)イベントが発生。
それがsplitにコピーされ、コピーされた点を結んだ線となってRenderingされる。
コピーされた点はLifetimeで消えていくが、この秒数が大きくなればなるほどCapacityが必要になってくる。
そのCapacityを決めているのが、Particle per Strip Count。
Strip Capacityで線の本数、
線の中に何個Particleが存在できるかを決めるのがParticle per Strip Countで、
initialize Particle Strip の中で 1000×500 のParticleを管理している。
容易にデータが大きくなるので、ここの数値を増やしすぎないように注意が必要。
StripのRenderingはいくつか用意があり、
Output Particle Strip Quad にすると、幅を持ったラインで表現することもできる。
Set size を足して、太さの操作もできる。
テクスチャも変えられる。
Output Particle Strip Quadは、カメラの方を向いたラインを自動的に生成するため、どんなカメラ方向でも矛盾しない形で太さを持ったラインを引いてくれる。
Output Particle Strip Lit Quad にすると、ディレクショナルlightの方向や、Point light の位置で光を反映させたりすることができる。
Metallicやsmoothnessがはんえいできるため、金属みのあるリボンなども表現できる。
inspectorの cast shadows を入れれば、影の落ちた状態を作れる。
(PointLightのshadow map のEnableをOnにする)
inspectorのnormal Bending をOnにすると、見た目がチューブ状になるように法線を曲げてくれる。

KeijiroがVFXGraphのテストベットとして使っているリポジトリがある。

GitHub - keijiro/VfxGraphTestbed: My testbed for Unity VFX Graph
My testbed for Unity VFX Graph. Contribute to keijiro/VfxGraphTestbed development by creating an account on GitHub.

ここに、いくつかのサンプルを上げてあるため、使い方の例になる。

動画内の質疑応答まとめ

前半~休憩

質問:Outputにメタリックなどは使える?
→ 使える。
Output を Lit sphereにしてみる → 光の影響を受けず、黒い丸が出る
sceneのhierarchyにDirectional light を置く → 光の影響を受け、色が顕示される。
この状態であれば、SmoothnessやMetallicなどを使うことができる。

質問:ドキュメントが拡充されていない
→ 翻訳が追い付いていないので、英語のものをいったん翻訳しながら学習してください。
ウェブから入ったときに古いバージョンが表示されてしまうが、画面上部の青いボタンの”View latest version”を押すと最新のバージョンに切り替わる。

質問:nodeの整列はできる?
→ ない。スナップ等もない。
また、項目数が変わるとずれるため、たぶんなかなか作られない。
そのため、ある程度設定が固まったらグループ化・SUBGraph化(項目を選択し、Convert To Subgraph Operatorで保存)して整理すると良い。

■ lifetimeの乱数を強くする
Set Lifetime Random from Curve にしてみる。
右上がりのlinearにするとRandomConstantとあまり変わらないが、
急激なカーブでLifetimeが極端に長いゾーンを狭い幅で作ったりすると、大きく見た目が変わってわかりやすい。

質問:unityのCurveはどうやって受け渡しているの?
unityの場合、Curveの受け渡しは1次元テクスチャにベイクして渡している。
数式の場合フーリエ変換と同じように制度に限度があるため、画像にベイクしている。
数式の方がコンパクトだが、係数等の関係で再現怒涛に制限が出やすいため、少しデータが増えてしまうが自由度の高い画像へのベイクを採用している。

質問:今の画面のPostProcessは何がかかっている?
→ BloomやTonemappingのほかに、Keijiro作の Streak というものがかかっている。
これは、横方向に光が伸びるもの。
アナモーフィックレンズフレア といって、映画とかで使われているカメラレンズを使うとフレアが横方向に伸びる現象があり、映像作りでとりいれる人が多いのでそういうカスタムエフェクトを作って入れている。
なので単純にブルームで光る以上に、横方向にピカピカと光るエフェクトがつけてありますという感じですね。

Keijiroが作るカスタムエフェクトの公開場所は、すべてKino

GitHub - keijiro/Kino: A collection of custom post processing effects for Unity
A collection of custom post processing effects for Unity - keijiro/Kino

というリポジトリに入れている。
これのほかに、グリッチFxなどもある。

質問:カスタムのHLSLのコードをノードとして使うことはできますか?
→ できるが、やらない方が良い。
Updateされた際に置換が手間なため、SubGraphを利用した方が良い。

質問:Set old position というAttributeはどう使うの?
→ 使わない。使い道はない。
1f前のポジションを使うことができる機能がだ、Setする意味がない。
また、custom Attribute 等があるため、OldPositionをこねくりまわして変数に使ったりはしない。
そのため、見る専用で使うことのないAttributeで、使い場所はない。

質問:SDF(Signed Distance Fields)をベイクするとき、いびつな形でベイクされてしまいますが、対処法は?
→ まず解像度を上げる、それで正しく出せるのであればそこから適切な解像度まで下げていく。
フーディニでDistanceFieldをベイクするときの話だと思うが、https://github.com/keijiro/VectorFieldExamplesのGifにあるように、フーディニ上でディスタンスフィールド焼き付けてVFXグラフで使うということができます。
ぶっちゃけ解像度を上げれば綺麗になるので、ディスタンスフィールドのボリュームデータの解像度を上げてくというのが回答になると思う。
ただし、解像度を上げれば上げるほどデータ構造が大きくなっていくので、むやみに上げることもできない。

質問:公式でSDFをベイクするツールを提供する予定はあるか?
→ フーディニのプラグインは配っている。unity上でベイクするツールは今のところ公式では予定していない。

質問:エフェクトの逆再生はできる?
→ 現状はできない。

質問:機能リクエストの方法は?
→ 各機能のフォーラムに質問スレッドがあるため、そこを使うのが良い。

質問:はじめてFxを置くと黒くなってしまうがどうしたら良い?
→ プロジェクトを作り、シーンを作り、シーンにdefaultのVFXGraphを置いてみても何も出ていないor真っ黒であれば、何かがバグっているため手順を見直してください。

質問:Particle同士の距離を計算することはできる?
→ できないと言っておく。
ParticleStripを除き、前に生まれたり隣にいるものなどを認識して挙動を変えるなどはできない。

質問:VFXGraphのカラー情報をShaderGraphに渡す方法が知りたい
→ GetColorからしてShaderGraphの引数に入れ直してください。
まず、ビジュアルエフェクトグラフでシェーダーグラフを使うことができます。
作り方は Create > Shader > VFXShaderGraph を選択し、ビジュアルエフェクトの中で使うシェーダーを定義することができる。
例えば、
カラーとかを作ってあげて、カラーを出力するだけの簡単なシェーダーを作ります。
これをVFXGraphのエフェクトで使おうと思ったら、作ったシェーダーグラフをOutputParticleQuadのShaderGraphに入れると、適用されて使えるようになる。
ここにパーティクルのカラーの情報を渡そうと思ったら、ちょっと面倒くさいが、一旦GetColorとかで現在のパーティクルの色情報を取得して、さっき作ったプロパティ(ShaderGraphを入れたブロックのColorにつなぐ)に入れてもらう必要がある。
これをしたうえで、Initialに SetColorRandom from Gradientなどを設定すれば、カラーが反映される。

やらせ質問:おすすめの椅子は?
→ スチールケースのオフィスチェアをunityで使っている。

Steelcase 日本公式 オンラインショップ
Steelcaseは100年以上にわたり、家具、デザイン、建築およびテクノロジーの分野で革新的なソリューションを創造し、私たちの生活や仕事のあり方を変え、人間の可能性を引き出してきました。

高い椅子に座ると、グレードを落とすと勝てない。

後半~ラスト

質問:ユナイト東京2019でおっしゃっていた、自作で2次元テクスチャーにレイクスればいろいろ作れるというお話があったんですが、ベイクするテクスチャーの使用はどこを見ればわかるでしょう?
→ BAKEする手順については、

https://github.com/keijiro/Smrvfx の中のskinned mesh

を参考にするとよい。
のアニメーションしてるモデルの頂点情報を、テクスチャーにBAKEしてVFXグラフの中で使うっていうサンプルなんですが、テクスチャーにBAKEして渡す系のプラグインとしては一番これが単純な構造をしてると思います。
実際にsourceを見てみると、

  1. 本体のスクリプト:SkinnedMeshBaker.cs
  2. ユーティリティ:Utility.cs
  3. コンピュートシェーダー:SkinnedMeshBaker.compute

で構成されていて、すごくシンプルにできているので、このソースコードを見て実際どういうことをやってるのかっていうのを把握してもらうのが一番参考になると思います。

GitHub - keijiro/Smrvfx: Skinned mesh sampling with VFX Graph
Skinned mesh sampling with VFX Graph. Contribute to keijiro/Smrvfx development by creating an account on GitHub.

質問:Android向けのVFXグラフの動作は対応チップのコンピュートshaderの対応有無によってしまうのでしょうか?
→ VFXグラフのバージョンアップの度に試してはいるものの、少し古めの手持ちの端末では全く動作しません。
一応理屈としては、コンピュートシェードが動くスペックのAndroid端末であれば動きますよというふうに言ってはいるんですけれど、実際問題としては、やはりおっしゃられてるように動かない端末動かない環境っていうのが存在してしまっているようです。
将来的はその辺の問題も解決して、コンピュートシェーダーが動く端末であればここまでのビジュアルエフェクトは使えますという情報をまとめたいと思ってる。
(iOSは検証がしやすいため知見もたまっているが、androidは世界が広すぎて断定がしづらく対応が遅れがち)

質問:普通のParticleは1ポリで書いていると思うが、LineStripはどう描画されている?
→ scene viewのワイヤーフレームで見てみると、Particle1個1個が短冊1個1個を世話していてそれをStrip状につないでいっている感じ。
これで、カメラ方向を常に向くようにVFXGraphでお世話してくれている。

質問:ノードを置いていく際に、どのノードがどのくらいのパフォーマンスを食うというかの目安はあるんでしょうか?何かプロファイラーで見るとか。
→ 撮影当時は用意されていないが準備中。
at / set / Multiply / give などの基本的なオペレーションに関しては、ほとんど負荷は発生していない認識で良い。
一番負荷を発生させやすいのはnoiseのため、noiseを使用した複雑なシステムをなん十個も並べると思いだろうが、他はあまり気にしなくても良い。

VFX Graph 秋の花火大会

【自動文字起こし・内容未調整】

はい。音を聞こえてますということで、ありがとうございます。他人の力を使ってね、接続状態を確認していくってことで、はい。始めていきますかあ今日はね何だろう。すげえだろって言います。なんだろう、ちゃんとね今日はね進行とか全然決めてなくてもうただ単にですね、VFXグラフを使って、花火を作ろうというところしかシナリオがないのです。

なんかいつもみたいですね。なんか、進行を作っておいて、そのレールの上を走ってくぜみたいなやつじゃなくて、もうその場その場のノリでやっていきたいと思いますのでごゆるりと見る方もゆったりした形でお願いします。

さあどうですかね花火、僕なんだろう。花火って言ったら秋かなと思って何となく秋の花火大会っていう形で今回の企画は立ててみたんですけれど何だろうなこの何か地元とかも昔は夏にやっぱり花火大会ってやってたんすけど、なんか一時期あれですよね。

なんか確か何年か前に1回その8月に花火大会やったらその日にたまたますげえゲリラ豪雨が来ちゃって、なんか実際毛蟹とかでちゃったんですよねなんかやっぱ夏にやるのはリスクでしかないっていうことで、なんか最近は10月、秋とかにずれちゃいましたね。

なんか、ましてや今年とかはいろんな事情があって、花火大会ってほとんどやっほとんどやっていないっていうかもう全国的に皆無なんですかね、全く行われていない状態だと思うんですけどせめて、パソコンの上では、花火を上げましょうやということで今回はですね、風に花火を上げていきたいと思います。

さあ、うん。隅田が隅田川も土砂降りで中止になったことあったんだ。もうなんか今、昨今、夏のその夕方以降の気候って全然読めないからなんか夏の夜に野外でイベントやるのとか、もうリスクでしかないですよね。だからそんななるほどもあって、夏にやってたところも秋にスライドしていったりしてんじゃないかなと今回はVFXで花火を作っていくということでとりあえずね、すっからかんのHDRPOインストールしただけの空っぽのプロジェクトをあらかじめ用意しておきました。

点もHDRPのインポートちょっと時間かかるんでそこら辺までは事前にやっていこうっていう配慮ですね。アセットがロックされてるのでチェックアウトしてこっからVFX作り始めましょうか一応、今回VFXグラフ使ったことない人もちょっと意識して何か基本的なところについても、途中言及していこうと思ってるので、あの回りくどい言い方とか多くなるかもしれませんがそこはご了承くださいこれ初期状態のパーティクルシステムですけれど使っ既にVFXグラフ使ってる方にはおなじみだと思いますが、最初にこのスポーティーってパーティクルを生み出すためのノードとパーティクル初期化するためのイニシャライズの濃度とパーティクル動かすためのアプリアップ度アップデートの濃度等、パーティクルレンダリングするためのアウトプットの道があるという状態で今は何もパーティクル動かしてないんで真ん中に白い点が出るだけの状態になってるっていうまさに初期状態ですね。

こっからちょっと花火っぽくしましょうか?もうこの顔の絵は、これ、これなんか何となく技術系の配信って、あの子の顔のカメラ入れがちな傾向にあると思うんで何となくの義務感で、今回もこれ入れてあるんすけど、もうほとんどいらないっすよねこれ別にか出てても出てなくても変わんねじゃんっていうのあってもうな何気にカメラのセットアップとか面倒くさいんで次回からやめようかなとか思ってたりするんですけれど、これ入ってると、グラフが見えなくなっちゃうんでね、消していきたいと思います。

はい。そうだな。まずはパーティクルをとにかく動かしましょう。花火って言ったらバーンて爆発するんでちょっと散らすところを作ってみましょうか?ZOOパーティクルを散らすってなったらランダムな方向にVelocityを与えて散らせばいいんじゃないかなって考えると思うんですよ僕も最初そう考えました。

なので、この初期化するイニシャライズコンテキストの中で、窃盗Velocity速度のセットですね。これこれ、あのVelocityこういうふうに設定初期速度を設定してあげることによってパーティクル動き始めるわけですけれど、これをランダムに散らしてあげればいいんじゃないかなと思ってこのここのインスペクターの中にあるランダムっていう項目をパーコンポーネントにしてちょっといろんな方向に散らしてみましょうか?

はい。いろんな方向に散りました。ちってくようになったんでこれでなんか時間にバラけてブツブツって出てくんじゃなくて、あの一瞬でパンッて、たくさんのパーティクルが出てくる出てくるようにしたいので、このコンスタントスポンレートっていうのじゃなくて、シングルバーストにしましょうかね。

シングルバーストで100個とか出してみましょうか?ファーンちょっともうちょっと繰り返し確認したいんでパリオリンピックバースと思う追加しましょうこれで100個で、1秒ごとに100個のパーティクルを生むようにしてみましょう。

これで100個のパーティクルがポンッて飛ぶようになったわけですけれど、ちょっと生存期間もちょっと短くしてみましょうか?なったんですけれど、これだとですね、ランダムのパーカーコンポーネントてセットベルシティするとですね、飛び散る範囲が死角になっちゃうんですよねこれね、どうなってるかっていうと大体この枠の中にパーティクルが飛び散ってるのがわかると思うんですけれどわかりますかね。

これ本当は花火だったらルーク飛び散ってほしいんですよね。なのでこういう丸く飛び散ってほしい場合にはパワーポンポンねというランダムGをあの代入するだけだと不完全なんですよね。なので、僕これ実際あの花火エフェクトでも作ってみようかって思って実際これを最初はやったんですけれど、これは駄目だなって思ったわけですね。

パーコンポーネントじゃなくて、次はここのランダムな方向に長さ1のベクトルっていうのを、これ線がぶっといなこれビッグ編って線の太さを変えるのってどうやんだっけ、これでここ入れ替えられるんだ変えられるとか他はい。

真ん中から長さ1のランダムな方向のベクトルを生成して散らしてあげれば、丸い範囲に飛んでくれるんじゃないかなと考えたわけですね。なので、よいしょこれ出したままにしとくか、何回か使うだろう。はい。ランダムな方向のベクトルをですね生成してくれるですねスクリプトをスクリプトっていうかサブグラフを作ったんで、ちょっとそれを使っちゃいましょうこのらんだむディレクションっていうサブグラフなんですけれど、サブグラフってちょっとVFXグラフ使ったことのある人でももしかしたら使ったことのない機能かもしれませんが、なんだろうこれエンターサブグラフ化こういうふうに自分で作ったグラフをガチャッて一つにまとめて独自のカスタムのノードを作ることができるんですよね。

これを使って、ちょっとこの、実は長さ1のランダムなベクトルって整数の結構面倒くさい処理になるんですけれど、この面倒くさい部分をこのサブグラフの中に隠しちゃいました。はい。こいつがですねなんか浅い位置のランダムな方向のベクトルを生成してくれるはずです。

なのでいつ繋いでみましょうかセットベルシティ、はい。こんな感じで何となくこのさっき言ってた悪い範囲に飛んでくっていう野望はこれで実現できたんですけれどこれ見てみるとね、あんまりやっぱり花火ぽくないんですよね。

なんでかっていうと、花火って実際にはこれ飛び散る方向ランダムではないんですよ。あの花火の内部構造考えてみればよくわかるんですけれど後中心に工作薬があって、何か細かい球が並んでるんですよね。花火の、これ今花火の内部構造を描いています。

これが包み紙に包まれていて花火ってなってるわけですけれどこの真ん中の炸薬が炸裂することによってこれが飛んでいくわけですけれどこの球って規則正しく並んでるんで、割と規則正しく分散していくんですよね。なので、ランダムなベクトル突っ込むだけだと、どうしてもちょっと花火っぽい動きになってくれないということでこのランダムな方向作戦もですね、実はですね、失敗です。

これ実際本当に最初エフェクトを作ったときに、ランダムなベクトルつっこめば何となくそれっぽくなるかなと思ったんですけどね。それは愚かな考えでした。ということで、このですね規則正しく点が9面上に並んだ。ベクトルっていうのを生成しなきゃいけないんですけれど、それをですねこのグラフ上で計算でやるのはかなり面倒くさいことになるので、そういう天狗をデータとして作っちゃいましょう。

ここで御風呂にブレンダーを立ち上げます。ブレンダーでですねのメッシュでスピアーがあるんですけれど、UVCこれ小さくて見えないかなみんなの言うvSphereっていうのとソフィアっていうのがあるんですね。

UVスフィアはですね、これ形を見ればわかるように、ちょっと上と下の部分に店が集中してしまっていて、店が一応に分布してないんでこれは使えないです。もう一つのですねスフィアの方は今回の用途にはかなり都合がいいです。

一応面接一応分布するように店が規則正しく並んでいるので実際の花火の球の配置とはちょっと違うかもしれませんけれど多分これを使えばかなり花火っぽくなるんじゃないかなと思うんですよ。実際試してみましょう。これスムース制度に変えた方がいいかな。

ごめんそんな頻繁にブレンダー使わないんで。これか。結構ねこういう基本的な操作に戸惑っちゃうんですけれど、これいらないやつを消しとくか。はい。こんな感じで出力すれば多分大丈夫なはず。エクスポートでBJファイルでいいでしょう。

これをデスクトップ部に名前はスフィアとかで吐き出しておきましょうか?これで出たはずなのでデスクトップのスフィア.BJをインポートとこれでちゃんとインポートできてますね。こんな感じでaikoスフィアのメッシがインポートできたんでこれを今度はVFXグラフの中で使える点群データに変換します。

これはですね実はね、VFXグラフに標準のツールとして用意されてるんですよねこのビジュアルウィンドウのVisualEffectsの中に、ユーティリティの中にポイントキャッシュベイプツールっていうのがあります。

これを開いて、ここにドックしちゃおうかなはい。これのBAKEモードメッシュでソースとなるメッシュをここに突っ込んであげて、これでいっか。はい。ディストリビューション点群の点をどうやって分布させるかっていう話でこれはですねこれランダムにサンプルすることもできるんですけれど今回は規則正しく点を並べたいんで、シーケンシャルにしましょう。

ベイプモードトライアングルをベースにして点群を作りたいって、ノーマルは球体なんでいらないでしょう。これでポイントカウントがこれ点のデータこの球体240indexだから3で割って80頂点でいいんじゃないかな。

これでSavetoPキャッシュファイルっていうのを押すと、これをPキャッシュ、ポイントキャッシュ天狗データとして出力することができますフィギュアとかで出しましょう。これで、ここにスフィアポイントキャッシュアセットが生成されました。

UnityのプリミティブSphereじゃ駄目なんですかねあれでもいいのかな、いっちゃいいのかも、Blender立ち上げるのが面倒くさい方はUnityのプリミティブスフィア使ってもいいと思いますよ。はい。

この点群作ったスフィア.PキャッシュをこのVFXグラフ上で使うにはクリエイト濃度して、P9ポイントキャッシュ、ノードを作って、ここにこのスフィアPキャッシュを入れて、そうすると、こういうふうにこの点群のポイントカウント点の数と、このアトリビュートマップポジションのマップが取れるようになります。

ポイントかメッシュのトライアングル数より多くしたらどうなるんですかってことなんですけれどこれランダムにDistributionランダムにした場合はその点、トライアングルの上に今はシーケンシャルにしてトライアングルのモードにしてるんで、各トライアングルのこれ多分真ん中の点をサンプルしてんだと思いますけれど、トライアングルごとにこうやって1個ずつ好転が散布される状態になりますが、ポイント数を増やした上でランダムにしてあげると、これをランダムにサンプルしていって適当に店を増やしてくれるんですよね。

なので今回みたいに規則正しくしたいみたいな意図がない場合はランダムにして、ポイント数を自由に増減できるようなスタイルで行った方が多分ね、使いやすいと思います。はい。今回インポートしたこのポイントキャッシュのポイントカウントを使ってスポンさせましょう。

よいしょそして、これでVelocityをセットしたいんでよいしょセットVelocityfromマップっていうブロックがありますんで、こいつを配置して、こいつにこのポイントキャッシュのポジションアトリビュートマップ繋いであげれば、繋いであげればどうなるんだ。

繋いであげたけど、どうにもなんないのは何が起こってんですよシーケンシャルにしないと駄目かな。これはね、今何がてんだろポジションこれ何か失敗したかな。ミュートマップせごめんなさい。今ね、セット暗記ラベルシティにしてた、これ角速度になっちゃってますね。

失敗失敗なので、これのアトリビュートVelocityに変えましょう、Aメロしてうん。このサンプルモードがランダムになってると、店がランダムに配置されちゃって、全部の店を使うことができないのでこれシーケンシャルにしときましょうね。

これおそらく、取り込んだaikoスフィアの何かね、1個変なのが出てるのがすごい気になるんですけれどこれね、僕米作ったときもこの研修を来ちゃったんだよなこれはねちょっと今無視してくださいこんな感じでIQOSスフィアの点群を使ってCERO初期Velocityを設定してあげることによってどういうふうに花火っぽい動きで犬を送り出すことができるようになりました。

これねこの1点がね何で出ちゃうのかっていうのが謎なんですがちょっと気になるんで底の数を1個減らしておきましょう。これでいいだろう。悪い子でんな俺言いたいしなきゃ駄目だなよしこれね何なんだろうな僕前やったときもねこれ出ちゃったんだよなうん。

なんかね多分点検データの中にねいらんもんが何か混ざってんだと思うんですけどね。これはね、OK今回は気にしないということで行きましょうか?これ何なんだろうな多分ねテクスチャデータにね変なドットが一つ混じっちゃってるそういうやつだと思うんだけどなシーケンシャルはい。

今回は、気にしない。ちょっともう1回作り直してみようかこれ西武TOBEキャッシュファイルっぽいはいちょっとねこれ気にしないってするのがいいと思うんですけれどちょっとね、対処してみるのも面白いと思うんで、対処しちゃいましょうGETVelocityしても何か一つVelocityの値が異様に高いやつが出てるんでGETVelocityして、これのレングスを取って、これコンペして、レースはイコール1.01だったら、ファーストのパーティクルはライブしても良いっていう感じにしましょうか?これで対処できたか。

うん。これね余計な処理をここに1個挟むことになっちゃうんでこれはすごく健全な対処方法ではないんですけれどいや今回ちょっとあのぴってのが気になるんでこれで対象としておきましょう今やったのはこのマップからVelocityを拾ってきて設定してからそのVelocityがいいように大きな値だったらこのセットライブをオフにすることによってパーティクルを殺すっていうまさに対象療法ですね。

はい。これね後は後でデータの方でちゃんと直しておきたいですけれどデータが駄目ならプログラムで直そうっていう考え方ですね。はいはい。で、これで、初期速度はとりあえずどうにかなったので、あとはこれをもうちょっと花火っぽくしていきましょうか花火ってなると球が最初勢いよく飛んでいって空気抵抗でだんだん遅くなってくっていう運動がおなじみのニュートン力学的な動きですけれどあると思うので、ここにリニアドラック、空気抵抗を入れてあげてうん。

もうちょっとね、曲見た目極端にしてみましょうか?今1秒しか1秒1秒1.5秒ぐらい生きてもいいかな。うん。初期速度をちょっともうちょっと早めてあげたいので①マルチプライVelocityをして、これで速度を2倍ぐらいにしちゃおうかなて空気抵抗値を増やしてあげると、はいこんな感じで最初は動きが速いんだけどだんだん抵抗で遅くなってくっていうのができましたね。

さらに花火なんでこれ重力で下に落ちてくわけなんで、これでフォースを与えてあげてこれで下方向に8-1ちょと収録中すぎるかな今マイナス0.5ぐらいにしましたけれど、こんな感じでだんだんと花火っぽい動きになってきたかなと思いますこれでいいかすぎるんで、ちょっとはい。

うん。まあね皆さんはねここでおもむろにYouTubeとか開いて、実際の花火の動きとかを見てみながらこの動きのパラメータを調整していくといいと思います。僕が今ここでYouTube開くといろんないろんなまずいことが起きちゃいそうなんで、やりませんが実際にはね、そういったリファレンスを細かく見ていって調節していくのがいいと思います。

もうなんかもうちょっと市所属があった上で、食って減速するみたいなのがあった方がいいなちょっとこれパーティクル大きすぎるんで、パーティクルちょっと小さくしましょうか?セットサイズ0.01とかでいいんじゃないかな。

ちょっと小さすぎる。これで明るさを明るくしてあげれば、ブルームがかかって、ちょうどいい感じになるんじゃないかな。こんぐらいやった方がいい。こんな感じかな。これだったらもうちょっと小さくしてもOKですね。

こんぐらいないと駄目か。こんぐらいか。パパッて消えちゃってるのをだんだん暗くしてくっていうのをやりたいので、ここら辺はパーティクル作るときはおなじみの作業になりますねセットαオーバーライフとかにしましょっか。

これで生まれてから死ぬまでのアルファ値のアニメーションを作れるので、これ爆発した瞬間もう1でいいはずで、01で夫最後最後どうなんだろうな。後継た方がいいのかなもうちょっと線形こんぐらいがいいのかなうん。

結構ね花火ってお尻の方までね、発光してるような気がするんですよなんか急に火薬が切れるみたいな動きをしますよね。うん。とりあえずこんなもんでいいかな今あの動きがね規則正しくしてったわけですけれどあまりにも規則正しいすぎるので、ちょっとランダム性を加えてみましょうか例えば初期速度も今は一律に1.2にしちゃってるんですけれど、これもちょっとランダム性があっても多分いいと思うんですよね。

なので、これ固定値で今1.2ってしちゃってるのをランダムとかにしましょっか。ランダムナンバーでシード適当な値にして、1から11.1から1.4円も減ってきたような感じでやってますけれど、すごいちょっと形が崩れすぎなのかな。

なんかやっぱり丸い形が出た方が華びっくりですよね。うんこんぐらいにしておいた方がいいかなあとは、テク家庭でもちょっとぶれが発生した方がちょっと自然ぽくなるんじゃないかなと思うのでタービュランスを加えてみましょっかタービュランス、これ初期設定でやるとなんか、ブラックホークブラックホールに吸い込まれる花火みたいな感じになっちゃいますけれども、これを細かく何かブラウン運動的に何かぶれを発生させたい今度は大雑把なノイズではなくて、Frequencyを思い切り上げてあげましょう。

何かこういう動きをする花火もありますよね。でもそうそうじゃないんだ、そうじゃないんだけど18ぐらい今ほんのちょっとちょっとタービュランス強すぎるかなっていうのもあるんですけれど何か最後に落ちていくときにちょっと揺らぐ感じがなんか味わい深い気がしますねもしかしたらタービュランスもあんましリアルな考察には基づいてないんですけれどアニメーションさしちゃった方がいいのかもなHオーバーライフとかくパーティクルのね生まれてから死ぬまでのタイムに沿ってカーブを使って、0.1ぐらいが最大値になるようにだから最初は全然ノイズの影響を受けないんだけど、なんか途中から違う0.1だが、ここらへんか。

なんかこんな感じにしてあげてもいいのかなうんちょっとねわざとらしすぎる気もしますけれど今回はこの、この味わいでいきましょうか?ちょっとFrequencyあげようかな何かこれ25ぐらい。Fire今回これでいきましょう。

あとあれじゃないこれを多分この各パーティクルの生存期間も今一律1.5秒で消えるようにしちゃってるんですけど、これも多分ランダム性があった方がいいと思いますなのでこのセットライフタイムのランダムをユニフォームにして、早いやつは1.2秒ぐらい細いやつは2秒ぐらい生きる。

うんこんぐらいお尻はばらけててもいいのかな.8ぐらいにしよっか。うん。なんかパラパラっと全部が一気にぱっと消えるんじゃなくて、なんか長く生きるやつは長く生きて短く、死ぬやつは右枠死ぬみたいなばらつきが出たと思います。

基本はこんな感じかな。こんな感じで、基本の動きを作ってきたわけですけれど、今この組み方だと、この真ん中に常にこの花火が1秒ごとに生まれるだけで、花火って言ったらもっといろんなところから水をおっきにパンパンと生み出されてほしいので、そうやってランダムにこのパーティクルを発生させるにはどうしたらいいのかというのをやりたいと思います。

減少して質量が減ると空気の影響を受けやすいのでその辺です確かにそうなのかもしれないな。確かに質量が変化するからどうなんだろうな質量が変化しても重力加速度は変わらないけど、終端速度は変わるのかとか何かね、そういったちょっと物理学的なアプローチから考えていても面白いと思いますが今回はこの程度にしておいて、いろんなところからパーティクル発生させるにはどうしたらいいかというと、いろんなところからパーティクルを発生させていいなとか思ってこの初期値の中でセットポジションして、これをランダムにしてとかやるとどういうことが起こるかというとですね、ねこういうことになってしまうんですよね。

こういうことじゃないんだよっていう話なんですけれど、これ各パーティクルをランダムうちランダムな場所に設定したところでこういうふうにばらけたパーティクルが発生するだけで、このある、ある塊においては一つの場所から発生してほしいけど次に発生する塊は別の場所から発生してほしいというふうなポジションの設定の仕方になるんですよね。

なので、こういった単純に各パーティクルの初期化処理の中でセットポジションをらんだむすればいいっていうわけじゃないです。こういった書類を作る場合にはですね、サブリミッターを使うととても便利にできますということかというと、もう一つパーティクルエフェクトを作ってあげて、そのパーティクルをランダムな場所に散らしてあげるんですね。

それがそのパーティーらしいんだときにこのパーティクルを発生させるっていう仕組みを作ってあげると、望み通りのものが作れます口で言ってもなかなか説明が難しいので実際に作ってみましょう。まずは、もう一つここに独立したパーティクルシステムを作りますシンプルパーティクルシステムでいいかなはい。

でもってちょっとこいつは休んでおいてもらいましょうこのパーティクルシステムこの何か余計なアニメーションと運動はいらなくて画面上のいろんなところに発生させるというふうな処理を組みましょう。初期ポジションをパーコンポーネントにして、どんぐらい0.0点マイナス0.6から0.6、高さはちょい下からあんまり下に花火爆発させても、地上の方々が危険なので、上の方で爆発するようにしたいと3こんなもんでいいかなもうちょっと発生間隔を狭めてあげてこういった別のパーティクルをつくパーティクルシステムを作ってあげてこのそれぞれのパーティクルが死ぬタイミングで、こっちの本ちゃんの花火を生成してあげることにします。

こういったものを組むにはどうしたらいいかというとこのアップデートパーティクルのコンテキストの中でイベントで鳥がイベント音大っていうのがあるんでこれでパーティクルが死んだ時に発生するエフェクトというのを生成できます。

もしかしたらねイベントっていう、この仕組みがですね昔のXグラフだとエクスペリメンタルだったりするので、もしかしたらこのVisualEffectsのリファレンスの中にあるこのエクスペリメンタルオペレーター図&ボックスっていうのをにしないと出てこないかもしれないので出てこなかった場合はこれオンにしてくださいねこれでパーティクルをよいしょGPUイベントに繋いであげてて、これを断ち切った上で、こいつを繋ぐとおっす。

はい。これで各パーティクルが死ぬときにパーティクルが出るっていうのが、できてないね、これ全然場所が継承されてないや、この親元の種のパーティクルのポジションを、この初期座標として継承してほしいので、ここで銀へりっとソースポジションっていうのを使います。

そうすると、はい。各パーティクルが死ぬときに、そっからパーティクルが出るっていう関係が作れましたね。あとはこのパーティクルーの数をこのカウントで調節できるんですけれどこれを天狗の数にしましょう。そうすると、1はい、こうやって各パーティクルが死ぬときに、このパーティクルが出てくるようになりましたとなんで死ぬときにやりますかねっていうことなんですけどこれあのね残念ながら猫のトリガーイベントていうのが今んところイベント常にイベントを発生させる、あるいは何秒かおきにこのイベントを発生させる。

あるいは死ぬときに発生させるってこの三つしか選択肢がないんで、パーティクルがこの出てくるときにイベントを発生させるっていうのはね、残念ながらちょっとできないんですよね。今これ別にこの何秒間か、生きて死亡するっていうためを作る必要はないので、もう即座にこのパーティ暮らしのようにしましょう。

00で死ぬ。リアルとこういうふうにまさに望んでいたことができるようになるわけです。なるほど、これアウトプットいらないんで消しちゃいましょう。あとはちょっとこのパーティクル花火ごとに色を変えてみましょうか?色についても、こちらの初期化処理の中でランダムで設定してしまうと、ここのパーティクルごとに色が変わってしまうので、都合が悪いですちょっと試しにやってみるとランダムナンバーを生成して、適当にHSVとかを使いましょうか?ええとヒュー色相にランダム地を突っ込んで、それをカラーとして設定して、最後のセットから使うんじゃなくてこれをマルチプランに変更していきましょうか?はい。

こういう花火もあるっちゃあるんですけれど、それぞれの球においては同じ色を使い回してほしいので、そういった場合にはどうすればいいかというと、やはりこのセットカラーをこの親の著親のパーティクルシステムの方に移動してあげて、この親のパーティクルシステムの色を子供は引き継ぐという形にすればいいわけですゲリット、ソースカラーを使います。

はい。これで角玉においては同じ色が使われるようになったと同じような考え方でちょっと各よいしょパーティクルの各花火の大きさもちょっと変えてみましょうか?初期速度をランダムに決めてみたいと思います。これで大きな花火とか小さな花火とかがランダムで生成されるように分けるわけですね。

それもやっぱりこの親のパーティクルの方でランダムに速度を設定してあげるんですけれどここではカスタムアトリビュートを使いましょうか?カスタムアトリビュート、これは自分で勝手に名前を決められるアトリビュートです。

ここで花火パワーとしてパワーとかにしましょっか。パワーは固定値ではなくてランダム値で今いくつぐらいしてたんだっけ1.1とかそのあたりか。豊明の花火は0.5強めの花火は2とかにしましょうか?こういうふうにランダムにこのパワーっていうカスタマートリビュートをここで設定してあげるわけです。

この子供のパックリシステムの方ではですね、パワートリビュート院ヘリとすればいいんですけれど、残念ながらね、ゲリットカスタムアトリビュートっていうブロックは存在しないので、ちょっと面倒くさいんですけれどここでゲットカスタマートリビュートってして、パワーでしてこのロケーションっていうのをソースにしてあげることによって親のパワーの値を拾ってくることができます。

これを使ってVelocityにかけてあげれば、小さい花火とかでっかい花火とかがランダムに出てくるようになるわけですね。こんな感じで多分このパーティクルの生存期間とかサイズとかに関しても、親の方でランダム値を作ってあげて子供の方でそれを引き継ぐっていう形にしてあげれば、いろんなバリエーションを作ることができると思います。

よしさあこんな感じでとりあえず一通り花火っぽくはなってきたんですけれど、もう一つね、これをつけるとぐっと花火っぽくなるなっていう要素として花火の軌跡花火の種類によりますけれど体系の花火って飛び散るときに火花を散らしながら飛んでいって奇跡を描くようになってるんですよね。

なのでその奇跡のエフェクトを作ってあげたいと思います。これも今作ったみたいな、この親子関係を使って作っていってあげます。すなわち、この各飛んでいくパーティクルの中において、定期的に奇跡の火花を生成するイベントっていうのを追加してあげるわけですね。

なのでここでクリエイトブロックしてイベント例とを作ってあげて、これでこのモードがオーバータイムの場合は何秒1秒当たり何回のイベントを発生させるかっていう時間当たりの割合でイベント発生を定義できます。あるいはオーバーディスタンスっていうのを使って1m鳥羽間に何回イベントを発生させるかっていう距離ベースの設定の仕方もあるんですけれど多分ね今回はオーバータイムの方になると思うんで、タイムにしましょう。

こっからイベントを生成してあげて、初期化処理の中で、多分これ奇跡のパーティクルはかなり数を発生させることになるので実はちょっと1万にしときましょうか?1万個のパーティクルをキャパシティとして用意します。

親からヘリっとソースポジションを使って親のポジションを参照しますと、親のポジションだけでいくか最初はライフタイム、ライフタイムライフタイムなこのパーティクルはセットライフタイムでとりあえず1秒生存するようにしましょうか?1秒生存しますとアップデートを行って、クワッドを使いましょうか?これは面倒くさいんで親のコピーしてコピペはい。

これちょっとだいぶ子が目立ちすぎなんでサイズをもっと小さくしちゃってもいいね多分こんな感じで、ちょっと赤みを帯びた色にしよっかなうん。もっと暗くしちゃってもいいのかなうん。はい。こんな感じで奇跡を作ることができますこれね多分ね1秒間に50個ぐらい作っちゃってもいいんじゃないかな。

俺ちょっと作りすぎ、いや、こんなもんだ、こんな、こんなんじゃないかな4040日とか、はい。こんな感じで奇跡を作ることができましたがやっぱりこの奇跡もですねこれ今あのポジションを引き継いだだけでそこの位置に張り付いてしまってるんでこいつも当然重力で落ちるはずですよねなので、フォースで下方向なんか、異次元に吸収される。

花火みたいな感じ。これマイナス0.-0.1、どうなんだろうちょっと同じ定数を使ってこうかな親で使ってた空気抵抗の値が2なんで、こちらでもリニアドラック2とかを使って、ちなみに親はマイナス0.4とかにしてたのか、結構重力強めなんだ。

これ小粒なんでねもっとね終端速度が遅くなると思うんですよね。なんか、何となくちょっと落ちてるかなぐらいでいいと思うんすよね。あとは、こいつもこれねちょっと迷うとこなんですけれど、これね一応親のこの花火飛んでるところから発生していく親の速度も幾分か引き継ぐと思うんですよねだからヘリっとソースVelocityをスカッて真似親の速度をね完全に引きついちゃうとこういう感じになっちゃうんですけれどそれにマルチプライVelocityとかをしてちょっと速度を親の速度の10%ぐらいを引き継ぐみたいなうんあんましわかんないけどでもね超えない値はわかんない程度に強いめちゃくちゃわかるぐらい入れちゃうと、わざとらしくなっちゃうと思うんでこのぐらいにしとこうかな。

あとはねこいつらにも乱流を加えてあげてこれまた1弦エフェクトになっちゃうのでこいつも20とかにしよっか。いやこれねもっとねFrequency高くていいんじゃないかなもう何かランダムになんか、いい感じにいい感じに近づいてきたような気がしますね。

ちょちょっとわざとらしくなってるけど今回はね、ちょっと秀作というか練習なんでわざとらしくなるぐらいで効果を残しておきましょうか?ちょっと明るすぎるなやっぱこれからをもうちょっと下げとくかなうん多分コンコンぐらいが切りリアルならいいんじゃないかな。

これ生存期間がね1秒って言ってちょっと長すぎなのかもっとキリッと消しちゃった方がいいんですかね。あるいはすげえ伸ばすとか、俺なんか全然パーティクル数が足りなくなっちゃってますもうキャパシティ10万個でいきましょう。

何かあれですよね。花火大会の終盤のスターマインとかってなんかすごく盛り上がるところで、なんか何となく花火師の気持ちになっちゃうんですけれど、めちゃくちゃ余韻を作るために長いく生存する軌跡をわざと出すみたいな演出もあったりしますよねだからそういうところでは多分この2秒ぐらい軌跡を残すっていうのがあったりすると思うんですけれどなんか通常はもうちょっとなんか、こんぐらいの奇跡のような気がするんですよね。

だからこれに関してももしかしたら親ランダムにこれ加水カスタマートリビュートを増やしましたトレイルトレイルライフとかでなんか0.秒5秒か何かで作ってあげたやつここカスタム後リピートこれこれだねちょっと面倒くさいんだよなトレイルライフでしたっけそうすかLINEヘリとしたやつをセットカスタムヘリとカスタマートリビュートってね、絶対必要だと思うんですけどね、ちょっと開発チームに提案しなければこうやってインテリっとインテリっとしていけば、この最後のトレイルの中で使えるようになるんじゃないか。

はい。うん。ちょっとわかりにくいかもしれませんがこれで奇跡がすごい多く残る花火もあれば、結構短めに奇跡が死んでいくやつもありますっていうふうなランダムな設定ができるようになったかな。うん。あるいはそのカーナビの盛り上がり方に盛り上がり、盛り上がり具合と比例する形でこの何かライフタイムを伸ばしていくみたいなそういうパラメータをタイムラインでね、制御してあげてとか、そういった工夫をしていくことになるのかなと思います。

うん。はいはい。枝垂だと長いですよねなんかも何か花火の種類ってよくわかんないですけれどすごく金色のやつでものすごく奇跡が流れる。長く上り残るやつとかありますよねあれがしだれっていうのがこんな感じでそれっぽくなってきたんじゃないかな。

今回はねこういうふうにいろんな場所から突然花火が発生してる形にしてるんですけれどこれでもう1回頑張ってこっちにもう一つ元のパーティクルシステムを作ってあげて下から飛んでいって、爆発するみたいな処理も組めば、何か打ち上げのところから演出を見せるなんていうこともできると思います。

僕はなんか内訳の部分ってあんまなくてもいいんじゃないかなと思ってる派なので、今回簡易的に打ち上げの部分はなくいきなり空中で爆発する花火にしちゃいますが、必死ちゃいましたがそういった氷方も同じようなね、要領で作っていくこともできると思うんで、もし余裕のある方はそちらの方にもチャレンジしてみてもらえるといいかなと思います。

もうちょっとたくさん出してみよう。あんましだすとねどんどん白飛びしてくだけで逆に味わいがなくなっちゃうんですけれどね。なんかここら辺のレートとかをね、タイムラインから制御できるようになる何かこういうふうに例えばパラメーター化とかしてあげて水炉取るとかにしてあげてレンジ0から1で、これでマルチプライ3歳代最大秒間10個とかにしてあげてこれでスライダー制御しできるようにしてあげてこれをなんかコントローラーでそういう制御できるようにしてみたりとか何かそういった工夫もしてみると、インタラクティブ性が増して面白いかもしれませんね。

はい。という感じですね花火エフェクトを作ってきたんですけれど、これのね、完成品アップロードしてありますんでもし実際に中身を見て復習したい方がいたらそちらを参考にしてみてください。これか。GitHubの慶次郎の中のVVFXパイロットっていうプロジェクトなんですけれどこれ実際ちょっと開いてみましょうか?なんだか製品があるのかよって思われるかもしれませんがあります。

VFXパイルプロジェクトの方はURPユニバーサル連打パイプラインで作ったので実はモバイルとかでも動きます。実際にiPadで動かしてみて遊んでみたりもしたんですけれど、なかなか面白いですね。とね、これあれだ、ちょっと改造してある板だから、バーが出てきてないや着とVFXファイルを何を変更しちゃったな、きっとリストはすごいねチェックアウトとかじゃないんですよね、きっとリストなんですよね今はよいしょはいこれでファイルを開いてみるか。

コンビニOK今日作ったやつとほぼ同じ内容なんですけれど、もうちょっと何か木なるようにいろいろ調整を加えてあるバージョンですね。ね、あのポイントとしてはこの角パーティクル明るさもちらつきを加えてあるんですよね一定の日、明るさで飛んでいくんじゃなくてチラチラしながら飛んでいった方が花火っぽくなるなと思って、この各ポイントとかこの奇跡とかについてもちらつきが出るように、何かそういう細かい工夫がしてあったりします。

キセキとかモグラで使ってからのアニメーションをさせるようにしてるのかなとかね今日いろいろいい加減にやった部分がちゃんと丁寧に組むとこんな感じになりますよっていうサンプルですね。はい。あとはクリックしたポイントで花火が発生するようにちょっとインタラクティブな要素が追加されていたり、こうやってスライダーで発生数が変えられるようになっていたりワーッてやってから会ってやるとフィナーレっぽいですよね。

あとは何かいろいろ今日やんなかった要素も追加されていたりするので、これを参考にしていただけるといいんじゃないかなというふうに思ったりします。さあ、という感じでうん。ちょうど1時間ぐらいだな、なんか花火ってね、パーティクルエフェクトのネタとしてはものすごく定番というか、簡単に作れるんですけれど、なかなか見た目楽しいものができるんでね、こういうふうに入門というかチュートリアルとして取り組むにはいいネタかなと思っ今回やってみた感じです。

はい。コミュニケーションなんか他にも、VFXVFXのなんか入門にいいネタって、なんか爆発エフェクトとかはね、結構ね実は作るの難しかったりするんですよねっていうのはその爆発とか煙とかって実はこのパーティクルの動きとかよりもそのパーティクルに貼り付けるテクスチャー素材の方の作り方の方が重要だったりしちゃうので、何か素材書勝負になっちゃうところがあってなかなかなんだろうなパーティクルこのVFXグラフの方の使い方説明としてはなかなか難しいなって思ってたんですよねこの花火とかに関してはもう本当にこのグラフで組む動きをいかに面白くしていくかっていうところで勝負する値だったんで、とてもいいかなって思ったんですけれど意外とねそれ以外で入門に向いてるネタって何なんだろうなってふうに思ったりするんですけれど、何かこれの続きで第2弾とかやるとしたら、どういうネタがいいんでしょうね。

床を這う、床を這うステージのスモークとか難しい煙ね床とね。Zファイティングしちゃうからね本当はね、パーティクルエフェクトって言ったら、みんな爆発とか煙とかをやりたいと思うんですけどなかなか悩ましいところですね。

電撃とかはね確かにね。電撃は面白いかなって思うんですよね例えば、これとかかな。これ電撃だったっけ、これ火花ですねどっちかっていうとこの火花とかも結構素材なしで作れたりするんで面白いですよねとか、俺とか電気作ったんだっけうん。

こういう電撃服とかもパーティクルの妙だけで作れたりするんで、もしかしたらチュートリアルのネタとしては面白かったりするのかなちょっと次回のネタとして考えてみましょうか?償還の何か、何か法人が出てきて、償還してみたいなファンにあれもね、素材勝負みたいなところがあったりはするんですけれど確かにね、何か加算系のエフェクトとしては定番になってくるんで、もしかしたら面白いかも知れませんね。

もう単純な加算処理で済まない煙のとか雲とかのエフェクトっていうのが案内、実際作るのが難しかったりするんですよね。なるほどなるほど雷みたいな雷かあはいていいのっていうのは、いいえてみようというか、要するにAfterEffectsでやってることをリアルタイムでやりてえっていうのがVFX作るときの動機の一つだったりするんで、なんかいいの定番ネタをもしリアルタイムでやるならばみたいな考え方でネタを考えてみるのももしかしたらよかったりするのかなうん。

3本になります。はい。あと、毎回聞いてんですけど次、時間って何時からがいいのか、今回もまた前回に引き続き9時からやってみたんですけれど、なんかね、どうなんでしょう。難しいですよね。久慈なんか、夕方なんか割り切って4時とか5時とかからやっちゃってもいいのかな、何か皆さんどうですか9時9時からってテレビとか他のYouTubeとか見たいでしょっていうのがあってそこが悩ましいところなんですけれど、後は何か夜この時間帯も作業してることが多かったりするんでそれのことをお供として何か他人の作業の配信を見るのは好きだったりするんですけれどどうなんでしょうね。

商用目的で活用させていただくことは可能ですかということなんですけれど可能です。ここら辺のごく基本的なサンプルプロジェクトに関しては、ほぼフリーという形で配布こいつは追加してないけれど、ほぼフリーという感じにしちゃってるので、問題なくそのままコピーで使っていただいて結構ですしそんな難しいじゃないんで、見ながら先写経みたいなのもいいかなと思います自由にお使いお使いください。

くじがいいですという意見があったな。くじは嫌ですっていう意見がないのでやっぱりくじで正解ってことなのかもしれませんね。はい。Unityステーションでいろんな人がやってるので、他の方の番組はまた違う時間帯だったりするんですけれど僕も多分、また来月何か別のネタでやることがあると思いますが、そのときはまた9時でやってみましょうかね。

多分また同じく月の半ばぐらいにすると入れることになると思うので。なるほどそのとき、もしあの気づいたら、休憩所に気づいたらお付き合いいただけるとありがたいですという感じで、今日は花火のエフェクトを作っていきました。

また次回をお楽しみということで、お疲れ様でした。

シェーダを書けるプログラマになろう #1 シェーダを理解しよう

【自動文字起こし・内容未調整】

はいというわけで早速Part1から始めますし理解しようという話ですね。はい。いいですか。この言葉理解という言葉についてちょっと前置きなんですけども、お話してみたいと思うんですけども、皆さん理解っていうことについてどういうふうに思ってらっしゃるでしょうか?これは僕の意見なんですけども、僕はですね理解っていうのは、協会の把握だと思っています。

何か理解したいと思ったときにですね、コツですねそれを学ぶコツは、それができないことは何かっていうのを知ることじゃないかなと僕は思っています。例えば、今ですね実左下にできるできるできるって言葉が書いてますけども、チェダーって何ができるのって人に聞くと、あれができるよこれができるよっていう答えが返ってくると思うんですよ。

それだけを集めると、どうもですね協会がぼやっとしてよくわからない。と思うんですね。なので、できないことをちゃんと理解することで、この境界がですね、くっきりしてくるんじゃないかなと思うんですね。だから、今日はですねちょっとできないことについてもお話していきたい。

わけです。はい。例えばですねshaderをはさみ例えてですね、これ何に使えるのって話をしたときにですね、ネジ回しに使えるよ。マイナスドライバーの代わりになるよって話は、これは事実なんですけども、これをやっちゃうとですね、ハサミがよくわかんなくなっちゃうと思うんですよね。

今ですねネットを検索すると、レーダーの話ってたくさん出てくるのでこういう状態に結構近いんじゃないかなと僕は思っていて、やっぱりですねハサミはハサミの話をちゃんとどっかでしておく必要があるんじゃないかなと思います僕にとってもですね、やっぱりこういう大道芸みたいな話ばっか聞いてるとよくわかんなくなっちゃうという実感があるので今回ですね特徴を押さえる話をしていきたい。

これはさみこれ当たり前だと思うかもしれないですけども、例えばですねハサミを、そうですね1時間ぐらいハサミのことを考えてみてくださいよ。そうすると、あれもしかしてこれをはさみ、左手で切れないんじゃないのみたいな発想が浮かぶかもしれないじゃないですか。

実際ハサミってのは左手でうまく切れないんですけどもそういうことをですね理解と呼びたいなと思っています。はい改めてはい、改めて集団を理解しようの話をしていきます。今回ですね8ステップに分けてステップを説明します。

これがですね、次のページに8行書いてあるんですけども、これをですねかなりくどくどと今日はお話していきたいので今ですねこれ全部読む必要なくて、順番に説明していきますので覚悟しておいてください。生だとという話なんですけども何とかシェアってたくさんありますよね。

ここではですね頂点性だこれはVertexCだとも言いますけども、頂点Cだとフラグメントshader、このフラグメントピクセルシェアって言い方もしますね。この二つをですね主枝と呼びたいと思います。というのもshaderっていうのが歴史的に始まったときに、やっぱりこの二つが中心にあって、この二つから始まっていて、現代でもこの二つが集団の中心ですのでこの二つを理解することを目的にしましょう。

描画と描画とは何かなんですけども、今ですね、これはまっすぐが書いてあるんですけども19掛ける19たまたま5番と同じ数の増岡いたんですけども点を打つというのが描画なんですね。皆さんが持っているモニターもっと高解像度だと思います横が1920とかあったりすると思いますけども、とにかく蝦夷が、に関わらずモニター上の画素に点を打つことを涼雅と呼ぶわけです。

はい。これを8ステップでやるぞという話ですね。ステップ1からお話していきましょう。よく聞いてくださいね。最初のステップは何かというと、はい3Dモデルを準備するところです。これが絶対に必要これ意外とですねこれが必要だってことを理解していらっしゃらない方もいるかもしれないですけども、必ず3Dモデルを準備しないと描画はできませんで3Dモデルって何かっていうと、例えば、チューブ立方体だとしたら、頂点は8個あって、その8個の頂点のどれとどれとどれを結んでメインにするかっていう三角形の情報があります。

この頂点と三角形の情報が3Dモデルの最小限の情報になります。これを準備することがステップ1で必要になります。はい。次ステップ2Unityを見ているとインスペクターのところにトランスフォームって必ず出てますよね。

そこにポジションローテーションスケールとあるんですけども今回スケールはちょっと置いとくんですけどもローテーションとスケールはとにかく4掛け4行列に、このトランスフォームの値を変換する作業がどうしても必要になりますこれをステップ2と呼びますローテーションとスケールっていうのはこの緑色のくくった部分4掛け4行列のうちの3ヶ月半の部分がローテーションとスケールになっています。

ポジションは右のですね縦に並んだ000と今書いてますけどもその部分がポジションで494行列結構複雑なんですけども幸いにしてですね一番下の行は0001で固定なんですね。このようにトランスフォームから変換した行列のことをモデル行列といいますモデル行列を作るというのがステップ2です。

はい。ステップ3に行きますよ。はい。ステップ3は何かというと、頂点ごとに描画位置を算出しますステップ2で計算したモデル行列とステップ1で用意したキューブの大長.0情報ですね。それにカメラの情報を加えることで2次元上のモニターの今19掛け19のまっすぐありますけども、どの辺に焦点が行くかというのを計算する。

これがステップ3です。はい。これをすることで描画が進んでいくわけですね。はい次ステップ4ステップ4はですね、ステップ3で3頂点の処理しましたら、3頂点の処理が終わったら、右回りか左回りかが確定するんですね。

これは2次元上のモニター上の話です。右右回りか左回りか決まるのでどっちかを表と決めちゃうわけですよね。そして裏なら凌駕しないことにします。これによって立方体でしたら、後ろ側の面は描画しないでしないようにしたいわけですよ。

なので、評価しないで済むということになります。逆に言うと、裏側の面もステップ4までは来るということです。はい。よろしいですか。やステップ5、ここで半分ですね。はい。後半頑張ってみましょうStep5ステップ5はですね描画の点を確定します。

先ほど山頂.Aが決まったんですけども、そのちゃん頂点を線で結んで、その間に何か間じゃないですね中に入っている画像をですね、決めるわけですねここで緑色で塗っています。この点とこの点とこの点、本展っていうふうに今、いくつでしょう50個ぐらいあるのかな50個ぐらいの点がありますけども、これが評価点ということで確定する。

わけです。はい。これがステップ5はい。ステップ6はですね、これがちょっと複雑なんですけどもこの点を凌駕すると決まったとしましょう。今赤い良い点をオレンジの丸でくくってますけどもこの点を評価しようと思ったときに、また別にある深度バッファー、これデプスバッファって言い方もしますけども、デプスバッファと比較して、既に書いてある点よりも後ろにあるかどうかをここで調べるわけですね。

既に書いてあるものよりも後ろにあったら、それは書かない。手前にあったら、既にある点をまた書き潰す。という処理が非A判定が行われますこれがステップ6です。はい。そしてステップ7描画点に打つべき色を確定、この色っていうのもちょっと強調した方がよかったかな水路を確定するのがこのステップ7です。

テクスチャーとか必要だテクスチャーがあるとそこの色は当然変わってきますしライティング陰にある方は暗くなるでしょう。あとはシャドウが落ちてると他の物体の影が落ちてると暗くなったりしますよね。あとはフォグとかいろんなことを、事情があって色が確定するわけです。

というわけで色を確定するのがステップ7ということになります。はい。ようやく最後に来ましたステップ8、これで点を打ちます。点を打つわけなんですけどもここでですねブレンド関数っていうのをして可能です。なので半透明というのがここで指定可能になるんですけども、また一つ大事なのがしんどバッファを更新するということですね。

次に行う処理のために、これでこれ以降の処理これ良い後に書かれるものが、この点より後ろにあったらもう書かないっていうために進藤パパも更新します。はい。というわけでステップ8まで終わりました。はい結構8個も何か覚えるのは大変だと思うんですけども、順を追って説明していきましたこのうちですね、上の二つがですねCPUで計算するところですね。

現在のアーキテクチャだと大体CPUステップ1と2はやるでしょう。GPUは3から8までを担当しています。今日の本題であるとこのshaderなんですけども、ステップ3が頂点Cだです。ここがプログラマブルになる。

池商店稗田を書くってのはステップ3の作業をやるっていうことですステップ7がフラグメントシェアです。色を決める。これがフラグメント星座の仕事になるわけです。はい。というわけですねここをですね結構くどくやりたいので、講演では異例かもしれませんけども、1からもう1回説明します。

いいですか。これで覚えてくださいよ。ステップ13Dモデルを準備するわけです。9部ありましたね頂点が8個あったりする三角形の繋がりがある。これがステップ1でした。ステップ2トランスフォームの値をマトリックスに変換しておく。

これをモデル行列と呼びました。モデル行列を渡して描画エンジンに渡す。これがステップ2ステップ3は、ここが頂点Cだったわけです。Vertexレーダー、超天使ここの計算をしつつ、つまりモデル行列とカメラ行列と頂点を掛け合わせることで、もう1個フランスたものなんて言うんすか。

プロジェクション行列も書けるんすけども、それで画面上の点が算出される。これがステップ3、頂点シェアそのものです。ステップ4、これは右回りか左回りかを決めて裏なら描画しない。ステップ5秒が点を確定する。

ここはもう完全にGPUの仕事でプログラマーだの僕らが何かできるところじゃないんですね。緑色の点は、もうこれ確定です。決まっちゃうわけです。ステップ6になって、震度バッファーと比較するわけですね。既に書いてある点よりも後ろにある点を書かないようにする工夫がここにあるわけです。

ステップ7、これがフラグメントシェアですね。要するに、フラグメントシェアっていうのは色を決める機能なわけです。ということを覚えてください。色を確定するのが、フラグメントして他の仕事なので、テクスチャーを引くコードを書いたりライティングするコードを書いたり車道で車両が影が落ちるとか、フォグで薄くなるとかそういうのも全部色を決める作業なわけですね。

なのでフラグメントシェアでそれをやっていくということになります。はい。最後にステップ8ということで、点を打つと、はいブレンド関数を指定可能だったりエイシンドーバーを更新するという事情がありますけども、とにかく最後は点を打つということです。

はい。というわけでここまでを理解していただければもちろんですねこのあと復習してください一発でですね覚えられるとは思えませんのでぜひ復習してください。今日できない話をしていきたいんですけども、shaderで対応できない例ってのはどんなものがあるか、例えばですけども、2.指定して線を引きたいと思ったとしましょう。

これは、2点あるからその間を点線で引くとこういう感じになるんですよね。これはもう明らかにですね三角形の内側を書くのとは事情が異なるわけです。なので、ステップ1で対応が必要になりますよね。なので、shaderでどう頑張っても線は引けないということになります。

はい。3モデルの構造先ほどもありましたもう1回出してますけどマスクでも線を引く前に3Dモデルの構造をちょっと復習してみましょう。頂点ごとにですね今、0123と四つ出してますけども頂点座標はもちろんあるんですけども、法線というのがあるんですよね。

それからUVと書いてあるのはテクスチャー座標です。これが頂点ごとにワーッとあると三角形の列ってのはその頂点の列を三つずつ指定することで三角形にするわけですね0と1と2だか2と1と3で三角形だ。いうふうに決めていく。

この頂点列と三角系列でスリーデータということになるわけです。なのでこれをもう描画エンジンに送るということは3Dモデルを書くということなんで、線分を書く処理ではないので、線を引こうと思ったら線分用のデータを渡して描画モードを線分に切り替える必要があるということになります。

チェダーで何かするわけじゃないんですね。はい。次もう1個教えて対応できない例というのを例を書いてみましょうか?例を出してみましょう。半透明描画をしたいと思ったとしましょう山があって窓ガラスを手前に置いてますそうすると山が透けて見えるんですけども、ちょっと青くなってますよね。

これが半透明、これはですね、ステップ8で対応が必要になるわけです。ので、そもそもですね半透明っていうのは、既に書いてあるこれ今ですね緑色の三角形の上に赤い色の線太い線を書いてるんですけども、既に書いてある緑色の点を拾ってきてこれから書こうとしている点を、例えば足して2で割るみたいなことをしないと、描画て描画する色ってのは確定しないわけですね。

ここの赤い色っていうのが既にフラグメントシェアの出力なので、shaderで何かする話ではなくなるわけです。はい。ステップ8でやるということになります。はい。はいチェダーで書くときにブレンドブレンド関数っていうのを設定可能なので、これちょっとですね勘違いというかですねシュレーダーのファイルに書いてるからこれもしなんじゃないかっていうふうに思ってしまう。

かもしれないんですけど厳密に言うとこれはですねプログラマブルではないんですね設定を書いてるだけなので、ここにかけるのもUnityが結構利便性を高めるためにここに書かせてくれてるわけで厳密に言うとこれは集団ではないわけです。

はい。設定はできるけどプログラムは書けないよということでshaderではありません。ちょっとですね半透明の話があったのでぜひですねこの話をしておきたいんですね。昔からある話で古い人にとっては当たり前の話なんですけども意外とですね、これ1回考えておく必要があるんですね。

1回考えるとですね結構理解が進むと思います。不透明を半透明の後に描画するのは結構難しいんですね。例えばですね、今この窓ガラスのところに透明部分この青い部分を深度バッファDepthバッファーを更新しながら描画したとしましょう。

そうすると、その後で不透明の男の子がいたときに、これぜ、全然おかしいですよね右側の山が透けてるのに男の子が透けてないという訳のわからないが出ちゃう。これは震度1を更新したがゆえにその比較をして書かないっていうことを後から算出されちゃってるわけですねStep6でしたかねそこではじかれちゃってるわけです。

透明部のデプスバッファを更新しないという設定にしてみたらどうなるかっていうと、これもおかしいですよね。はい。窓枠はデプス破壊てあるんでそれよりは後ろにいくんですけども、半透明の部分よりも手前に来てしまうと、これどうしてもおかしくなるっていう結構ですね難しい問題があって、今どうしてるかっていうと、現代においてはですね、半透明を描画しようと思ったら、全ての不透明の後に、描画するという対策を、どのゲームエンジンもどのレンダリングエンジンもやることに大体なっているわけですね。

はい。なので一つのモデルの中に一部半透明にしていい感じにしたいなと思っても、その部分だけは一番最後に書かれなきゃいけないっていう仕組みがあるので、ちょっとですね負荷をかけるという感じになっていくわけです。

はい。結構駆け足だったかもしれませんけどもこっから続いていきますよ。改めてですねシュレーダー行動を観察してみましょう。一番小さなshaderコードを書いてみたらどうなるかなと思って書いてみると大体こんな感じですね。

頂点シェアっていうのは、バートっていう名前に大体手術するんですけどもこの部分ですね頂点稗田で一番下がフラグメントshader一番簡単に書くとこれでこれちゃんと何かが表示されます。shaderっていうと、Unityのシュレーダーと普通のシェアと何が違うんだっていうのこれでちょっと不安になるかもしれないんですけどもここで今仰ぎしている部分は大体ですね、どの描画エンジンであっても一般的にエラーコードっていうとこの部分を指しますのでこの部分を理解するってことは、唯一じゃないところでも役に立つ知識になっていくわけですね。

この上の方にですねいろいろ書けるんですよね。これですね、本当にこれが何かなかった頃に大変だったんですけどもここにいろいろ書けるおかげで、非常に楽になっている楽になってるがゆえに、一緒にこれを見るとですね、どこまでどれがどうなのかよくわかんなくなっていくんですけども、これはですねUnity粥用意してくれてる便利な記述になるわけです。

はい今日はですね8ステップを覚えていただくのが一番大事だと思ってるんですけど次に大事なことがあってこのせまらテクスト補完ということをどうしても覚えていただきたいわけです。これ大事なんでよく聞いてください。

先ほどですね最小のシェアがありました。この構造体の部分ですねちょっと小さくて申し訳ないんですけどもstructアップデータって書いてます。その中にですね赤い文字でポジションっていうマーキングがしてありますね。

その下にはSVポジション、この赤い文字で書いた部分がせまらテクスト呼ばれるものです。なので、これ拡大してみましょうこういう感じですね。はい。これはGPUにこの変数はポジションですよっていうのを伝えてるんですね。

つまりGPUっていうのはポジションっていうのをちゃんと理解するわけです。なので、これでいろんなことをGPUに伝えているわけですね。この印がないと全然、GPUは動きようがなくなるわけです。非常に大事な知事なるし、なる。

そのすごく大事な割にはですねあんまり強調されない部分でもあったりするので今回はちょっと強調してここが大事だと言わしていただきます。そして狭いフィックスと保管というふうに言いました。保管っていうのは何かというと、数学的に言うと数学の他んですね英語で言うとインター歩レーションですか。

二つの線分点があってその間に線分があったとして、片方が28で右側96だとしたらこの辺は71.3かなみたいな計算が成り立つわけじゃないですか。その計算をするのを補完と言います。これはですね、GPUがですねすごい頑張ってやるんです。

どこでこの補完をやるのか、結構気づかないところですごい頑張ってくれてるんですねとの話をしてみましょう。例えば、テクスチャーマッピングがあったとしましょう。はいUnityロゴのテクスチャーがあってキューブに貼ってみたらこうなりますよね。

テクスチャーマッピングshaderを簡単に書くとですね頂点稗田はこんな感じになるんですね。UVに良い値を入れるフラグメントシェアでそのUVを使って、テックⅢいい歳ですねちょっと小さくてわかりづらいっすけど一番下にですねTEX2Dと書いてあるんですねこの関数を読んで、エクセルをフラグメントシェアで披露わけです。

1000万フィックスの情報があるのでXcode0になってるのでGPUはですねこれがテクスチャーだってことは、テクスチャー座標だってことはわかるわけですVertexshaderの結果がUVでフラグメント精度の入力がそのUVなんですけどもここで補完があるわけですね。

頂点Cだっていうのは、先ほどのステップいくつでしたっけ。133から3でありましたよね。三つしか出力してないのに対して、フラグメントshaderはこの緑のすぐ山ほど実行されるわけです。なので、AV2Fという出力があったら、フラグメントし枝の入力はその間保管された値になっているわけです。

この保管をGPUが頑張って計算してくれてるわけですね。はい。もう1回見てみましょう。この絵がですね、無理やり書くとこんな感じですね。頂点集団の出力が3点分、今白い矢印で出ました。そしたら、このUVが直接フラグメントシェアに渡るわけではなくて、保管された値が渡ってくる。

ということです。なので、GPUが保管できる数ってのも上限があるんですけどもGPUに種類によっては保管できる数が少なかったりするんですけども、結構ですね、複雑な計算複雑でもないんですけども、計算をしてくれて初めてフラグメントシェルターに渡るデータが来るという話でした。

はい。大体これですねパート1は終わりになるんですけども最後にですね、ちょっと補足というかですねサービスシェアっていう話をしてみましょう。うん。これ何なのかっていう話なんですけどもとにかくですね頂点Cだとフラグメントシェアがないと何もは出ないんですよ。

これはもう確定です。絶対何も出ない。頂点Cだってのは大体ですねどんな手段を書いても同じことを書くことが多いんですよね。なので、これ省略してもいいようにしたいよねという欲求が生まれるわけです。逆にですね、フラグメントshaderは集団によって間違うこともあるけども、逆かshaderでどのシェアでも同じ書き方をするものがあるんですよね例えば影が落ちるとか、陰影をつけるとか、フォグが書けるとか、そういうのはすごい複雑なのにいつも一緒じゃんみたいなところがあるわけですこれをですね、調停制度は平成してくれるフラグメント手段も何か記述したらそれに合わせて修正してくれるっていうすごく便利な機能がSurfaceしこれはですねUnity専用の機能になります。

なので、頂点Cだとフラグメントshaderしかない時代でシュレーダーを頑張って書いてた人にとっては、このサービスシェアですね、もうすごい神のような機能になるんですけども、サービスCリーダーをいきなり見てしまうとですね結構何が何だかわからない。

いいことになりかねないかなという気がしますとにかく頂点シェアとフラグメントシェアを生成してるんだと思ってください。はい。というわけで今日はですねパートはこれで終わりになりますこの8ステップですね改めて出しましたですねステップ4と6と8にですね設定変更かって文字を今追加しています。

実際ですねshaderのコードでこれは設定を変えられるんですよね。なんですけども厳密に言うとそれはshaderではない。ということです。設定を変えるのと、プログラマブルに演算を書くのとは全然意味が違うので、そこは区別するのが大事かなと思います。

はい。というわけでですね第1部はここまでになって休憩したいと思います。Part2ということでPart1が終わったらですね、もうあとはおまけみたいなもんなんですけどもPartTwo話していきましょうGPUの神秘ちょっと面白そうなキャッチーな名前をつけましたけどもはい。

始めますよ。先ほどですねフラグメントshaderの話をテクスチャーマッピングの例でちょっと紹介しましたけどもテック2Dっていう関数があるっていう話ですねここをもう1回大きく出しています。この手薬って関数がですね、結構面白い関数で、これを深掘りするとですね、面白かったんですよ。

なのでここに稗田の神秘があるとかこれは僕の主観なんですけども、書いてみました手薬の話をしまくるわけですが一般論の話をまずさせてください。テクスチャーはというか画像はですね、画像は縮小するのに結構課題があるんですね。

拡大はいいんですよ。拡大はただボケるだけだけなので、縮小が難しい。大きくしてみましょう。このですねユニティちゃん走ってるのを単純なアルゴリズムで縮小したとしましょう。これですね問題が起きてるのわかるでしょうか?目が緑色の目が消えちゃってますよね。

あとですね髪の毛の先っぽが宙に浮いちゃってますよね。こういうですねことが、縮小は来ちゃうんですよね。こういう問題が根源的にあってですね、人類はこれに向かって頑張るわけなんですけども、今駄目な縮小を出していました。

これをDearestっていうようなアルゴリズムなわけですね。いっぱいあるわけです。バイキュービックカイザーBOXハミング僕が手元で実験できるこのぐらいの種類あったんですけども、いろいろあってですねどれもこれもアルゴリズムは違うんですけども時間をかけると結構綺麗に縮小できるわけです。

そうですね例えばですね輝度の変化を調べるとかいろんなことをすることで、コンピュータ資源を使うとですね結構綺麗な縮小ができるんですけどもチェダーでそれをやるのは厳しいんですね。とにかくX2Dという関数は、この2番目の引数にUVっていうのを渡していますねこれテクスチャー座標なんですけどもテクスチャー座標はある点を指定するのでその点を、色を拾ってくるテクスチャーから拾ってくるわけですね。

Excelって言い方しますけどもエクセルを拾ってくることしかできないので、例えばフラグメントshaderで隣の店が隣のUVが大きくジャンプしていたら、どうしてもですね、ここで見えてるような駄目な縮小になってしまうという問題があったわけです。

あるわけです。はい。というのを頭に置いていただいて、はい無限平面を作ろうという話をしてみましょう。これはですねちょっとしたでもなんですけども、今回の話の題材として作っていましたこのデモは目的じゃないですねこういうでも作ることでテクスチャーの理解を深めようという、そういう話です。

はい。これを作るためにはですね作戦を立ててみましょうか?これこれっていうのはもうちょっと説明した方がいいかな。飛行機はどうでもいいんですよね。工期はどうでもよくて地面ですね、地面の方をこういうふうにですね平面でかけると、結構便利だったりすると思いませんか少なくともですねスカイボックスを出しておくよりはだいぶマシになったりしますよね。

建物の隙間に使いボックスが見えちゃうよりは、こういうですね、地面が見えた方がマシっていうケースは結構あると思うので僕結構この表現好きなんですけども、地面を描きたいという欲求があったとしましょう。作戦です。

どういうふうに書いていきましょうか?カメラの司会っていうのはこういうふうにですね経営し、第1代っていうのかな水代っていうのかな、止水材という言い方をしますけどもこういう体系の中の一部分さえあればいいわけです。

なのでここを埋め尽くすように地面を広げてあげる、これを頂点シェアで計算してあげようということです。まずですね仕掛けを準備するところから必要になります先ほどお話しましたように、ステップ1のモデルを準備するのはどうしてもモデルを準備するのが必要になるわけです。

準備しましたらカメラの情報がありますので、頂点shaderで前方ベクトル戻ってきて、ですね頂点を拡大したり移動したりして必ず入るようにこいつをグイッと広げるわけです。単に頂点を広げるだけですね。はい。

その代わり、必ず見えてるように配置する。ようにします。カメラの前方ベクトルなんですけどもちょっと豆知識があってですねカメラの前方ベクトルはこのビュー行列のOM20M21M2というところを取ってくると前方ベクトルが取れますという豆知識があります。

テクスチャーの座標テクスチャー座標のUVに何を入れるかっていうと、ワールド崎をそのまま入れちゃうっていうテクニックがあります。これまた説明しますんで、結果どうなるか先に見てみましょう。こんな感じになるわけですね。

それだけでいいわけですよ。大体非常に単純なプログラムで済むんですけどもUVについてもう少し詳しく話をしていきましょう。テクスチャー表は必ずですね、01空間なんですよね。これは覚えておいてほしいんですけども、どんな解像度が高いテクスチャーであっても0から1ですまたは、とても小さい3着掛け3着みたいなちっちゃなテクスチャーでも01空間で01平面ですかテクスチャー座標ってのは構成されています。

ですね。

シェーダを書けるプログラマになろう #2 GPUの神秘

【自動文字起こし・内容未調整】

Part2ということでPart1が終わったらですね、もうあとはおまけみたいなもんなんですけどもPartTwo話していきましょう。GPUの新規ちょっと面白そうなキャッチーな名前をつけましたけどもはい。始めますよ。

先ほどですねフラグメントshaderの話をテクスチャーマッピングの例でちょっと紹介しましたけどもTech2Dっていう関数があるっていう話ですねここをもう1回大きく出しています。この手薬って関数がですね、結構面白い関数でこれを深掘りするとですね、面白かったんですよ。

なのでここに稗田の神秘があるとか、これは僕の主観なんですけども、書いてみました薬の話をしまくるわけですが、一般論の話をまずさせてください。テクスチャーはというか画像はですね、画像は縮小するのに結構課題があるんですね。

拡大はいいんですよ。拡大はただボケるだけだけなので、縮小が難しい。大きくしてみましょう。このですねユニティちゃん走ってるのを単純なアルゴリズムで縮小したとしましょう。これですね問題が起きてるのわかるでしょうか?目が緑色の目が消えちゃってますよね。

あとですね髪の毛の先っぽが宙に浮いちゃってますよね。こういうですねことが、縮小は起きちゃうんですよね。こういう問題が根源的にあってですね、人類はこれに向かって頑張るわけなんですけども、今駄目な縮小を出していました。

これをDearestっていうようなアルゴリズムなわけですねいっぱいあるわけです。バイキュービックカイザーBOXハミング僕が手元で実験できるこのぐらいの種類あったんですけども、いろいろあってですねどれもこれもアルゴリズムは違うんですけども時間をかけると結構綺麗に縮小できるわけです。

そうですね例えばですね輝度の変化を調べるとかいろんなことをすることで、コンピュータ資源を使うとですね結構綺麗な縮小ができるんですけどもチェダーでそれをやるのは厳しいんですね。とにかくX2Dっていう関数は、この2番目の引数にUVってのを渡していますねこれテクスチャー座標なんですけどもテクスチャー座標はある点を指定するのでその点を、色を拾ってくるテクスチャーから拾ってくるわけですね。

Excelって言い方しますけどもエクセルを拾ってくることしかできないので、例えばフラグメントshaderで隣の店が隣のUVが大きくジャンプしていたら、どうしてもですね、ここで見えてるような駄目な縮小になってしまうという問題があったわけです。

あるわけです。はい。というのを頭に置いていただいて、はい無限平面を作ろうという話をしてみましょう。これはですねちょっとしたでもなんですけども、今回の話の題材として作っていましたこのデモは目的じゃないですねこういうでも作ることでテクスチャーの理解を深めようという、そういう話です。

はい。これを作るためにはですね作戦を立ててみましょうか?これこれっていうのはもうちょっと説明した方がいいかな。飛行機はどうでもいいんですよね。工期はどうでもよくて地面ですね、地面の方をこういうふうにですね平面でかけると、結構便利だったりすると思いませんか少なくともですねスカイボックスを出しておくよりはだいぶマシになったりしますよね。

建物の隙間に使いボックスが見えちゃうよりは、こういうですね、地面が見えた方がマシっていうケースは結構あると思うので僕結構この表現好きなんですけども地面を描きたいという欲求があったとしましょう。作戦です。

どういうふうに書いていきましょうか?カメラの司会っていうのはどういうふうにですね市大水害っていうのかな水代っていうのかな、止水材という言い方をしますけどもこういう台形の中の一部分さえあればいいわけです。

なのでここを埋め尽くすように地面を広げてあげる。これを頂点シェアで計算してあげようということです。まずですね仕掛けを準備するところから必要になります先ほどお話しましたように、ステップ1のモデルを準備するとどうしてもモデルを準備するのは必要になるわけです。

準備しましたらカメラの情報がありますので、頂点shaderで前方ベクトル戻ってきてですね頂点を拡大したり移動したりして、必ず入るようにこいつをグイッと広げるわけです。単に頂点を広げるだけですね。はい。

その代わり必ず見えるように配置する。ようにします。カメラの前方ベクトルなんですけどもちょっと豆知識があってですねカメラの前方ベクトルはこのビュー行列のOM20M21M2というところを取ってくると前方ベクトルが取れますという豆知識があります。

テクスチャーの座標テクスチャー座標のUVに何を入れるかっていうと、ワールド崎をそのまま入れちゃうっていうテクニックがあります。これまた説明しますんで、結果どうなるか先に見てみましょう。こんな感じになるわけですね。

それだけでいいわけですよ。大体非常に単純なプログラムで済むんですけどもUVについてもう少し詳しく話をしていきましょう。テクスチャー表は必ずですね、01空間なんですよね。これは覚えておいてほしいんですけども、どんな解像度が高いテクスチャーであっても0から1です。

またはとても小さい山にかけさんみたいなちっちゃなテクスチャーでも01空間で01平面ですかテクスチャー表ってのは構成されています。ですね。01をオーバーしたら、一体何が返ってくるのか。例えば1をオーバーして2の近くまで行っちゃったら、そのところは何が返ってくるのかなんですけども例えば手薬に一点ご1.5っていうような値を渡したらどうなるのか、この点は何が返ってくるべきなのかなんですけども、これはですね、1を取り除いた0.50.55折り返してるわけですね。

返すわけです。そうするとこうなるわけですね繰り返すわけですこれ繰り返しているのでリピートという言い方をします。実際はですねこうなっちゃうというよりはこういう設定なんですよね。テクスチャーのインポート設定があって、これデフォルトでリピートになってると思うので、それをですね変えて例えばクランプにすると、上のテクスチャー上の繰り返しじゃなくてクランプというようなテクスチャーマッピングなったりするんですけども、いろいろ設定はあるにせよリピートすることができるわけです。

なので、UV座標にワールド座標入れちゃいます具体的に言うとですね、結構広い空間を表示するはずなので、大きな値を入れますよね。728とか1041とか適当に書いた数字なんですけども、大きな値が入るよということを言いたかったわけです。

テクスチャー今日は01空間なのにすごく大きな値を入れるっていうのがちょっと面白いところですね。その結果、こうやって繰り返されるわけです。結構簡単な話でした。でですね、ここで疑問を感じていただきたいんですけどもこの辺トークの方ですね、縮小されてるんですけども、結構綺麗なんですよね。

これ何でこんな綺麗に縮小できるかっていう話をしましょうこれはですね、密封アップという機能が働いているからなんですね。日本マップも先ほどのテクスチャーのインポート設定にあるんですねこれもデフォルトでジェネリックアップにフラグチェックは入ってると思うんですけども先ほどのラップモードリピートの上にですねアドバンスドがあってネットMICマップというのがあって、生成するんですよ何も考えずにテクスチャーを持ってくると生成しちゃうんですね。

リップマップというのは何かというと、テクスチャーがインプットされたら、それの半分の大きさのテクスチャーを、時間をかけて作るわけです。つまり高品質な縮小のテクスチャーを作って、2分の14分の18分の116分の1と、たっくさん作っていくわけですね。

これをあらかじめ作ることが、密封アップを準備するということです。インポート時なので時間かかっても別に構わないですよね。ランタイムではないわけです。宿主つまりですね縮小済みのテクスチャーが使用されているから遠くの方は綺麗だったわけです。

例えばですね密封マップ先ほどのジェネリックアップを切るとですねオフにすると切れるわけですけども比べてみるとですね、結構差が出るんですね。拡大するとわかるんですけども右側版駄目駄目なんですねこれ動かすともっとひどいんですけどもじらじらじらしてとても見れたもんじゃない画面が出てきちゃいます。

日本アップの力は偉大だなという話です。でですね、ここでですねまた疑問を感じていただきたいんですけどもね。フラグメントシェアの話をしているんですけども、フラグメントシェアってのはXDを読んでるだけなんですよ。

でもなんでこの縮小、適切な縮小を選べるのかという話どうやって日本アップレベルというふうに言うんですけども、どうやって選択してるのかっていう疑問がここで浮かぶわけです。はい。この疑問を頭に浮かべておいてちょっと違う話をしましょう。

それはさておきですねこのですね、繰り返しが気になりませんか?僕はですねこれくも気になってしょうがないんですけどもこんなふうにですね整然とテクスチャーが繰り返すっていうのは自然界ではありえないわけですねうんもしかしたら農場とかではあるのかもしれないですけどもそれ人工物ですよね。

事前にこういうことをこういう感じで繰り返していくっていうのはあり得ないので、ちょっとですね不自然すぎてちょっとつらいので、工夫してみようかなと思ったとしましょう。どんな工夫をするか、退院範囲があるわけなので、その区経営ごとにですね、UV座標をずらしちゃえと単純な話なんですけども、ずらしちゃというふうにしていますずらすというのはどういうことかっていうと、例えばこういうチェック模様のテクスチャーがあったら、ずらしたものは右側ですね。

こんなふうにちょっとずらす。これを乱数のような概念でハッシュといいますけども概念でずらしていきます。これ行動例ここは説明しませんけどもハッシュ法ファーストっていうのを別の感想定義してあるんですけども読んでバラバラの値が返ってくるのでそれを使ってずらす利用を決めていくという、そんなに複雑な関数じゃないんですけどもこれだけのことで結構ですねバラバラになるんですね。

はい。これの結果どうなるか見てみましょうです。結構ですね、いい感じなんですねこれ僕もやってみて驚いたんですけども、元々ですね地面にあるテクスチャーっていうのは、右端と左端が繰り返されるように、ちゃんと作られてるわけですね。

なので境目が見えないんですけどもその境目を見えなくする努力を完全に無視してですねバラバラにしてみても、意外と大丈夫じゃんという驚きがありました。これでもね、テクスチャーによるんですよね。例えば違うテクスチャー置いてみると、これでもそんな悪くはないんですけども、よく見るとですね、斜めに線が走ってたりするのが見えたり、するんですよね。

はい駄目な例ももっと特徴的なテクスチャーだと駄目だ、すごく駄目だったりしますそれはともかくテクスチャーによってはいけるぞいう話になるんですけども、このですね、このテクニックを使ってやってみるとですねちらつくんですよね。

なぜちらつくのかというところが、今日この第二部Part2でお話したいメインテーマになるわけです。はい。なんでちらつくのかっていうのを拡大してよく観察してみましょうですね左が駄目な方で、右が正しい方、これですね結論から言うと、間違った日本アップを引いてきちゃってるんですね。

左側の方は正しくすると正しい綺麗になるんですね。ここがですね、非常に大きなポイントなんですけども、衝撃の事実とか書いてますけどもフラグメントshaderってのはですね必ずですね4ピクセル同時に実行しているという裏の事情があります。

どういうことかというとですね、この緑の点の数分フラグメントシェアが実行されてると思うじゃないですか。実際はですね、4掛け4、必ず4掛け4の奥領域を実行していますので端っこの方は、今ピンクで見えてるところははみ出てるんですけども、ここは計算して結果を出してる人にも関わらずつけられますという動きをするわけです。

必ずこの田んぼの田のように四つ実行しています。これ結構無駄なように見えるんですけども、解像度が高かったりポリゴンが十分に大きければ、味のおかずってのは相対的に少なくなります。はみ出てる分は少なくなるので、そんなに無駄にはならないんですねこんな小さなポリゴン書くなよという話でもあるんですけどもはい同時に実行されるというのはどういうことか、もう少し詳しく見たいんですけども本当に同時に実行される何も言ってませんけども例えばですねCPUコアが四つ積んでるCPUでマルチコアで速いねみたいな話があると思うんですよ。

あれはですね、例えるならば、競争で4人同時に走ってるような感じです。それぞれが全力で走ってるんですゴールに到達する時刻もそれぞれ違ったりするんですけども、このですねshaderの四つの同時実行はですね、いわばですねいいえ。

4人5脚みたいな感じで、一歩ずつ完全に同期して実行されています。ここがGPUのすごいとこなんですけども、例えばこの行をですね実行しているときっていうのは、もうこの瞬間にですね隣の三つは同じ場所を実行している。

わけですので、TEX2Dに差し掛かったとしましょう。プログラムがここを実行しているときは、隣の三つもここに来てるんですよ。ここに来てるのでGPUにとってみれば、四つの遊具1を同時に入手できていることになります。

結果、その差をとることがGPUにとってはできるので、そのUVが隣とどのくらいジャンプしてるかがわかる。GPUにはわかるので、この飛び具合を使えばですね、何の話をしてるかというと、さっきの疑問なんですねどうやって密封マップレベルを選択しているかという疑問なんですけどもこれの答えは、四つ実行してるから飛び具合がわかるので、適切な三つマップを選べるじゃんっていう、結構すごい仕組みがここで働いているということになります。

そんな事実を踏まえるとこの問題の解消方法がわかってきます。ちらつくのはMICマップの選択が間違ってたから密封マップをどうしたら正しく選択できるのかなんですけども、先ほどのフラグメントシェア2位3行追加作業とか1行変更作業追加みたいな感じでコードを追加します。

dbxおよびDDIというのを読んでテックⅢの代わりにXリーグラッドっていうのをぐらじゅ、何ですか経営者ですね。経営者の多いよ入れられる薬gladを入れられるわけです。グラデ円とかgraduateですね。

はい。という関数がちゃんと用意されてるんですね。UVをいじる人のためにちゃんとフォローできるようになっているわけですこのコードを書きますと、ちらつきが消滅してこれで完成ということになります。はい。DDXDYの話もう少し深く話してみましょう。

また新規とか大げさに書いてますけどもDDX例えばここにプログラムが差し掛かったときは、DDXは隣のピクセルも同時に実行しています。右隣だったり左隣だったりつまり横の隣ですね。この隣の差がここに入ってきます。

つまりUVが変化しているはずなので、その変化値変化量がこのDDX返してくれるんですね。これ普通にですね、ただ関数眺めていると、なんでこんなことが起きるのか訳がわからないんですけども、すごい工業な仕組みによってこれが実装されているわけですね。

DIは縦の差が出るわけです。f-Bizっていう関数が必ずshaderには搭載されていてですね、これは何と何のことはなくてですね、DDXとDDYのそれぞれの絶対値を取って足してるっていうそれだけの関数があるんですけどもこれだけなので使いたい人があったら自分でこの関数定義すればいいじゃんって話なのに、わざわざですね、これがAPIとして用意されている。

ですねこれはですねもう僕は想像するのみなんですけども、多分GPUを設計した人も、ちょ、ちょっぴり興奮してですねまたは茶目っ気を出してですね、これ面白いよとテクスチャーを引くための仕組みだったけど、これ結構使うと面白いよっていうことに気づいてですね、例えば左のように普通にシェアを書いた場合は左の絵のようになるのをただリターンコールからの部分をフリーズしてくるだけでエース、こういうふうにですね、血が出るんですね。

これは何でかというと、アルファー値がここで変化してるから変化してるアルファ値以外は、α0になるわけですという面白い関数があるわけですね。なのでちょっとそれを応用して本当にちょっとしか変えてませんけども、フェーズ数を使うと、このユニティちゃんのですね縁取りをすることができるわけです。

基本的にですね地抽出っていうのは処理の重いお話になってきて苦労するんですけども、品質を問わなければ、非常に高速にこういうことができるようになるというわけです高速かどうか僕は計測してないんでわかんないですけども、これが遅いわけがない。

GPU直結なので絶対これは早いですという話がありました。はい。というわけで改めてですねこういうそんな思いをはせながらですね、この画面を見ていただきたいんですけども、リピートはないし、遠くの方もちらつかない無限平面を作るにはそんな話を理解するとできるよという話でした。

はい。でですねこれと類似の話がですね、なんかすごい偶然なんですけども、10日ぐらい前にですねUnityのブログに公開されててですねちょっとびっくりしたんですけどもこれ全然かぶってがっかりしたという話じゃなくて僕は本当に適当な実装なので、こっちいい感じでちゃんと論文もあってですねすごい根拠がある感じのいい感じのプラグインプラグインだっけ。

今は使えるなってるはずですね。結構いい感じですね。はいちょっと論文軽く見てみたんですけどもテクスチャー設置を三、四回やってるみたいなんですね。その分品質は高いんですけども、僕の実装はインチキの代わりにテクスチャーペッチ1階なので、テクスチャーを参照するのは重たい処理になりやすいので、僕のやつはかなり軽いはずです。

はい。というわけでまとめに入っていくんですけどもGPを扱うときの心構えとしてですね同時にですねこういう感じで動いてる。もうただの同時じゃなくて本当に同期してるってことをか考えながら書くと結構ですね腕が上がるというかですねいい感じで書けていけるんじゃないかなと思います。

よくある話でギフンを書くなみたいな話があってそれは真実でもあると思うんですけどもそれはどういうことかっていうと、この忌まわしいプログラムがあって行くとレスがあって、XDをそれぞれ書いていますよね。このIfの中に書いてあるXDを実行中に、隣のピクセルはヘルスの方行ってるかもしんないですよね。

これ困るんですよ。これ、本当にですね残酷な記述でですね、エラーを次でないですけども、つらいことが起きてるに違いないっていう想像をして、できるわけですね実際これ何が起きてるかっていうのは、GPUし次第だと思うんですけども、おそらくこのIfの中と、ウイルスの中を両方実行して、その結果どっちを選択するかを条件で決めてるコードが出力されてるはずです。

なので、出力かどうかなランタイムそれをやるかもしんないっすねとにかくて薬を2回実行しないと、これはできないはずなんですよね。だから、テクスチャーペッチを減らそうと思って、これ1回だと思ってたら大間違いで2回だったりするわけですね。

という感じで2分ってのはなるべく書かない方が1GPUにとっては優しいという話でした。はい。というわけでパート2はここまでになります。はいどうもお疲れ様でしたありがとうございます。

Decalによる様々な表現と使い方

Unity2021.2以降のURPでは、これまでHDRPだけで使用できたデカール機能を使うことができるようになりました。デカールはCに配置したオブジェクトに対し、そのモデルやマテリアルに変更を加えることなく、別のマテリアルを上乗せできる機能です。

これを使うと、デカールの名前の通りシーン内のオブジェクトに別の絵柄を投影することができるようになります。はっきりした絵柄だけでなく、汚れ、ウェザリングなどを投影することで、先の繰り返しや単調さを補うという使い方もできます。

また、パーラーだけでなく、スムースSやメタリック、ノーマルなども投影できるので、このように、全く違った質感を上乗せすることにも使えます。デカールはシーンの中で投影されるので、高低差のある形や複数のオブジェクトで作られている場所にもそのまま使用することができます。

投影するマテリアルには星座グラフが使えるので、アニメーションを含めた複雑な表現も可能です。デカールはゲームの実行中インタラクティブに追加することや、動かすこともできるので、それを使ってダメージや足跡の表現にも使えます。

このようにいろいろと便利なデカールですが、その使い方はとても簡単です。今回はURPとHDRPの両方について、その使い方を紹介したいと思います。まずはURPの使い方から見ていきましょう。URPでデカールを使用する場合は、まず最初にプロジェクト設定でデカール機能を有効にする必要があります。

プロジェクト設定のグラフィックスから、スクリプターBlenderパイプライン設定連打リストたどり、ユニバーサルれんだらデータの設定を開きます。この中のドレンだらフューチャーをクリックし、デカールを追加することで機能が有効になります。

デカールの設定にある方法では、ディーバーサーカースクリーンスペースを選ぶことができます。スクリーンスペースを使うと、PayPalで表現できる要素が減りますが、その分ディーバを使ったときよりも軽量に動作します。

どちらを使うか悩む場合は、自動を選びましょう。これで準備ができました。次は実際にデカールを使ってみましょう。デカール機能はデカールプロジェクターというゲームオブジェクト専用シェアを組み合わせて実現します。

シーンにデカールプロジェクターを追加しました。はい。デュアルプロジェクターは主にOS領域を決めるバウンディングボックスの設定と、するマテリアルで構成されています。もうバウンディングボックスの中に入ったオブジェクトにデカールが投影されます。

投影される向きは白い矢印の方向です。ただし、デカールが投影できるのは、同名のオブジェクトだけです。URPでは、透明なオブジェクトにデカールは投影できないのでご注意ください。バウンディングボックスの形状、ピボット位置などは自由に変えることができます。

スケールモード、ヘリフfromヒエラルキーに切り替えると、バウンディングボックスにトランスフォームのスケールが反映されるようになります。投影される具体的な絵柄と質感は、マテリアルに使われたシェードある設定します。

URPでは、デカール専用のシュレーダーグラフが用意されていますので、これを使用します。プロジェクトフォルダに作成、チェダーグラフURPデカールシュレーダーグラフを作成し、これを開いて星座を組みます。JEITAグラフの画面を開いたら、まず最初にグラフセッティングを見ましょう。

ここには他のシュレーダーグラフには見られないaffectベースカラーaffectノーマルなどaffectとついたチェック項目がいくつかあります。これのオンオフを切り替えると、マスタースタッフの項目が増減することがわかります。

カールしグラフでは使用しない項目を空欄にするのではなく、必要な項目にのみチェックを入れることで、正しく効果が発揮されます。はい。次にマスタースタッフを見ると、いくつかの項目にαというスロットが追加されていることがわかります。

デカールはそのまま投影すると、バウンディングボックスの形に合わせて四角く投影されてしまうので、不要な部分はマスクで除外するのが一般的な使い方となります。そのマスクの入力が各要素のアルファです。URPでは、ベースカラーとそれ以外の項目に別々のマスクを設定することができます。

同じ領域でよければ、一つの素材をどちらのアルファにも繋ぎます。このように作ったシュレーダーグラフをマテリアルにセットし、先ほどのデカールプロジェクターにアサインすれば、デカールの完成です。シュレーダーグラフを活用することで、従来難しかった表現やエフェクトもいろいろと可能になります。

HDRPでもカールの基本的な構成や使い方は、URPと同じです。しかし、HDRPではそれに加えて、さらにいくつかの機能が追加されています。HDRPのデカールではJEIDAグラフを使わないでカールshaderを使うことができます。

はい。デカールシェアでは、ピカールの基本的な機能を網羅しているので、アニメーションなど特別な要素がいらなければJEIDAグラフを使う手間が省けます。また、このデカールシェアでは、他のデカール機能ではできない透明なマテリアルへの投影が可能となっています。

HDRPではデカールLayer機能を使って特定のオブジェクトだけにデカールの投影を限定することができます。FRLayerはプロジェクト設定からHDRPアセットとHDD連打パイプライングローバルセッティングのフレーム設定デフォルト値米良にある銘苅玲亜のチェックボックスを有効にすることで使えるようになります。

設定を有効にするとデカールプロジェクターで設定したデカールLayerが、投影を受けたオブジェクトのメッシュ連打らのレンダリング例やマスクに含まれている場合だけ効果が反映されるようになります。最後の機能として、アダプティブノーマルブレンディング追加的法線ブレンドを紹介します。

HDRPセットでこの項目にチェックを入れると、デカールで投影される方線がオブジェクトの法線とブレンドされ、より自然な仕上がりとなります。使いどころは限定されると思いますが、これが必要な効果もいろいろとありそうです。

デカールはシンプルな機能ですが、応用の幅が広く、いろいろと発展的な使い方が考えられます。ぜひ皆さんの制作にもご活用ください。ご視聴ありがとうございました。

Shader Graphを使えばプログラミング無しにシェーダーが作れるようになります!

【自動文字起こし・内容未調整】

皆さんおはようございます。Unityというかおはようございます。はい。Unityテクノロジーズジャパンの高橋慶次郎です。今日は朝早くからお足元の悪い中お越しいただきありがとうございますということですね。

今日は、SEEDAグラフに産むと題しまして、生ダグラム話をさせていただきたいとセダングラフと今日話してシェアグラフというのは、Unity2018から使えるようになった新しい集団の仕組みです。いわゆるベースのシェアエディターっていうやつで、これ基調講演でも簡単にでもしていましたけれど、こんな感じの濃度、ボックスをグラフに配置していてワイヤーで繋いでいくことによって集団の機能を構築していくこういうふうなマテリアルのデザインを行ったりだとか、これライティングリングライトの例なんですけれど、ライティングを強化するためにベッドを作ったりだとかそういったことがこういうグラフィカルな環境でできるという。

あんまり話を長くするよりも、まずは簡単な例を見ていただいた方が早いと思うので、簡単すごく簡単な例マルチテクスチャー結社2枚貼り付けるっていうのを簡単にやってみたいとはい、これが正代理人のグラフリーダーの画面です。

初期状態ではマスター濃度っていう出力先の濃度だけ配置された状態になってます。ここにクリエイトモードでテクスチャーを貼りたいんで、3部テクスチャー次っていうのをどう動きます。そして、多分テクスチャー貼りましょうね。

テクスチャーを他のテクスチャーこれ用意されてるんで、これを選択して、これのRGBの出力をマスタードのアルベドに突っ込みます。そうするとテクスチャーが貼られました。この樽法線マップも用意されてるんで、ノーマル貼り付けましょうまたサンプルテクスチャー2Dモードを作って、ノーマルマップを読み込んで、これですね。

45のマークの場合はこのタイプをノーマルに変更しておきます。はい。これもまた読み込みました。そしてRGBこれをスター・ロード②入れると、はい。ちょっと小さくてわかりにくいかもしれませんけれどちゃんと光線マップが貼られてきた状態になり、さて、今回はマルチテクスチャーの例なんでもう一度テクスチャーを貼り付けてみましょう。

なのでちょっとこれを横に特化してもう一つサンプルピクチャーモードを作りますサンプルテクスチャー2Dで、ここで今度はUnityのロゴを読み込みましょうかUnityロボティクスを読み込みました。そして二つのテクスチャーを混ぜるには、ブレンドモードを使います。

Friend濃度を作って、これで二つのテクスチャーの出力をプレイモードに繋いであげて、はい、混ざりましたとブレード濃度をいろんなブレンドモードが用意されてます。なんか今年のLayerのブレンドモードと同じです。

デフォルトではオーバーレイ合成になっているんですけれど、例えばこれ来店とかにすると、明度の高い方を前に出すっていう例のプレーと思うんですね。とか変えることができますが、今回は多分オーバーレイに行って、オーバーレイに戻しましょう。

はい。そしてこの出力をある程度に繋ぎ直せば、はい。マルチテクスチャーされたマテリアに変わりましたが、これだとちょっと4人色が大きすぎてよく見えない。ちょっとリピートさせましょうか?UVをリピートさせるには、UVを取り出すためにUV濃度を作って、これを10回リピートさせたい、掛け算してやればいいとなので、UVの出力をリプライっていう掛け算の濃度にせず込んで、はい。

10回中と掛け算しましょうか?これで10掛け合わさったUVが出来上がったのでサンプルチェックして次に突っ込むと、はい、10階美術されたテック社員があって貼られました。完成です。こんな具合で正座g使う。

さてshaderグラフというのは、今お見せしたような、いわゆる濃度ベースの製剤になります。これを開発したのには二つの理由がありました。一つはわかりやすいです。あの簡単にシートを組めるようにしたい。今、デモンストレーションを見せしたように、誰でも簡単にグラフィカルな環境において視覚的にマテリアル製だをデザインすることができるようになります。

が、もう一つ実はモチベーションがあってですね、あのし他の互換性を高めたいなと思ったんですよね。互換性っていうとなんかなんのこっちゃわかんないかもしれないんですけれど、今までUnityレンダリング方式を切り替えるために制度を組み直さなきゃいけないというふうな制約がありました。

ユニティカメラのプロパティの中にレンダリングパスっていうのがあって、そこでWordとかっていうワードとか取り、いくつかレガシーがあるんですけれど、フォワード方式でパート方式というふうにレンダリングの方式を切り替えられましたが、フォワード用のシェアリファー土曜の姿勢が別々に書いて用意してあげなきゃいけなかった。

今これ二つで済んでいたんですけれど、これが今後、スクリプターBlenderパイプライン登場によって、もうちょっと難しい状況になるかもしれません。スクリプターみんなパイプラインでパクリ基調講演でもちょっと言及したので、皆さん名前ぐらいは聞いたことあると思うんですけれど、CSIRTのスクリプトを使ってカスタムのレンダリング方式実装してUnityの上で使うことができるという、とても強力なカスタムの仕組みです。

ユニティからはライトウェイト連打パイプラインはいっていうふうにミッション連打パイプラインで二つの連打パイプラインを提供する予定ですが、その他にも例えばそれぞれのタイトルでタイトル戦用の特注の連打パイプライン実装したり、あとはサードパーティさんが何か開発した連絡パイプラインを持ってきて導入したり、あるいはアセットストアで今後連絡パイプラインがカスタムで開発されて販売されるなんていう展開もあるかもしれませんそれから制度がどういうふうに連打パイプラインがたくさん登場してくると連打はこの連動パイプラインそれぞれにいちいち制度を書き直していたんじゃ、かなり運用としては厳しいです。

なので、星ダグラムは星座グラフ1回組んでしまえば、どの連絡パイプラインに戻って行っても同じ星座パイプライン使い回せる。というふうな抽象性を持たせようという、それを目指しています。なのでちょっと話をまとめるとですね、星座グラフ単純にあの星座グラフってすごい使いやすいエディターができたという点もいいんですけれど、それ以上に作るための連絡パイプラインが導入された世代の新しいユニティ臭いで制度を組むためのベースとなる標準の仕組みなんかそういうふうに受け取ってもらっていいと思います。

というふうにですね、思ってるんですよ。これ大がかりな仕組みなんですよ。はい。っていうふうな能書きやこれぐらいにしておいて、早速生ダグラム使っていくために実際に必要な設計についてちょっと説明しておきたい。

Ⅲ度燃料パイプラインですね、今使うときにですね、一番簡単なセットアップ手順はライトウェイト連打パイプラインをインストールしてもらうというというのもいましてグラフはライトウェイト連絡パイプラインの上で開発を行っているので、ライトウェイト連絡パイプラインインストールすれば、小さいグラフくっついてインストールされるようになってこのライトウェイト連絡パイプラインインストールするのも実はちょっと2通りの方法は考えられて、一つはパッケージマネージャーこれもUnity2018で新たに導入された仕組みですけれどパッケージマネージャーを使って手動でライトウェイト連打パイプラインパッケージをインストールしてもらう。

という方法もありますが、Bの方が簡単なのでとりあえずお試しするのはBをおすすめします。ライトウェイト連打パイプラインテンプレートからプロジェクトを新規作成するという方法です。ちょっと実際にやってみましょうこれUnity2018がインストールされた環境の日にthaveを立ち上げた状態です。

ここでプロジェクトの新規作成をするんですけれど、テンプレートの中にですね、2D3D以外に、このラインとRPってのが許されて、なので、このテンプレートをもとにクリエイティブプロジェクトってすると、はい。

ライトウェイト連打パイプラインのこういうテンプレプロジェクトが読み込まれた状態でプロジェクト新規作成したりします。もうこの状態ですね星座グラフ使えるようになっています。プロジェクト牛のところで、クリエイトメニューから滋賀を選ぶと中にですね、今までのこの姿勢だ選ぶ選択肢以外に、PBRグラフさぶらふあんりとグラフっていう3種類のシェアグラフを作るためのアセットが追加されています。

ここで例えばPBRエラーとかを選択すると、はい、こういうふうにプロジェクトBの中に入手グラフアセットファイルが新規作成されます。これをリターンとして実体化して、これダブルクリックすると、配信者グラフエディターが立ち上がりました。

こんな感じでグラフのセットアップが行うことができます。はいセットアップが済んだら、生産グラフを使っていくんですけれど、基礎の部分をまず最初は説明してみたいとC先ほどお見せしたクリエイト製だ以下のメニューにPBRグラフとサブグラウンド杏里とグラフで3種類の選択肢がありましたが、サブグループはですねちょっとマニアックな機能があって、今日は説明しません。

PBRグラフと管理とグラフこの二つの星座グラフの違いは、PBRグラフの方はPR記事カリーベースのレンダリング物理ベースレンダリングのラインっていう込みのせいだグラフを作成してくれるものですリキッドの方はライティングなし、もうマスターモードに突っ込んだ色がそのままレンダリング結果として出てくるというふうな仕組みのものです。

なのでライティングあるなしでどっちを作るか決めてください。こっちがPBRの抗力薬ですねPBRマスターモードがあって、ある程度とかノーマルとかスムーズとかPBRに関連するパラメータの口金というスロットが用意されてこれリトグラフでもうカラーを突っ込んだらそれがそのままレンダリング結果になるという非常にシンプルな構成ですね。

PRマスターの方でちょっといろいろいじくってみたいと思います。まずはノードの新規作成なんですけれどこのグラフエディターの右クリックメニューの中に、はい。クリエイト濃度っていうのがあるので、これを選択すると、クリエイトのモードダイヤルが出てきます。

今回ですね、カラーを作ってそれをある程度に突っ込むというのをやってみたいと思います。なので、カラーボールを作りたいんですけれどもとですね、多分インプットの電子機器の中にカラーっていうのがありますんで、これを選択すると、はいから抜きました。

これで何か赤い部下にしてあげて、これをある程度煮詰めば、はい。マテリアルのあるビルが赤になりました。ノート作るときの方法もう1種類あってクリエイト濃度でこのクリエイトのモードダイヤルを呼び出すですけれど、ここで殻などを作りたいなと思ったらこの検索ボックスにですね、カラーとか打ち込むと、から当て打ち込むとカラーコードを作れるような状態になってますんで、ここで短期ポチっと押すだけで、はい動画作ります。

ほとんどの場合自分の作りたいのが既にわかってる状態でシェアグループ作り始めるんで、ほとんどの場合チクチクってメニューを選択してくんじゃなくていきなり検索ミックスに作りたい名前を打ち込んで作るっていう基準なんではいここでは何か青色とかにしときましょうかね、青色の色をPRミッションに突っ込みますそうすると、ある程度字が赤い色のマテリアルに自己発光で合う様子が追加されるというふうな状態になり、実はノードを作る方法もう1種類あって、このスロットからワイヤーを引っ張り出して何もないところで話すと、これクリエイトのダイヤルが出てきます。

ここで例えばかけたりしましょうか?チップラインとかやると、はい。既にスロットが繋がった状態でノード新規作成することができますこういう作り方もあるってことですね。この掛け算した結果をミッションに突っ込めばちょっと明るくなるはずなんですけれど。

はい。ちょっとわかりました。この濃度ちょっと大きすぎてうざいなと思ったらこのプレビューを隠すボタンを押して隠したりだとか、もう一つここにも各ボタンがあるんですけど、これ押すと繋いでないす事が隠されてさらに省スペースになったりします柘植公、あの整理していきましょう。

こうして作ったシェーバーグラフをプロジェクトの中で実際に使うのはセーブする必要があります。このグラフエディターの左上に西武アセットってボタンがありますんで、これをポチっと押すと保存されて聖奈がコンパイルされてこのプロジェクトの中で使える状態になります。

なので、これでマテリアルを選択してあげると、マテリアルの星団の選択肢の中に、ビラップスの中に今作った乳歯グラフが登場しました。これを選択すると、はい。実際にマテリアルの中で今作った酒ダグラム使える状態になっているという感じですね。

実際にゲーム中のオブジェクトにこうやってマテリアルを突っ込んであげれば、はい今作ったシュレーダーgゲームの中で使う状態まで持ってくることができました。はい。大体こんな感じなんですけれど、もう一点ちょっと説明したいポイントがあって、このマテリアルの中のプロパティとして瀬田グラフの中の値を引っ張り出してくる方法を説明したいと思います。

これをするには、星座グラフの中に、ここにですね、プロパティブラックボードっていうのがあるんですけれど、ここでプラスボタン押すと、こういうふうにプロパティが増やせます。カラーを増やしてみましょう。カラー選択します。

するとカラープロパティできるので、名前を適当にメインから来てるんですね。メインから、はい。デフォルトの色を適当に何か設定しておいて、こうして作ったプロパティを、この何かプロパティのボタン的なものをですね、ドラッグアンドドロップしてこういってグラフの中に放り込むと、グラフの中にプロパティが実体化します。

これを普通のノードと思って、こうやって繋いであげれば、はい。マテリアルのプロパティから色がいじれる状態でした。セーブすると、マテリアルのプロパティとして今のメインカラーというか追加された状態なんですね。

これをいじってあげれば、ゲームの中の値が変わるはずなんですけれどはい、変わりましたね。こういうふうに、シーザーグラフの中の値がマテリアルプロパティから間接的にいじれる。大体こんな感じですねしていたクラブの使い方あとは何か工夫次第で作れますっていう感じです。

こっから先はですね、具体的にいくつかシェーバーを作ってみて星座グラフの使い方だとかテクニックだとかを解説していきたいと思います。一つ目は堀木町公園でも何かやってたんですけれど、溝部区というのをやってみたいです。

どういうものかというと、こんな感じで物体が手話って消えていくときのエフェクトをアルファカードを使って作るって感じですね。こういうαが抜けていきつつその牙の部分が光るみたいなエフェクトを追加してあったりします。

これを今から作ってみたいと思います。まずはアルファカットアウトって何だったっけっていうのをですね、僕簡単な話なんですけど復習しておきたいと思います。αカット例えばこういうふうにある価値のグラデーションが与えられたときにカットオフ値っていうのを設定すると、このカットオフ値よりも低いアルファ値を持つピクセルの評価がキャンセルされて、後ろがすり抜けて見える。

ていうふうな簡単なエフェクトです。これパターンの背景を抜いて何か後ろの背景を合成したりするために使うのが、いつも使い方だと思うんですけれど例えばこんなふうにグラデーションのパターンでαを与えてあげたときに、カットオフの値を0からずっと上げていくとこんなふうに何かトランジションしていくようなエフェクトっていうのを簡単に作ることができるんですね。

こういう単純なグラデーションパターンだったらこういう単純なトランジションになりますし、こういうノイズをR8と与えるして与えてあげればカットオフ値を上げていくとこういうふうに歯抜けにモヤモヤって抜けていくみたいな持続のエフェクトが作れますこれを3Dのリボンの中に入ってしまうということですね。

αで抜くだけじゃなくて、この葛藤区の値よりもちょっと高い領域を切り出して、ここを青く光らすことによって、何か基盤の部分が青く光りながら聞いていくみたいな感じにしたいっています。そう実際にやっていきましょう。

時間も限られてグラフの中で、まずはベースとなるテクスチャー貼り付けちゃいますサンプル適した2Dのを作ってですね今回使う積層ゴムでノーマルマップがあるんで、台風の0にして、このノーマルをTPRマスターのノーマル作ります。

これでノーマルマップ貼れるんですけれど、この球体のプロフィールだと何が起こってるかよくわかんないんで、ここで右クリックメニューの中からカスタムメッシュっていうのを選択して、プレビューをカスタムのメッシュに変えちゃいます。

今回はこの石像のモデルを使うので石造モデルでプレビューしちゃいましょう。薄暗いとよくわかんないんでちょっと白色にしておいて、とですねアンビエント用のマップも用意していたのでもう1個し、サンプルテクスチャー次濃度を作ってアンビエントのマップ読み込んで、これのRとかの値をマスターノードの屋上に突っ込んであげます。

はい。これで安全と駆除に適用された状態になりましたねこれはちょっと後ろに置けて多いってはい。ノイズのパターンを他に入れてカットオフで持続作るという話でしたので、ノイズの濃度を作りたいと思います。クリエイトのメニュー選んでここでノイズって入れると、ブラディ円とノイズとシンプルノイズって二つの選択肢がありますが、今回はシンプルノイズ濃度を使ってみたいなこんな感じの砂嵐状のノイズが作られますこれだとちょっと細かすぎてよくわかんないと思うんですけれど、このスケールチームをいじることによってこのノイズの濃度を変えることができます。

適当にですね30とか40ぐらいに落としてあげるとこういうモヤモヤノイズになってることがよくあると思います。このノイズをPRマスターもαに突っ込んでみた感じですね。はい。これある町が変わっただけなんで見た目上何が起こったかよくわかんないんですけれど、αカットオフの値を設定してあげましょう体を突っ込むだけに、ために生きてきたワン構造作ってあげます。

これをマスター濃度のアルファークリップスレッショルドっていうのを入れてあげますこれがαカットアウトの葛藤口を制御するためのすることです。これで設定して、カットオフ値をだんだん上げていってあげるとこういうふうに関係の感じになってですね、リズムがこれでできるんじゃないかなというふうな見通しが立ってきました。

はい。これでカットアウトの部分はできたんですけれど、カットオフ値よりもちょっと高い領域を抜き出して光らすというのをやりたいと思います具体的にはカット口プラス0.05をしきい値として、そこよりも低いα値を持つピクセルは全部光らせる。

というふうな方式でいきたいと思います。同節の葛藤値よりも低い領域は全部、要はキャンセルされちゃうんで、そこのことは考えずにもうカット+0.05単純に閾値として、低い領域だけを切り出そうということですね。

こういうふうに何らかの閾値を持ってそれよりも上とかそれよりも下とかを抜き出したいときは、スタッフ濃度っていうのを使うべきです。敷地とかスレッショルドをやってくれるのですね。これ、こんな感じの音なんですけれど、インプット入力とHっていう閾値を決めるためのスロット二つのスロットが用意されます。

そして、このHにせえと入力されたスレッショルドよりも低い値に関しては全部0Proを返して、Hよりも高い入力に関しては全部1キロを返すというふうなのです。なのでこのHですぱっと上位に切り分けることができるですね。

実際にやってみましょう。ここにステップ濃度を作りますStepはい。この閾値にはこのベクターは値Hに繋いであげて、アルファーの方のノイズを入力値、インプットとして、はい、これでこのHを境目にして、高い領域低い領域が未分化されるというふうな状態が作れました。

この出力をマテリアルマスターのミッションに突っ込んであげると、全部光った状態になりますねこれはそういう意味です。先ほど、カットオフ値+0.05って話をしたのでプラス0.505倍といけないです。それはちょっと整理してプラスするために足し算モードを作りましょうノートを作って、カット打ちを入れてBは0.05としておきましょう。

そしてこの出力をステップのHとして使うことによって、はい。牙の部分の領域を除外することができました。そんな感じですね。はい。今どういう状態になってるかっていうとカットオフ値プラス0.5、0.05式1としてそれはもう体力が全部光ってるという状態です。

実際にはこれ反転しちゃってんですね低い領域を光らせたいので、パターンを反転させることにしましょう。このステップ濃度の出力に対して、色を反転するためのインバーターとカラーズっていうのを追加します。これを間に挟む形にしましょう。

この反転クラブを立ててあげることによって、反転します。こうして反転したパターンをミッションに突っ込んであげれば、はいもうだいぶ完成に近い状態になってきたと思います。葛藤口を整備をするとこういうふうに、アルファーが抜けるんだけどその際の部分がちょっと領域切り出されて白く光るという状態に今なっています。

はい。これ今手で手動で操作してアニメーションさせてる状態なんですけれど、自動で時間でアニメーション義賊のアニメーションさせたいんで、時間のアニメーションをちょっとここに組んでみましょう。時間を小さいグループの中で使うのは、タイム濃度を作ります。

これはゲームが開始されてから経過時間を秒で返すものです。これにクラクション濃度をかまして小数点以下の値を切り出してあげればいいと思うんですよね。はい。クラクション濃度ってのが出てきたんですけれど、クラクション濃度は小数点以下の値を切り出す温度です。

例えば1.1が入力された0.1を介す2.4が入力されてる0.4か0.5小数点以下の値が入ってきたらそのまま生じているかの辺りで公開するというふうなものです。なので、こういうふうに延々と上がっていく経過時間みたいな値を入力すると、0から1に上がっていって、小数点以下の値に戻る0に戻って1に上がっていってまた0に戻ってっていうふうなこういうふうな反復するアニメーションになってくるはずです。

実際に役員がショータイムから経過時間タイムを抜き出してクラクションに突っ込むと、こういうふうに黒の状態から白に上がっていって黒に戻って白に戻ってくるに戻ってっていうふうなアニメーション版アニメーションを作るとか、これをこのベクターOneで入力していたカットオフ値の代わりに使ってあげれば、はいこういうふうに1秒ごとに持続していくアニメーションというのを作ることができます。

これでほぼ完成なんですが、あとは移動してできるようにしましょう。消えていくとき、青白く光らせたいので今みたいな真っ白じゃなくて、広い成分を作りたいと思います。プロパティブラックボードの中で、カラーのプロパティを追加してあげて、今回は発光する色なので白よりも明るい1DRの用紙でしたいと思いますので、このモードデフォルトからHDRに変更していきます。

文字小さくてすみません。これHDRに書いておいて、何か輝度を白よりもさらに明るい色に、そしてちょっとウィロー絶対なという感じで調整しております。ちょっとアップしましょう。ちょっとアップしておいて、こうして作ったカラーのプロパティをドラッグアンドドロップで実体化してあげて、これをこのマスクのパターン掛け合わせたいんで、マルチプレイ掛け算モードを使って、よしよし、優勝、掛け算してあげましょう。

これで色をかけるマスクという感じでマスクに色がついたはずです。セーブして実際に現場面で確認してみましょう。政務そうしてゲームビューに移して実行してあげると、はい。光りながら歩かで火冷えていきながら、牙の部分が白く発光するというふうなエフェクトがこれで完成しましたはいおさらいとして全体へとしたグラフの全体像を見ておきましょう。

そんなに難しくないですね。使ってる濃度の数も限られていますしこの程度でこのぐらいのエフェクトが作れちゃいます。まずはR8に突っ込むためのノイズをノイズの方で生成して、それを01の反復アニメーションを作り出した上で、その反復アニメーションをスレッショルドとしてマスクを作ってそれを反転させた上でプロパティのカラーとかけてあげることによって、青白く光る。

したそんな感じの簡単なグラフです。はい。ここで使ったテクニック、二つ主要なものを挙げておくと、ある値スレッショルドを中心として低いところ高いところを抜き出すステップ濃度が原因ですよ。小数点以下で反復するようなアニメーションだとか値とかを作り出すにはフラクションモードだけですよっていうふうなテクニックがあります。

はい、これですね。礼一やおしまい時間限られてると思う次にちゃいましょう。02エネルギーゲージやってみたいと思います。これはちょっと実用的な例かもしれませんね。こういうふうなゴルフゲームの何か打つときの強さのエネルギーエネルギーみたいなのを作ってみたいとこういう何か現地のためってこういう直線的な縦とか横とか、直接的なやつであれば、スプライトなんかスケールかけたり移動したりするだけで実現できるんでそんな難しくないと思うんですけど意外とこういう湾曲した形状のやつとか、なんかヘンテコな形状をしたやつをちゃんと形状通りにゲージとして使おうとすると結構実装が難しいんですよ。

なんですが、そういった変形現状実装するための簡単な一つの手段として手段の一つとして、グラデーション素材とスレッショルドを組み合わせるというふうな技があります。どういうことかっていうと、こういうゲージに沿ったグラデーションパターンを用意してあげるんですね。

一番下を白にしておいて一番上を黒にしておきます。これに、スレッショルドに近のエフェクトをかけると、このスレッショルド値を境目にしてゲージの埋まってる状態からの状態っていうのを作ることができるんですね。

これを星座グラフの中でステップ濃度を使って実現してしまえば、こういうふうにスレッショルド値によって刑事が上下するというのが実装できるはずです。これすごいねからなテクニック使ってみても面白いかもしれない。

その上でこういうゲームの枠の部分をあるファブリックですいません、合成して上げた上で、はい。あのゲームの中身の空のときは赤で満タンのときは緑にするっていうふうな色のグラデーションをつけていたんですけれど、こういったグラデーションを与えるためのブラですてきた素材も今年であらかじめ作ってました。

さあ、これらの素材を使ってセーターグラフで動く掲示作ってみましょう。今回は、ですね、PRライティング使わないので、杏里っとグラフにしました。杏里と濃度だけが存在してる状態です。これプレビューやっぱり球体だとわかりにくいって今回はクワッドにしましょう。

スプライト的なやつしてますんで今回ですね、半透明の描画を掴んで杏里っとマスターモードデフォルトではオペっていう不透明の病院になっちゃってます。これをトランスファーレンズで透明化しておきましょう。そして、早速グラデーションのゲージの素材を読み込んじゃいますサンプルテクスチャー次作ってグラデーションのバーを読み込んではいアルファがなんか化けてるちょっとよくわかんない状態ですけれど、この色を空に突っ込んであるマーチをスター・ロードがアルファに突っ込んであげればはい経営陣のグラデーション素材読み込めたのがわかる。

さて、ここに先ほど話した、スレッショルドを使って工場が動くという状態にしたいんで、ステップ濃度を作っていくことになりますステップモードを作って、このグラデーションをインプットに入力して、とですね次の値を与えるためにまたベクターは仮応じましょう。

ベクターは用意して、これをHとして入力するとすると、このHを上下させることによってゲージが動いてるのがちょっと化けてるんでよくわかんないんですけど、動いてますね、多分いいと思いますなのでこうしてステップで作ったゲージの動きと、元の素材のあるハッチをかけ合わせてあげることによって、はいこういうふうなゲージの状態が作れました。

これをカラーとして使ってあげます。これで、はいG値を2万の値を動かすとゲージが減ったり増えたりというふうなところまでで実装できました。が、これ実はちょっと一点問題があってですね。今入力してるベクター0与え、絶対値の値が0のときに満タンになって、1のときに空になるっていうですねちょっと感覚的な逆の状態になっちゃいます。

本当は0ときから一度ときに満タンになってほしいんですけれど、今実装と仕様がですね、逆になっちゃってる状態です。与えを変換したいと思います。こういうときにですね、手軽に使えるものが、2マップの温度です。

与えるお手軽に一時変換してくれるこれが2マップ濃度なんですけれど、これどういう働きをしてくれるものかというと、委員から入力した値に関しての委員バックスっていうXYと設定するところがあるんですけど、委員2MAXの範囲で入力された値が合うと見マックスの範囲で出力されるよう、1次変換してくれるというちょっと具体的な例をお見せしたいと思いますが、例えばsin波を入力したとします。

サイン波って-1から1の範囲で入力が発生するので、マイナス1から1の範囲なんですけれどこれをいやマイナス1とか1じゃなくて0.3から0.7の範囲で上下してほしいんだよなっていう気分になったらですね、ビーマップのを使えばいいんです。

ビーマップのを作って社員が入力して、入力の範囲はマイナス1から1だよでも出力の範囲は0.3から0.7にしてほしいとこういうふうに今の本部設定してあげれば、その0.3から0.7に変換された波形がアウトからっていうふうな感じで今回はゼロから1年入力してたんだけど、これ実際には1から0に下がってくような感じにしてほしいんだよねっていう要望なので、ビーマップモードを作ってやって、入力は0から1だ。

出力は1から0だっていうふうにすれば、0から1の範囲で反転してくれるはずです。実際にやってみましょう。ベクター1の入力に対してビーマップ濃度を作ってやって、はい入力して、マックス0110とすればはい。

これで値入力値を0にしたときに、空になって1になったときに満タンになるというのはちゃんと仕様通りの窒素てきました。よかったです。はい。ただですね、まだ実はちょっと不満な点があってですね、これステップノードを使ってしまったがためにですね、このバーの上限Hの部分がすごくいっちゃうんですよね。

これちょっと画質の劣化してるんであんまりジャギの様子がわかんないかもしれないですけど、すぱっと切られてしまってピクセル基準がすごく目立ちやすくなってしまっています。これどういうことかっていうと、ステップ濃度ってHの値をスレッショルドとして0一時すぱっと分けるっていうふうな濃度なので、この境目がものすごくギザギザしてしまいやすいんですよ。

これも実は簡単に避ける方法があって、それはですね、スムースステップボードを使うことです。これもう名前の通りステップ濃度が滑らかになったらスムーズになったものです。どういうものかというと、スムーズステップ濃度でH番とHするっていう二つのHを設定することができますHYよりも低い値は全部0黒がかえってH数よりも高い値に関しては全部1白が買えるんですけれど、そのHは1通の間に滑らかに繋いでくれる。

なので、今回はこの入力値と入力値+0.05の間でこうやって滑らかに繋ぐことによってジャギを目立たなくする。事ができるんじゃないかっていうことをやってみたり、はい。ステップ濃度の代わりにスムースステップモードを作って、こいつにビーマップした値をH番として入れてあげて、グラデーションをインプットに入れてあげますとりあえずアウトを繋いじゃいましょう繋いであげて、ステップモードを払い、テストで0.05対プラスするんでした。

ここにモードを作って、これを繋いで0.05だった忙しくなってきましたが、はい。これで済むステップ適用された状態で先ほどあのゲームの上限がすぱっと切れてたんですけれど、こういうふうにグラデーションがついてくれました。

これで体を上下させると、はい。ジャギのない滑らかなこのゲージの上下がこれで実装できるというわけです。この進むステップ濃度を使ったテクニックはですね、本当にあの使いがたくさんあるんで、ぜひとも活用していってもらいたい。

はい現車ほぼできたんですけれど、色をつけたいんでした。色のグラデーション素材が用意されていたのでこれを適用してあげましょう。サンプルテクスチャーモードを作ってあげて、このグラデーションの素材読み込んであげて、これのグラデーションのUV値にこの入力値をそのまま突っ込むよっていうね。

そうすれば、この入力値に応じてグラデーションが適用される位置のときは緑になって0のときは赤にっていうふうなグラデーション挙動ができるはずですだんだんこれグラフが広くなってきて雑になってきたんですけれどここにマルチプライをかけることによって色を掛け合わせることができるはずですやっちゃいますはい。

これで色の付いたバーが実装できました。はい緑赤というふうになりますね。はい上手の部分の素材を用意してましたので、これをアルファブレンドしてあげましょう。ですねshaderグラフの中でアルファブレンドを行うには、ラップ使ってあげるのが一番簡単でいいと思います。

ランプモードっていうのは元々与える他、AからHからビーチの間を直線で繋いであげるみたいな濃度なんですけれど、単純にあるブレンドするにも使えます。ということがやってみましょう。ここにラーク違う枠の素材を見込んであげるためのサンプル適した2Dの作って、枠の素材読み込んでやってよいしょ、ここにアルファブレンディングするためのラークモードを作りましょう。

ラームモードはいダークモードにですね間違えあれですゲージの素材を入力Hして、この枠の素材をB1にして、この間をαで繋いであげればこういうふうにアルファBrainできるわけですね。これをマスターノードに繋いであげるんですが、ですねこれからだけじゃなくて、アルファチャンネルに関してもアルファブレンディングしてあげないとちょっと見た目がおかしいので、もう一つ楽モードを作ってあげてこのαの値もまた同じくBに繋いでアルファード与えるをAに繋いで、この枠のαをαに繋いでっていうのも一つやってあげましょう。

それである町野は触れる。いきました。これをαに出力してあげれば、はい。これで目指していたものができたはずです。それでゲームの中身が、はい操作できているが変わって訳がついて、ほぼ出来たんじゃないかな。これであとはプロパティを使ってゲージの上下ができるようにしてあげたいのでプロパティブラックボードにエフェクターはパラメータ用意してあげて、名前はバリウムにしてあげてスライダーにしたいのでモードをスライダーに変えておいて、これをドラッグアンドドロップで実体化してあげて、仮で使って作っていたベクターOneの代わりにこうやって繋げ、あげれば、はい。

セーブしましょう西武杯でゲームの中で回ってリアルを操作してみると、はい、このバリュースライドがありますね0のときやから1になると上がっていってっていうふうな、こういうバー条件の挙動が実装できました。できましたが、実は言ってバグがあります。

これ0ときからになってくれるんですけれど1のときにですね、上がりきってないんですよ。なんか上にちょっと黒い領域が残っちゃってます。わけです。これどういう状態かというとですね、あのスムースステップボードを使って0.0本グラデーションの領域作っちゃったんで実は満タンになったときにですね体がですねちゃんと上がりきらない領域ができちゃってるんですよね。

なので、これをマイナス方向に入れてずらしてあげることによって、きちっと値が上がりきるようにしてあげれば、多分治ってくれるはずです。というふうな検討をつけて、ちょっと対処してみたいと李MAP濃度の今1から0ってなってる1からマイナス0.05の範囲で変化しろよっていうふうに当たりのレンジを広げてあげれば多分直るんじゃないかな。

セーブします。そして、このスライダー操作してみると配置のときにちゃんとゲージ上がりきって0のときにちゃんとゲージが下がり切るってバックができました。というふうにですねこのゲージのエフェクトを作ることができますというのと、小さいグラフを作る人はこういうデバッグ作業です。

することがあるということですね心に留めておいてくださいというふうにデモンストレーションはい、おさらいしてみたいと思いますこれもそれほど難しいグラブじゃありません。使ってる濃度の数も限られているんで、まだまだ簡単な例ですね。

ここら辺でスムースステップを使って滑らかにグラデーションするスレッショルドをやってあげましたこれでゲーム挙動がほとんどできました。それに対してグラデーションをする英語を掛け合わせることによって、バー色付けを行いました最後に枠の部分をアルファBrainしてあげる可能性っていう感じっすね。

はい。ここで出てきた二つのテクニック、ちょっとおさらいしておきたいと思いますが、ステップがあまりにも01、白黒はっきりしすぎていて、目立ちすぎる切りすぎるっていう場合はスムースステップを使いましょう。

もう一つは値二つまで保管してるαブリーディングしたりする場合はラップモードが使えるよっていうふうなテクニックがありました。はい。どんどん次の例でいきましょう。時間がない、うんはいそいじゃないですねはい、03、これ最後の例なんですけれど、小鮒JPiTアナログのブラウン管のテレビエフェクトっていう作ってみたいと思います。

こんな感じのエフェクトですね。なんかいかにも操作点があって走査線が歯抜け上に口上にかかっていて、なんかたまに入る方ノイズによって画面がブレブレってなるっていうふうななんかもう古ぼけたブラウン管のテレビみたいなエフェクトを作ってみたいなこういうのなんかテクスチャーのシートアニメーションとかなんか動画とかで実装すると、なんかメモリは9場所リバー9は、プログラマーには怒られるんすです。

なんかいいことないんで、こういう実はシェアグラフで簡単に作ることができます。とても星座グラフの使いでのあるところだと思うので、こういう何かちょっとしたFCの中に組み込みたいなっていうときには、青山クラブぜひ活用してみてください。

実際にこれやってみましょう。まずはモナリザの画像の素材を読み込んでしまいたいと思います。サンプルテクスチャー2Dノートを作ってモナリザのテクスチャーを読み込みました。これ今回PRのものを使います。ブラウン管って電子ビームがあったと自己発光してるはずなので、多分ミッションで自己発光要素として表現してあげればいい。

ですよね。はいミッションします。ちょっとてかこれ9月に書いておきましょう。はい。ちょっとライティング適用されてるが故にて買ってしまってですね、ちょっとチェックしにくいんで、次の色を黒くしちゃいましょう。

黒黒にしちゃう。スムーズに住もう0とかにして、テカリの成分をなくしましょうこれで多分作業しやすくなったと思います。はい。まずは走査線の櫛状の島々を表現してみましょう。これを掛け合わせるだけですね元の素材でこういった島々の素材テクスチャーで用意してあげてもいいんですけれど、このぐらいの簡単な形状でしたら、星団の中で生成してしまった方が早いです。

これしますやるにはですね、サインかを使うといいんじゃないかなと思います。サイン濃度sin波っていうとなんかちょっと小難しく聞こえますがsin波って要するに値が滑らかに上がったり下がったりするだけです。

こんな感じの波形です。これを、中期防やって細かくしてあげれば、ブラウン管のこの走査線のシマシマみたいなしましまが作れるんじゃないか、そういう目論見ですね。はい。実際に社員のどこに作ってみたいと、明日クリエイトモードからサイン入れてサインを作りました。

UV座標の縦軸を基準とするので、UV濃度を作ってあげて、このUVから縦軸をY軸の値を取り出してあげればいい。はずです。こういうふうに、ベクトルの中からXと怖いとかZとか、各成分を与える切り出すにはスプリットモードを使います。

はい。こんな感じです。スプリット濃度にベクトルと回路を突っ込んであげるとXYZW各成分が出てきます。RGBXMLに出てきます。そして、その成分をまたベクトルとか色に戻したいときはコンバインモードを使います。

こういうスプリットとコンバインで対になって使われるんで覚えておいてください今回UVを作って、UVからY軸の値を取り出したいです。なのでスプリット濃度を作って、UVの値を突っ込んであげて、そしてYこれラベル上RGBになってしまったんですけど、Xは2番目の値なので、Gを取り出します。

はい。これでスプリットを入れました。これ細かくしたいんで、マルチぐらいしてあげましょうマルチプレイマルチプレイはい。こうやって周期を高めてあげます。はい。大体200ぐらいでいいから、はい。こうやって作ったしましま模様なんですけれど一点ちょっと弱点があってですね、sin波ってマイナス1から1の範囲なんで、マイナスの値も入ってしまうんですが、マイナスの色の値ってものすごく後で悪さをしやすいので、これは切り取ってあげたいです。

こういうふうに値を01の範囲で安全な範囲で切りたい切り取りたいときは8例と濃度という使います。はい。幸玲斗とても簡単な働き納税ゼロ以下なんで全部ゼロ化して1以上なんて全部一応返すというふうな01以外は切り取ってしまうのです。

なので、これをここにかけることによって、はい。見た目上変化してないんですけど、これで将来のバグが防げたはずです。これをマルチプライでこのテクスチャー素材に掛け合わせてあげることで配送させるしましまが作りました。

はい。ちょっとこれあの育てのしましまにしちゃったせいでちょっと暗くなってしまったんで、無理やり明るくしますよマルチプレイモードをかけてあげることによって、ちょっと明るさを補ってあげます。はい。これでいいかな現状この操作点がピタッと止まってるし、しまっている状態でつまらないんで、これをUVアニメーションさせてあげたいと思います。

例のごとくタイムを使って、経過時間を取り出して、それをUVのY1に足してあげる感じですね。はいしてあげると、はい、走査線が動くんですけど、とても-6てちょっと効果がわからないので、①プライして、もっと早く動くようにしてあげましょう。

①プライを挟んであげれば最高益神々て、あの不安定に動く走査線の漢字をこれで表現できたんじゃないかなと思います。これでいいかな。はい。次はこの横にぶれるノイズを作ってみたいと思います単純にテクスチャーをサンプルにするときのUV座標の誘致、X血にノイズを足してあげるという感じですね。

なので、ここでノイズの濃度を作ってあげますノイズ先ほどとは違ってぐらいノイズの方を使って、多少ブライアントノイズこういうふうなモヤモヤノイズです。これy軸を入力してあげることによって、こういった手島のノイズを作り出すことができます。

スケールでこういうふうにノイズの島々の粒度を変えられるんで適当にこのぐらいでいいかなっていう理由で変えたら、これをはい。よいしょ。どうしてあげましょう元のX JAPANこれでノイズでUVのユーザー様にオフセットがかかった状態になってます。

これをちょっと整理しながら進めていくんですけれど、コンバインでUV元のはY座標と組み合わせてあげることによって、ノイズで横にオフセットされたこれでUVができたそのUVでサンプルするとはい、こういうふうに横方向に逆にあったなんて感じになりましたですが、ちょっとノイズが強すぎるので、もう一度読み上げましょう。

今どういう状態になってるかというと、クラーケンとノイズは0から1の範囲で変化する法律なので、これをマイナス1から1の範囲で弱めてあげながら0を中止ずらすようなりマップをしてあげましょう。はい。ノイズの結果に対して李マップ濃度をかませてあげて、李マップのノイズの入力値は0から1だからインパクトは01にして出力はマイナス0.1から0.1の範囲にとどめますよ。

やると、これでプレビュー見てみるとそこそこの穏やかなノイズになりました。このノイズをUVスクロールで縦スクロールしてあげれば、なんかいい感じの書き込みノイズになってくれると思うんで濃度を使って、UVのは1に達して、これをグラフィックノイズのUVの入力とするとはいこういうふうに縦スクロールするノイズで、このモナリザ鏡がするというふうな状態が作り出すことでした。

なんですが、これだと常にノイズがかかっていて、メリハリがないので、時間で強弱をつけてあげるようにしましょう。ここにタイムノードを追加して、タイムにタイムを裏地ノイズに突っ込むことによって、こういうふうに経過時間が滅する時間軸を基にしたノイズというのを作ることが、これで適当な速度になるようにスケールを調節した上で、このノイズの値と、このとですねりマップ5の値を掛け合わせてあげれば、時間で強弱のTwitterノイズというのを作ることができるんじゃないか。

はい、できました。ちょっとノイズの強さを調節してあげます。それで大体狙っていた効果が作れました。ノイズで横がずれるんだけ出るんだけど、時間によって今日メリハリのついたノイズにすることができるんですね。

はい。すげえ最後駆け足はいおさらいしましょう。今までのグラフと比べると若干複雑です。はい。ですがやってることはそんなに複雑ではなくて、下の方で3以下のアニメーションを作ってしましまのアニメーションを作って、それに縦軸のノイズかける時間の椅子でメリハリついたぐらぐりちゃんにミッションを作りました。

それをもとに、モナリザの傾斜をサンプリングして、最後ミッションに突っ込んだ。それだけです。なのでちょっと全体としてはでかくなったんですけれど仕組みとしてはそんなに難しくないです。はい。ここで学んだときに周期的に上下する社員の光に作りますよ。

そして01以外を切り捨てて安全な範囲内に渡る収めるには査定と述べるですよ。ベクトルを専務に分解するにはスプリットがメイン成分をべく取り戻すにはコンバインがという話でした。さあ、時間がオーバーしてしまったので、腸をかけやすい補足情報を最後に触れておきたいと思います。

今日、使ったサンプルのプログラムは全部GitHubに挙げておきましたので後でおさらいしてみたいときは見てみてください。ギター部の掲示物制度はグラフィックサンプルの中に挙げてあります。あと今日紹介しなかった例とかもいくつか入っていたりするんで勉強に使ってください。

あとソースコードなんですけれど、この星座グラフはオープンソース開発されています。GitHubのUnityテクノロジーズshadergというリポジトリの中で、今まさに社員たちがここで毎日更新している感じです。

ですので、何か問題を見つけたらこの異種投げてもらったり、こういう改良を行ったらいいんじゃないかみたいなアイディアがあったらピルケースを送ってもらってもらっても構いません。このソースコードが公開されてるんでいくらでもソースコードを書き換えることによってカスタムできるんですけれど実はソースコードを書き換えるまでもなく、拡張する方法があってカスタムモードを自分でノードを実装して、グラフの中で使うということができます。

これはですねもう説明してる時間がないブログの記事に譲ってしまうますがUnityのブログのカスタム検索するとこのカスタムモードの作り方を紹介した記事が引っかかりますんで、カスタムを実装してみたいなと思ったら、参考にしてみてください。

例えばなんですけれど、今日何かUVを作ってタイムを足してスケールかけてみたいな処理が何度も出てきたので、そういったものを、こういうアニメイテッドのUVっていうカスタムモードとか作ってみました。ていうふうに何か農道をいちいち構成していくのが面倒くさいなと複雑濃度が複雑すぎて処理が重くなっちゃったなっていうときは、カスタムモードを作ることによって手軽にグラフを活用していくことができる。

作業効率を改善することができるというふうに覚えておいてください。はい今後の予定なんですけれど、ですね今、ライトウェイト連打パイプラインの上で正座グラフの開発を行ってるんですけれど、ハイビジョンRPAの対応がまだちょっと完了していないので、これを早急に行うというのが今後の緊急の課題になっています。

あとはプロパティの名前をちゃんと変更できるようにしようとか、今日紹介したようなピクセル集団的な処理だけじゃなくて、頂点星座的な頂点の位置ずらしたり頂点の攻勢いじったりっていうふうな機能も実はしっかりと中になっていてこれは近日中に実装完了する予定になっています。

あとは標準濃度をもっと増やしたりだとかマスター濃度今PRとアンリツだけですけれどポストプロセスとかスプライト用のマスターロードがあってもいいよなっていう話はピンキリ社内していますし、あとは細かなバグの修正だとか未実装の部分がいくつか残されていたりするんで、そういった対応は順次行っている。

はいこれ、これ最後にお送りさせてくださいあの星座グラフの中身はですね、テキストJSONファイルなのでバージョン管理を行うときは、野木とか3バージョンとかに突っ込んでもらえれば問題なくバージョン管理できますが、サブをうまく拾えるあの感じになっていないんで事実2人同時に更新したときに衝突を自動でマージするということは残念ながら今状態にはできません。

なので、2人同時に変更して衝突するような更新がないようちょっと運用でしばらくの間カバーしていただく。しておいていただければなというふうに思います。ええ終わったら、はい。ちょっと時間オーバーしてしまってすいませんでした今日は正座グラフのお話させていただきましたぜひ活用していってください。

以上です。よいしょはいすげえすげえいっぱいですね。皆さん、原始時代から続いてるらしいナイトにの中で私の講演を選んでいただき本当にありがとうございますオーディオ機能の基礎と実装テクニックというお話で私一条高木がお話させていただこうと思います本日はよろしくお願いします。

ありがとうございます。さて私なんですけどもゲームサッカーとして罰金のID5というゲームをSwitchと3DS向けに配信しているのと、あとは株式会社ヘッド入っている小さい箇所をやっております。このゲームについては実は2年前のユナイトでお話をしてまして結構いろんな方に聞いていただきたいんですけども、皆さんの競技を見せてくれとか言ったら通称狂喜講演とか言われていてですね、声だなというふうに思ってます私の会社は簡単に言うと日本の小規模ゲーム会社の支援のために立ち上げた会社で、具体的にはメイドウィズ2tの企画をやったりとかプレイ同人というレベル3メディアステップ3のところで小さいMPSをSwitch展開するみたいなのをお手伝いしたりとか、Googleさんのイベントお手伝いしたりだというそうですね、インディーゲームを作って、それで世界に配信しようみたいな形の支援を全般的にやってる会社です。

もちろん自社でもまた新しいゲームを作っていって現在弊社ですね次期タイトル向けてエンジニアさんを一切募集しておりません。皆さんの手で面白いゲームはぜひ作ってくださいという啓蒙をしている会社でございます。

はい。さあ、時間がないのでパパッていきます講演の構成はまずイントロをお話して、それから賛同の処理とはなんぞやという話をして、それから下にTオーディオの各機能のパラメータ解説とはゲームでから実装するサウンド機能の実装例というお話をします。

はい。かなり話早いです。皆さんついてきていただければと思いますまずはUnityオーディオ機能、わかりましたかっていうところですね。Twitterとか見てると利点を通り未だにわからん雰囲気でやってる完全ニートが音は簡単じゃんって話を聞くんですけどもそういったってなるわけですね。

ちゃんとやらないとやばいです。ただ気持ちはわかります理一航ってUnityの初心者本とかはあのサウンド扱いがすごい薄いんですねなので新しいもんで自分で20ページ書いたりしましたあとはこういったユナイトとかの場でもオーディオの実践系の講演が少なくてですね。

ネイティブオーディオProfitが良くてもっと実際にすぐ使えるオーディオの技術みたいな話がないなというふうに思ったので今回公募したというところです。さあ最初に会場アンケートをします皆さん中で僕みたいに個人とか数人で小規模ゲームを作ってますっていう方は、どれぐらいいますか。

てガーッてそうですねはい、ありがとうございます。逆にモバイル向けの運営型アプリ作ってます。技術者です方はいの方が多い。残念ながらですねモバイル向け運営役員皆さんは悪いこと言わないでまず統合型サウンドミドルウェアの実施利用を必ず検討しましょうなぜか。

本公演でカバーしないこといろいろあります飛ばしますが無数にあるドライバーアレイなAndroidの機種の対応とかっていうのは自前でやるとすると大変です。なので、これから話すことを踏まえつつまずは3度目で検討された方が絶対にいいです。

さあ、最初にお話するのが夫サウンド処理実装で考慮すべきことというテーマです。3度の処理を作ろうと思ったときに考慮すべき要素は三つありますCPU負荷、メモリ使用量それから再生0.4ですね。農地再生0.Cと言ってるのは、音を鳴らすっていうふうにプログラムの中で言ってから実際にスピーカーから音が出るまでのタイムラグみたいなことだと思ってください。

はいそういうふうに考えると、プラットフォームの上でリソースは限られてるんですねCPUメモリそれからストレージはCPU負荷を抑えようと思うと、メモリや再生例停止が犠牲になってしまうと、逆に再生連停止を低く抑えようとするとCPU負荷やメモリ使用量というのが犠牲になってしまうというのがあります。

なので音の特性、ゲーム中でどういうふうに音が鳴るかというのをちゃんと把握してシチュエーションごとに調整するというのが大事です。同様とはゲームの中にありますKって話なんですけどもざっくり分類するとこんな感じかなというふうに思いますまずはSE海外ではSFXとか言ったりしますがメニューの中でピットがポットがボタンのをした音が音は鳴るやつ、それからゲーム中の足音や効果音のSEそれからジングルはちょっと長い危険が迫っているとかの音がなるような感じの眺めの効果をですね、あとは環境BGMそれからボイスこんな6種類かなと大体ですが思いますそうするとですね実装考えて特性を考えようとすると結構いろいろあるんすね。

多いので飛ばしますが、例えばゲームの中のSEはどういう特性があるかというと音羽短いでしょうとただし、同時多発にたくさん流される可能性がありますとかというのがあります。逆にボイスで言うと音の長さは結構あるけども、同時再生数は例えばカットシーンとかで掛け合いがあった程度でも二、三ぐらいかなというふうに当たりがつきますとはい。

ただしですねこれは本当に一例というか僕が作ってたゲームの例そのまま持ってきたみたいな感じで、ゲームの特性に応じて大事にした音っていうのは必ず変わるわけですね例えば格闘ゲームとかだったらヒットが走っとすぐなるっていうのが大事になるかなというふうに思います。

恋愛アドベンチャーゲームだったらボイスの品質が大事なんですよね推しキャラの声がガビガビだったらユーザーブチキレみたいなそういうことです。なのでゲームに登場する音を分類してどのタイプの音をこのタイトルの中では優先して調整しようかなっていうふうに考えるっていうのも大事になりますと。

はい。概念のご紹介をした後にUnityをオーディオの各機能についてガンガンご紹介していきます。ここからもっと速くなります。Unityオーディオの5大要素ですけども、まずはオーディオクリップ、それからオーディオソースオーディオリスナーオーディオミキサー、それからプロジェクトSettingsの中にあるオーディオの項目の五つになります。

この講演確か中級者レベルだったと思うんで大体の皆さんわかってると思うんですけどもUnityで中で音を鳴らすという基本構造なんですけどまずオーディオクリップサウンド素材がありますよねとそれをオーディオソースのコンポーネントの中に渡してオーディオソースが再生処理っていうやらせるとオーディオリスナーゲーム空間中の中身に値するものがその音の3次元処理とかを受け取って実際のスピーカーに流れると、こういう基本の基があるわけです。

まずオーディオクリップの話をします。オーディオクリップUnityのサウンド

Unity 6でのレンダリングのカスタマイズとパフォーマンス

【自動文字起こし・内容未調整】

こんにちは、増村です。ユニセックスのレンダリングカスタマイズパフォーマンスについてお話をします。私はグラフィックスのプロジェクトマネージャーで、ダミアンと一緒に、グラフィックスチームと、および開発グラフィックスチームのドリアンVXガス開発チームの有働とも話をします。

勝負はない。レンダリングパフォーマンスの改善、ユニバーサルレンダリングパイプラインのための連打グラフ0とレーシングAPI1.0、VFXグラフのカスタムHDSLブロックについても説明します。そういう左からCPUパフォーマンスCPU、コンピュートモバイル最適化そして最後のピクセルまでスクリプトBlenderパイプラインで行った様々な最適化を見ていきますと、太字で表示されているのが、ユニセックスでリリースしたものです。

1日Xそうです左側のCPUパフォーマンスの最適化から始めましょう。一番上は共通で、いわゆるPとHRTがありますよアピールしてあって、商品在庫の共通部分にはオプティマイズとボリュームシステムがあり、SRPバーチャがあり、バッチ処理の方法を最適化することができます。

ウィザーズGPUベースじゃないGPUレジデントドアはユニセックスの新しい機能で、シーンを処理して、GPUに送る方法を変えていくことができます。GPUFIADXRスプリットグラフィックスジョブがあり、はい。

グラフィックデバイスにコマンドを送る方法を並列化しました。また、VFXグラフインスタンスリングは同じVFXの複数のインスタンスを使用する際のパフォーマンスを向上させていきますしPHRPではここ数年、ライトループの並列化、ジョブやバーストの活用、シャドーキャッシングの追加を行ってきました。

それ普通それではGPUに話をしましょう。GPUレジデントドローの会で、シーンはGPUにより依存させ、各フレームで東ジオメトリーを自動的に破棄するGPU送るジョンカーリングを追加できました。また、UnityXの新しい機能である。

バッチとGPUスキミングは、GPU上でスキミングを並列化する新しい方法です。そういうさらにもう一歩進みますと、レンダリンググループにも対応できます。2021年にHDRPOの連打グラフを導入し、URPにも導入しました。

フォワードWord+リファー度の連ドラを最適化しましたフォードプラスはGPUレジデントドアの最適化の恩恵を受けています。HRTのハイブリッドChildクラスター連打らも最適化しました。何もいかなくVFXグラフは、コンピュータURPとCRPの間でより機能が等しくなり、みちょぱ1Vコンピュートパーティクルを完全にコンピュータで実行できるようになりました。

タリーズコーヒー美味しいICRPについては既に完全にコンピュータで実行するようにデザインされています。電池5さらにもう少し深く踏み込んで看見ていきますと、ネイティブBlenderパスと連打グラフを直接モバイルデバイスで使うことで、バッテリー消費の最適化の恩恵を受けることができます。

そして最後に、画面上の各それぞれのピクセルをレンダリングする必要がある場合、最終的な解像度を維持するため、最大画質で全てをシェーディングするようにはせず、より小さな解像度で、レンダリングできるようにすることが大切です。

装備リブランディングそこで、私達はユニセックスで中心からレンダリングを追加しました。また、ダイナミックルルーシュについては、AMDフィデリティSXFSRによるアップスケーラーが両方のパイプラインで利用可能でした。

ユニセックスでは独自のアップスケーラースペシャルTemporaryポストProcessing略して、STPを導入していますMGまたCRPについては例えばインテリックスで登場するAMDフィデリティFXFSRツールによるAdvancedダイナミックResolutionや、NVIDIADNSのようなカスタムソリューションを用意しています。

特にローエンドデバイス動作するように、ボリュームフレームワークのパフォーマンスを改善しました。一般的なUXを改善し、またこれをエディターでお見せしたいと思いますと商品個々にDoyourP3URPのサンプルシーンがあります主人優亜ピースプロジェクト設定のグラフィック設定です。

デフォルトのボリュームプロファイルがあります。例えばここで1人社長来週サチュレーションを変更しますと、プロジェクト全体のサチュレーションが変更されます。5日は1センチまたクオリティセッティングに行って連打パイプラインセットのクオリティ設定に入り、一番下にボリュームがありますが、例えばドライブここにはエビネットがあります。

BWこれはURT3Dサンプルの高画質のハイクオリティの設定にのみあります堀内最後にCにボリュームをグローバルに配置することもある位はローカルに配置することもできます。ちょっとやっぱり例えば、この部屋の中にボリュームがあります。

はい。スポーツとエクスポージャーをオーバーライドしているのがわかります。また、屋外にもアウトドアにもエクスポージャーをオーバーライドするものがあります。終了このあたりがどこから来ているのかを正確に知りたい場合は、キャンプオープン解析プラグレンダリングでばっかですし、レンダリングでばっかを開きます。

19ここにボリュームタブがあります。チャックそしてフリーキャンセルカメラとポストProcessingを選択できます。研修そして女性から調整を選択します。そしてプレイモードに入ります。コントローラー1ここでは右側にデフォルト側に私が変更したサチュレーションがあります。

理想的ポジションである内之浦そして、デフォルトのところに露出があります。MMリーダークオリティレベルの設定ではオーバーライドはありません。フェニックスviaそして最オーバーライドは屋外が1屋内がゼロですよ。

そして屋内のボリュームでは露出がゼロなので、外に移動しますと異なるウエートを持つ二つのボリュームがあるために、保管されていることがわかります。次にGPUレジデントドアについてお話をします。GPUレジデントドアはどっちのグラフィックスエンティティずに導入されたバッチ連打らグループをベースにしています。

アメリカ綿バッチ連打ずグループについてもっと知りたい場合は、アーノルドのブログ記事を読むことをおすすめします。モバイルにインストールできるサンプルも紹介されています。瀬尾はマッチポイントライブツアーばっちりなグループは何でしょうか?このジョブを活用してシーンを処理し、それを大きなバッファーに分割して、GPUに送信するものです。

よろしくお願いしますGPUがドローンの中にあるときはいつでもとても簡単です。レポートICRPでもURPでも活用できます。プロジェクト設定に入るだけです。エディターを開きます。プロジェクト設定でジェンダーパイプラインアセットを選びます。

そして、イベント当日このプロジェクト設定から連絡パイプランセットを選んで、レジデントドアを有効にします。スタッフと東京を見てみましょう。バッチ数はレンダリングなしがおよそ1000万Kレンダリングあるいはおよそ4000です。

次のGPUを送る所カーリング先ほどお話したように、子音がGPU上にある、今現在見えていない10m以上自動的に削除または8することができます。レジデントドアをアクティブにして、トライアングルの数を見て、GPU送る所カーリングをアクティブにします。

どのように機能するかを見るには、レンダリングでばっかでデバッグモードを使うのが一番です。そして意見し色つきの四角形が見えていますが、その色つきの四角形が表示されてるところの常務鳥居が破棄されます歳の時緑の葉が少なくなっているのは、新しいものが見えているからです。

このように機能します。一見リーチ依存ジオメトリーにせえ拘束されない。どうも縛られないとパフォーマンスが上がらないこともありますそれは追加のvisibilityパスが発生するからです。そのためこのパスを実行することで得られるものよりもコストがかかってしまう場合がありますGPU送るジョンカーリングでは、パフォーマンスが上がらない可能性があります。

バッチGPUスキミングでは、プレイヤー設定でスティングモードを選ぶことができます。つまりはGP帯以前はGCPUとGPのどちらかを選べたわけですが、現在では、GPUスキミングのバッチ処理もできるので、例えば複数のキャラクターを画面に表示したときのパフォーマンスが向上していきます。

これはインテリックスに通らず搭載されているWebGPUのメリットの一つであり、VFXグラフと同様に、バッチGPUスピニングを活用できるようになります。Bあり素晴らしいグラフィックス頂部の文竜も世界しました。

同じようにプレイヤー設定でグラフィックジョブモードを選択します。異なるモードがあります。ネイティブレガシースプリットです。スプリットは最新のものです。右側にあるように、GXは分割モードが最高のパフォーマンスを提供します。

そして最後に、6次のクラスプラットフォームタイムスケールを紹介しますがもう一度これをエディターでお見せしましょうパブリッシュゆです。演劇エディターをご覧ください。いやパフォーマンスの向上をお見せするには中ためにここを4Kにしておきます。

20日後ろにもないぐらい、そしていたこれらの機能を有効にするには、Webやプロジェクト設定をそして画質の設定から行います。7日クオリティのレンダリングスケールでスケーリングを選択します。スペシャル店舗あるポストProcessingを選びます。

専用レンダリングでバックを見ますと興味深いことがわかります。法廷でレンダリングする場合、GPUのフレームタイムがおよそ直接、およそ40ミリ秒であることがわかります。レンダリングスケールを小さくしてみましょう。

そうだ、そして実際にモニターしてみましょう。フルの解像度でレンダリングしていることがわかります初めに下のプランタースケールそしてレンダリングスケールを小さくすると、公式のやつシーン全体をチェック勝ち小さな解像度でレンダリングすることになります。

牛田ですから解像度を4分の1まで上げると読む後からフルになったとしても実際にはビジュアルクオリティには大きな変化はないことがわかります。はい。しかしGPUで10ミリ秒から5ミリ秒にした場合、その周囲を見てもビジュアルクオリティにはほとんど変化はありません。

チェックそしてときにはこれはうまくいっていないんじゃないかと思うこともありますがそしてさらに解像度を変更して、9分の1にすることもあります土屋初産新米それでもこれでおよそ3ミリ秒ぐらいですが、あまり変化は見られません。

小良知さらに小さくして1ミリ秒にしてみましょうと案内した。陸地まだ何も起こってないようにも見えますが、このように葉の部分にリブのリーフの部分に襟足リングが発生してるのがわかります。タキシードと青山7STPの値を0.11連打スケールですが、はいそれでもかなり綺麗に見えます。

そんな薬はダミアンにマイクを渡して、グラフィックスのカスタマイズについて話してもらいます。UnityのグラフィックスプロダクトマネージャーのダミアンですこのセクションではUnityCXの新しいレンダリングLaughシステムを使ったグラフィックスのカスタマイズについてお話をします。

UnityのスクリプトやBlenderパイプラインの高度にカスタマイズが可能で、ゲームのグラフィックレンダリングを深くコントロールすることができます。現地してハイエンドナイトゲームズのサンズオブザフォレストは、HDDベンダーパイプラインを使って広大で高密度な美しい環境をレンダリングしています。

また、明10日者のデイヴザダイバーは、ユニバーサルレンダリングパイプラインを使って3Dグラフィックスとピクセルアートのユニークな融合をレンダリングしています。もう一つの素晴らしい例が、ソウルキャットゲームズによるシステムfortythousandローグトレーダーです。

カスタムスクーターぶるなスクリプト感可能な連絡パイプラインを実装し、そのフランチャイズの外観と雰囲気を実現しています。察知する最新これらのエフェクトを独自にカスタマイズしたり、ゲームのメカニックに関連した独自の特殊エフェクトを作成したい場合もあります。

こういう本ユニークスペースバーisSADオール辻尾のビューファインダーがその良い例で、このJMのパズルの仕組みに大切な役割を果たすユニークな写真体世界のエフェクトを実装しています現地独自のカスタムエフェクトを作るには、カスタム連打パスを記述して、連打パイプラインなに行っ注入できるようにする必要があります。

ここではちょっと名パスの後に注入するカラーバッファーの内容を反転させるカラー反転パスの簡単な例を紹介します。スクリプトBlenderパスやカスタムパスカスタムエンダー機能を記述することで、URPとHRTの両方でこれを行うことができます。

カスタムパスのインジェクションワークフローは連打グラフシステムによってUnity世界更に向上され、ベンダーパイプラインのパフォーマンスも向上していますまず連打グラフとは何でしょうか?連打グラフはshaderグラフやVFXグラフのようなノードベースやグラフフェースのエディターではありません。

独自の連打を作成するためのビジュアルエディターでもありません。複雑化する連打パイプラインをより簡単にできるようにするレンダリングフレームワークなのです。レーダーグラフは、パイプラインのグラフベースの表現を提供し、連絡パスそれぞれのパスの入出力アタッチメントパイプラインのパス間の依存関係をチーズします。

これにより、エンジンはパイプラインを自動的に最適化することができます。各フレームの不要な連打パスのカーリングや、次に説明する互換性のあるパスのマージンなど様々なメカニズムがあります少し独自のエフェクトやバスでパイプラインをより簡単に拡張することもできます。

パイプラインを拡張するには、連打グラフ内にカスタムカスタムラスタライズやコンピュートパスを注入できるようにする必要があります。次にバスの出力とし、入力の連打アタッチメントを設定し、シェアリソースを設定できるようにするなど、必要な連打パスデータを設定できるようにする必要があります宮本社長これを行うには、コンテクストコンテナウィズ連打グラフを使います。

このコンテクストコンテナWEEKENDERグラフを使いますと連打パイプラインの全てのリソースを簡単に参照することができます。例えばからバッファーでプチバッパー時バッファー、その他のフレームアタッチメントなどの連打アタッチメントや必要な全てのライティングデータ、カメラデータなどにアクセスすることができます。

実際にパスを実装するには、グラフィックスコマンドを注入できるようにする必要があります。これはラスターコマンドバッファーAPIを使って記録できるので、CADリソースをセットアップし、ドローコールを記録することができます。

コンピュートパスの場合は、同等のコンピュートコマンドバッファーAPIを使うこともできます。そのため、連打グラフと互換性のある方法でコンピュートshaderをセットアップし、コンピュート関連のディスパッチを記録することができます。

また、連打グラフはまたフレームFetchの改善されたサポートを導入しております。テクスチャーサンプルの代わりにフレーバーFetchを使ってshaderに入力アタッチメント労働することで、帯域幅の使用量を減らし、モバイルGPUのパフォーマンスを向上させることができます。

この最適化はラスターパスのマージと同時に導入されました。連打グラフはこれらの依存関係とフレーバーフェチの使い仕様に応じて、互換性のあるパスを回し、同等のネイティブ連打パスを作成します。その他プラットフォームによっては、Androidのバルカン連打パス、アップルシリコンのメタル連打パス、さらにWindowsonair無ビルドターゲットの導入により、リアクターX12連打パスもサポートされます。

ネイティブ連打パスのマージンをもう少し理解するために、dカードレンダリングの実用的な例を見てみましょうFADレンダリングではまず、磁場パーパスがあり、MaterialプロパティをGバッファーをアタッチメントに書き込みこれをライティングパスに労働して、ライティング計算を実行します。

レンダリンググラフは磁場ファストライティングパスの両方を一つのマージされたネイティブ連打パスとしてマージすることができるバルカンでは二つのサブパスを作成します。そして、チップタイルメモリーから直接フレームバッファフェチを使って、ライティングパスに自爆アタッチメントをロードすることができます。

そのためフレームバッファのメモリ転送を減らし、エネルギー使用量を減らし、バッテリ寿命を改善し、モバイルGPUのパフォーマンスを向上させることができます。連打グラフ新しい安静パスも導入し、既存のレンダリングコードより簡単に連打グラフにスポーティングして再利用できるようにしました。

これらのパスはネイティブの連打パス時の恩恵を受けられません。そのためほとんどの場合は、ラスターパスにスポーティングすることをおすすめします。最後に連打グラフは連打グラフビューアーと呼ばれる新しいグラフィックでバックビューも導入しています。

レーダーパイプラインより簡単に分析して理解することができます。リソースのライフタイムリードとライトのオペレーション、それぞれのパートナーアタッチメントフレームバッファ設置の使用状況を追跡できます。それぞれのパーツの追加情報も取得できますので、どのパスが連打グラフによって正常に米されたかをトラッキングできます。

この場合磁場ファーストリファーとライティングパスの両方が正常にマージされたことがわかります。その下に青い線が引かれています。そして古い自爆アタッチメントが、フレームバッファフェチを使ってライティングパスにロードされているのがわかります。

また、それぞれネイティブ連打パスの最初と最後にそれぞれのパーツのフレームバッファのアタッチメントと、そのロードとストアのオペレーションを見ることができます。最後にそれぞれのパスの下にあるGotoDefinitionボタンをクリックしますと、IDでパスの実装を開き、それぞれのパスがどのように実装されているかよく理解し、独自のレンダリングコードおよびより簡単にデバッグすることもできますBパーカー本これで終わりです。

次はドリアによる連打グラフの使い方についてのより詳細なデモです。皆さんこんにちは、グラフィックスエンジニアのエイドリアンMovinです今日はURPで発伝だグラフを使う方法を紹介します。決算ポストProcessingインパクトを実装し最適化するためにこのスライドにあるエディティザーエフェクト投資を使います。

まずURPの接続を見ますが、連打グラフは有効にしていません。次にこのエフェクト連打グラフに移植します。お願いします。それが完了したら、エディターの連打グラフビューアーを使って、その実相を分析します。そして最後に最適化する方法を模索していきます。

始めましょう。6ヶ月エディターを開きます。これはURP3Dサンプルのターミナルシーンです。そして私のエフェクトが既に動作してるのがわかります。13日、このインパクトはフルスクリーンのスクリプトBlender機能です。

ポジション画面中央のユニティスフィアの中心にあるローカルVol.21に接続されています。次回からは球体から戻り、離れますとエフェクター無効になりますが、戻るとエフェクトはまた復活します。そういうRPがどのように繋がっているかを見てみましょう。

画面右下のレーダー節の下にエフェクトがあるのがわかります。これはURPからバッファーを必要とするURPポスト処理プロセスの後に収入され、シュレーダーはシェアグラフで作成されています。どう見てみましょう。

あざっす。先ほど申し上げましたようにこのエフェクトはスクーターブレンダー機能の実装で作られています。今実行の関数ファンクションだけに注目すればいいわけです。座ってます。まず最初に、ローカルビューのブランチの間にあるかどうかをチェックします。

そうでなければ、エフェクトを取りに伝える8スプリングレンダリング自体はピンポングリッドですパパ最初のパスはコピーパスでパピーターゲットのURPカメラを一時的なカラーテクスチャーにコピーします。牛田キャンパス2番目のパスはエフェクトのパスでエフェクトを適用します。

すごい山東です先ほど作成した一時的なカラー役者をサンプリングします。エフェクトターゲットにURPカメラを適用しますなこのエフェクトを連打グラフにビルドしましょう。それはプロダクティビティちゃうんで+ちょっとエディターに戻って最初にすべきことは、URPで連打グラフを有効にすることでスクーターを注文イヤーピースはエンジンプロジェクト設定に入り、間髪入れずいうRP設定に入ります。

そして互換モードを無効にしますなるほど、これで連打グラフが有効になりますFXはこれで言う連打グラフがURPで動作するようになりました。私のインパクトが消えているのがわかります。これはまだエフェクトを連打グラフに記録していないからです。

院長そこで最初にすべきことは、行動に戻り連打グラフに遺作とのキーを入力することです。そのためにレコード連打グラフという関数のコメントを解除する必要があります。ご覧のように、ピンポングリッドの二つのパスのスケルトンが既にありますコピーパスとFとパスワードこの二つのパスには連打グラフのaddラスター連打パスAPIを使っています。

これをビルダーを返してもらえます。このビルダーを使って二つの連打ラスター連打パスを構築しますPKのコピーパスのサンプルモデルを見てみましょう。コピーパスはターゲットのURPカラーを読み込み、一時的なカラーテクスチャーに書き込みます。

最初にすべきことは、ターゲットのURPカメラにアクセスすることです。このため、この関数のパラメータとして渡されるコンテキストコンテナを使います。ここではフレームデータと呼ばれているそして多分9フレームデータからリソースデータにアクセスします。

そしてリソースエイターからURPの実際のカラーテクスチャーにアクセスすることができます。後バイトランドが連打グラフのuseテクスチャーAPIを使って、このテクスチャーパスの入力として使うことを連打グラフに通知します。

やっぱり次に出力を設定します。連打グラフのセット連打アタッチメントAPIを使ってスピンアウトプットを設定し、カラバオC的なカラーテクスチャーとして設定します。それに加えてきました。しかしこれはまだ存在しません。

そこでまずこれを作る必要があります。作成します。そのために連打グラフのクリエイトテクスチャーAPIを使いますちょっとエリアなんかこれは、テクスチャーでスクリプターを入力として受け取ります。はいそこで連打グラフのGETテクスチャーでスクリプターAPIを使ってURPからバッファーでスクリプターをコピーします。

この場合は添付からコピーという名前に変更しています。これで連打グラフビューワーがあり、一時的なカラーテクスチャーであることがわかりますというスピードなので次に、このパスの連打関数自己監査を設定します。

このパスのコメントを外します。そして先ほど別の連打グランパスで作ったX9と関数を採用します。ターゲットのURPから一時的なカラーテクスチャーにコピーしているだけだからです。パスといたします。プラスティックをし、しかし一つ注目すべき点として、このエクスキューズ関数にパラメータを渡すためにストラクチャーを使っているという事実があります。

秋月様これは、連打グラフの実行ステップが広くステップな後にタイムラインの後半で行われるためです。実行関数のパラメータをどっかに保存しておく必要があります。サンプルレクチャーをこのパスのターゲットのURPカラーとして保存しています。

ウェディングたプレーがたくさん出るチャンスだよ。ライティングはちょっとそれでは2番目のパスに移りましょう。やっぱ基本的には同じことなので、さらに早く進めていきます。先ほど作成した一時的なカラー着車を読み込んでターゲットにURPカメラに書き戻し、エフェクトを提供しています別にそれでいい。

別売中で僕はこれに見えるマテリアルに渡されます。これで準備は全て止めました。エディターに戻ってどのように動くかを見てみましょう。ご覧の通り、エフェクトは再び戻ってきました。今回は連打グラフでレンダリングしています。

よしそうです。そういうキャッシュだ。ご覧のように、ビューから離れますとエフェクトが消え、戻ってきますとまたここにインパクトが出るのがわかります。大きな譲らなかったよRPでの実装を理解するために、レンダリンググラフビューアーを使うことができます。

上位ストレッチメインカメラを選びます。そして、この画面をレンダリングするためにURPで起こっている全てのパスを見ることができます。ファビアン最後に、URPのポストプロセスのパスがあります。プロジェクトそしてその直後にはちょっと予想通りピンポンブリッドのために私がピザをかけた二つのパスがあります。

コピーパスとエフェクトパスです。キャッチコピーパスをクリックしますとリソースとの接続が見えます。確かにコピーパスはターゲットのURPカメラを読み込み、一時的なカラーテクスチャーに書き込みます。私はインパクトパスは一時的なカラーテクスチャーを読み込んでエフェクトを適用してターゲットのURPカメラに書き戻しますピックアップ@プリングオフこれは素晴らしいです。

お試ししかしまだ一つ気になることがあります受験し、見ての通り、スピーシーズこれらのパスは一緒にマッチされていません。本来、どうぞつまり例えばああいうものとは違います。夏に旬たいこれは時系列処理のソフトウェアでは課題になります。

なぜなら、異なるパスの間にフレームレファレンスをロードして保存しなければならない。必ず対キャバの点でコストがかかってしまうからですなぜまだマッチングできていないのかをよく理解しましょう。この復元連打パスを使用しているからです。

コピーパスの直前に行われているURPポスト処理パスをクリックしますと、右側に表示されます。右側にパスのブレーク理由が表示されます。つまりコピーパスがURP後処理パスの出力をサンプリングしているため、このURP処理パスをコピー時間とマージしていないのです。

コピーパスエフェクトパスも同様です。FFとパスが私のコピーパスの出力をサンプリングしているからです。アップバックアップだしさて、今度はそこからトップに戻ってきました。これらを最適化する方法を探ってみましょう。

ちょっと長い間という図テクスチャーコールが原因であることがよくわかりました。つまり、ユーザー役者コールは、基本的には連打グラフに対し、これらのパスを分割する必要があると伝えているんです。なぜなら、コンテック社をサンプリングするには、このパスをレンダリングする前にテクスチャーを保存する必要があるからです。

しかし、誰かPFASここで良いニュースはそばに、ここでは何もサンプリングする必要がないということです。なぜならPFASでは、全く同じスクリーンの空間座標の前のフレーム参照元のピクセル値が必要だからです。

それだけが必要なんです。つまり何もサンプリングする必要がないバッチ命令にはフレームリファラ裏を使えばいいんです。そのためには、Setinputアタッチメントという別のAPIを使います。とりあえず動作プロテクション先ほど申し上げましたように何もサンプリングしていないので、ここでサンプルてく者を削除することができます。

私がその実行関数の中にスイッチがあります。サンプルテクスチャーがなければ、ERPサンプルによって提供されるフレームはフェチマテリアルを使うことになります。さて、2回目のパスも基本的に同じです。前のフレームバッファーのピクセル値が必要なだけなので、全体をサンプリングする必要はありません。

これは、ディーさあ効果のために、全く同じ画面空間座標にある一時的なカラーテクスチャーです。そこで、有責者APIを削除して、代わりにSetinputアタッチメントを使うことにします。つくば市でちょ高校でサンプルてく者を削除することもできます。

これ全てが米されたはずです。自衛隊に戻ってうまくいってるか確認してみましょう。そう、このように黒い画面が見えるでしょう何かをするのを忘れていたんですけど、いざ効果は強いグラフに基づいていますJEIDAグラフでは、府連バッファー設置命令を使う代わりにサンプリングを設定しています。

これは問題です。ですから、フレームフェチメールを実装したカスタムモードを接続するだけでいいんです。溶けそうすれば全てがうまくいくはずですつくば市の現状、ゲーム中に戻ってみましょう。ナイスはいまた戻りました。

このように、Cグラフで、コンソールから出るエラーを取り除くことができました。これは正しいカスタムモードを設定するためのものです。そして今、メインカメラをセットしてリフレッシュし、どんなふうに見えるかを確認できます。

この方がいいですね。パネラー4年カメラを設定してリフレッシュすれば、キャスターとてもいい感じです。バニラのポスト処理パスとカスタムのポスト処理パスがマージされているのがわかります。つまり全てがリアルタイムでアップされています。

ロードスターもありません。Fで書いてあるフレームファンの設置命令はロードスターもありません。下の一時的な空手者をクリックしますと、保存されていないことがわかりますけど、Sとアクションチェックリストスペースリソースリストを確認しますとこのテクスチャーは眠りレスなので、時間内に残ることがわかりますそっちもシステムに保存しないこれが最適なんです。

素晴らしい8頭立てもう一つ、ローエンドのモバイルをターゲットにするということを考えてみましょう。プロジェクトXプロジェクト設定に戻ってすぐちょっとPCやPCはいからモバイルローンに切り替えています。綿あめで勃発してERPからのポストProcessingを無効にします。

それから今日三つ目にカスタムのポストProcessingを維持したいからです。メインカメラインスペクターに進みます。訳そこでポストProcessingを無効にします。S社からPRでエフェクターここにありますレンダリンググラフピュアを確認してみましょう。

このように無駄がなくなりました。ご覧の通り、全てのバニラURPアプリの会員ドローイングパスが加算ポスト処理と単一のネイティブ連打パスで時間通りに行われています。とても最適です。労働もなく、間に保存することもない。

全てが単一のネイティブ連打パスの中で行われます。FANTASTICS最後にまだファイナルbitがありますとファイナルブリッドがあります。ラップトップではバックアップバックバッファーを入力アタッチメントして使うことができないからなんです。

そのため最後の空白のバッファーを埋めるために、このファイナルブリッドを使う必要があります。しかしモバイルでは書き込み作業と拡張機能を実際に読むことができます。ですからこの場合全てがブランクバッファーの下にある図で、その方がもっといいわけですねうんというわけでここまでですね、次に進む前にスライドに戻ってこの2行を拡大して、連打グラフを使うことでどのように最適化するかをお見せしたいと思います。

プリントって集まり、三つの連打パスの三つのフレーバーファンロード三つのフレーバーファーストウイングから一つのネットフレームバッファー濃度と一つのストアのフレームを持つ一つの連打パスになりました。この2行修正し、連打グラフを使うだけです。

しかし動画に完敗し考えてみてください。この非圧縮のフルHD解像度のフレームバッファーを考えてみましょう。そのサイズはおよそ8MBです。つまりこれらの最適化を行い連絡グラフを使うことで、モバイルでは1フレームあたり32MBの帯域幅を削減できることになりますグラフでこのエフェクト移植するのにおよそ10分かかりました。

そういった一つ覚えておいていただきたいこととしては、カレンダーグラフはカスタマイズにも最適化しているということです。もっとさらに詳しく知りたい方はこのフォーラムの投稿をご覧ください。そこではドキュメントはいくつかの良いサンプルそしてまた連打グラフを正しく使うためのヒントが書いてあります。

それについてより詳しく説明をしていく予定です。その次はUnityのレートレーシングAPIの最新の改善点についてお話をしますし、UnityのレイトレーシングAPIは0とレーシングの安定性とパフォーマンスの両方を改善した後、現在製品版として、使えることになっています。

使える状態になっています。レイトレーシングAPIは、グローバルイルミネーション影反射などのレイトレーシング効果の大規模なコレクションを実装するために、高解像度連絡パイプラインによって使われています。ハブのHであるP3プロジェクトを使って0と0新硬貨を自分で試すことができます。

はい。このHRPサンプルプロジェクトでは、新しい例とレーシングの日、品質を導入しています。すぐに効果有効にして設定することができ、効果を確認することができますはい。前に進む前にUnity0とレーシングAPIがハイレベルでどのように動作するかを簡単に説明します。

まず最初に椎野GM釣りを定義するアクセラレーションストラクチャーを入力する必要があります。その時点でlateRacingのシュレーダーをディスパッチしてアクセラレーションストラクチャーをトラバースさせ、交点でヒートシェアを呼び出し、ライティング計算を実行します。

代わりにshaderを呼び出して、背景や空にいいえをつけたりすることもできます。ユニセックスではまた、Microsoftとのコラボレーションにより、Unityレートレーシングの機能とパフォーマンスの両方が改善されました。

の最初の改善はDXR1.1フィーチャーレベルのサポートです。ピンクこれにはインラインlateレーシングとshaderのサポートを含みます新小林中日のインラインでレーシングは、レートRacingを実行する代替の方法を提供します。

市長にぜひ何か木内博統一アクセラレーションストラクチャーをラスタライズとコンピュートshaderにバインドすることができますその時点で、シュレーダーで0クエリを発行して、アクセラレーションストラクチャーをトラバースし、独自のシェーディング機能を実装することができます。

これを説明するためにRPを使用してカスタマイズ例とレーシングシャドー効果を実装してるところをお見せしましょう。それではERPにカスタム例トレースシャドウ実装したでも見ていきますと従来のシャドウがどのように機能するか見てみましょう。

ハードシャドウとソフトシャドウが選びました。シャドーのブレンド深度法戦バイアスをコントロールできます。ラスタライズベースのシャドウでは、コントロールできるのはこれだけです。代わりにユニバーサルれんだらパイプラインアセットからカスタム例とレーシングし、とりあえずシャドウ機能を有効にすることができますそしてさらに通常非常に物理的に正確で、近くで見ても美しいシャドーが得られることがわかります。

またshaderで0の方向制御できますので、影のシャドウの広がりもコントロールできます。そのため非常に滑らかな風が非常にシャープで鮮明な壁も作ることができます。とてもきめの細かいコントロールができますコメントこれはどのように実装されているか見るには、分析タブのレンダリンググラフビューアーを開いてください。

そういう件数でまずコンピュートシャドウパスがあり、0クエリを使ってアクセラレーション今ストラクチャーをトラバースしていることがわかります。そしてシャドウマップセクションへの結果をこのように光線に変換します。

次にシャドーマップをからバッファーとブレンドするために、後続のブリットパスにロードします。そしてコンピュータコンピュートshaderを開いて、0クエリがどのように実装されているかを見ることができます。

まず一番上に莉子あやインラインレートレーシングプラグまでエレクティブがあることがわかりますし、これはシェアをコンパイルし、互換性のあるプラットフォームでのみ使用するようにするものです。次に、深度バッファーから心臓値をロードし、それを再答弁してピクセルのワールド空間位置を取得し、0クエリの原点として使用します。

次に0の処置ローカル方向を計算する必要があります。そこでサンプルごとにランダムなオフセットを計算し、シャドースプレッドオフセットを導入します。次にライトの方向を使用して光線を変換し、アクセラレーションストラクチャーをトラバースしますアクション交点でシャドウ変数に書き込み、前のフレームのシャドウ値も取得し、それらを補完して複数のフレームにわたるサンプルを蓄積し、簡単なノイズ除去を行います。

Windows詳しいそしてまた、この144ほどのコードでカスタム例トレースシャドウをコンピュート星団に実装したことがわかります。intレーシングを自分で試してみて、とても面白いサイトが実装できるかをぜひ見てみてください。

強くおすすめいたします。三留次に0トレースインスタンスリングがあります。これはトレース時のリソース倍リングオーバーヘッドを削減するCPUパフォーマンスを最適化するもので、特に大量の繰り返し飯を詳細にトレースする場合に有効です。

この最適化をラスタライズ所における従来のドローコール員さん寝具と、概念的には似ています。この最適化を理解するために、従来のレートレーシングとダイナミックシュレーダーテーブルの設定方法を見ることができます。

つまり、基本的にはアクセラレーション構造に追加するインスタンスごとに、その星座レコードを追加するのが通常のやり方です。そしてレートレーシングする人ときはにそれらの間でバインドする必要があります。インスタンス化のサポートがあれば、一切のアドインスタンスを呼び出し、それを使って追加する全てのインスタンスに対して、1の星座レコードを一つ追加するだけです。

その後インスタンスデータを設定し、インスタンスIDのパラメータをし使ってレート練習のシェアでアクセスすることができます。そのためインターンす事の変換色、その他のプロパティにアクセスできます。この最適化をテストするために簡単なデモプロジェクトを実装しました。

0トレースされたインスタンスのパフォーマンスへの影響を測定するために、アクセラレーションストラクチャーに96個の球体インスタンスを追加しました。HRTパストレーサーを使って、0トレースする簡単なデモを実装しました。

インスタンス化なしのパフォーマンスはかなり低くなってしまいます。一つのFPS前後であることがわかります。インスタンスが有効にすることでパフォーマンスは100FPS程度まで大幅に向上しますこれがどのように実装されているかを見るために、アクセラレーションストラクチャーを指導で管理するスクリプトを見ていきましょう。

まずアクセラレーションストラクチャーを作成し、それをフレームに表示する必要があります。次に、カーリングパラメータを設定し、アクセラレーション作者にCのJMTを入力します。インスタンス化が有効な場合、変換上列とするアドインスタンスコールを使って、全てのチューターインスタンスをアクセラレーションストラクチャーに追加できます。

ADDインスタンスが無効になってる場合は全てのインスタンスを一つずつマニュアルで追加します。このようにしてインスタンス化の有無によるパフォーマンスの違いを測定することができます。その差はかなり大きいことがわかります。

次に新しいアクセラレーションストラクチャーのビルドフラグも追加しました。これはメッシュレーダーの設定から設定できるようになりました。相互に排他的な高速トレースフラグと高速ピルドフラグを選択できます。これによりレートレーシングのシェア性能と、アクセラレーションストラクチャーのビルド時間のトレードforコントロールできます。

パフォーマンスを向上させるには、デフォルトで拘束するSプラグを使いますただし、スキンメッシュ連打のようなフレームごとにアクセラレーションストラクチャーを再構築する必要がある。ダイナミックメッシュの場合は、特に高速ビルドフラグを設定すると良いでしょう。

そのためにはそういったタイプのダイナミックメッシュでは、ほとんどの場合高速ビルドフラグを使う必要性があります。しかし両方試して、パフォーマンスを測定することもできます。これらのフラグを最小化メモリプラグと組み合わせることで、メモリを削減することができます。

レイトレーシングのメモリー使用量を測定するために、Unityエディターのフレームでバグが多く買うことができます。これにより、それぞれの例とレーシングshaderのディスパッチに対し、メモリー上のアクセラレーションストラクチャーのサイズが表示されるようになりました。

レイトレーシングのメモリ使用量を実際に削減するために主要ないくつかの最適化を実装しています。最初のものはNVIDIAによる文書化されたガイドラインに基づいきさティックメッシュのメモリ使用量を削減するグラスコンパクションの導入です。

いくつかのガラスに新しいカスタムGPUメモリであるデータを実装し、小さなメッシュとディテール塗り使用量を削減しました。これは以前紹介した最小化メモリフラグがあるとしましょう。これらの最適化をテストするため、およそ670万トライアングルの大きなシーンをインポートしました。

最適化する前のアクセラレーションストラクチャーでは、メモリー使用量はおよそ460MBであることがわかります。グラスコンパクションと新しいグラスあるデータを適用し、メモリ使用量をおよそ150MBに減らすことができました。

そして最後に最小化メモリフラグを適用することで、明日容量を100MB程度まで減らすことができました。そこで、メッシュベンダーの設定を確認することをおすすめしますスタティックメッシュの0プレッシングのモードスタックに設定し、菜食メモリグラフも有効にしてください。

レイトレーシングについては以上で、次はVFXグラフです。ありがとうございました。皆さんこんにちは私はルードビックで、VXクラブチームのVFXエンジニアです。ファッション雑誌の極度1ユニセックスのVXグラフに追加された新しい強力なカスタマイズ機能についてお話をします。

SDXパンチョ今晩じいちゃんちうちこれらは、まず最初にインテリ濃度ベースのVFXオーサリングツールであり、VFXグラフというものです。濃度ベースのワークフローの拡張性、スタックベースのパーティクルオーサリングのより伝統的なアプローチを組み合わせています。

シミュレーションは全てGPU上で実行され、非常に小規模なシステムから数百万以上のパーティクルを含むシステムまで各拡張することができます。デフォルトでは、蒸散行列変換テクスチャーサンプルのような非常に単純な数学演算から、ジャンルやオブジェクトとの衝突のような自己完結的な動作まで豊富な演算ライブラリを成長しています。

もちろんこのライブラリは無限ではありません。そこでインテリックスではカスタムHLSLの導入しました。このカスタムLHRSLノードを使えば、このHLSLコードの酢煮ペットブログにブロックに直接書き込むことができますそしてこれらのHRSNSミックスにペットはグラフ全体の計算と一緒に実行されます。

普段操作の連鎖があり、濃度を返してオーサリングするのがあまり現実的ではなく、公道に設置してるな場合にとても便利です。ご心配しかし最も大切なことは、カスタムHLSL濃度を使うことでVFXグラフを拡張し、バニラやVFXグラフでは不可能だった機能を実現できるということです。

カスタムHLSL濃度は独自の酢煮ペットを書く以外は他の濃度と同じように表示され、エディターやお気に入りのIDで直接コードを編集することができます。また書いた関数パラメータはブロックや演算子の中に直接表示されますので、他のパラメータと同じように差し込むことができますサブそれでは今度はエディターの例を見てみましょう。

この例では、床に敷き詰められているパーティクルは全てVFXグラフによって編成されたメッシュパーティクルです。このスコアもVFXグラフによってディレクションされています。黄色い球体はCPUで示された。剛体がくっついただけの球体です。

再生プレイボタンをしてみましょう。リプライプレーをしますとこのようにボールが転がっているときに、全てのパーティクルがボールにくっついて、ボールの半径が大きくなり、そこの羽ボールにくっついてるパーティクルのサイズごとにスコアがインクリメントされます。

VWカスタマイズLSボックスを活用する方法は、グラフィックバッファーの書き込みと読み込みです。これが専有バッファーとなっています。ライツvSphereを鉄板Cと呼ばれるカスタムブロックで、リードライトジャパンCと呼ばれるファイルを少しインクルードしていますこのファイルには三つのメソッドがあり、オープン前ここで選ぶことができます中心のファイルを開いてみましょう。

ブレスオブファイアと絞りを伝える。その現実を繰り返してはなりますが、このファイルにはブロックに現れる三つのメソッドが含まれていますピースここでは、置きファンシーの更新に焦点を当てています。味見このメソッドでは、球体のパーティクルの総量を含むバッファーの最初のエントリーをアトミックにインクリメントします。

またメッシュのインデックスに基づいて、バッファーの後続のエントリーをさらにアトミックにインクリメントします。つまり、外そうカウントと球体状のパーティクルの種類ごとのカウントがあるわけです。自己抜去それではエディターに戻りましょう。

なお実際は50件でこのバッファーを使ってできることは、別のカスタムHL3SL演算子でのこのバッファーを読み込み、テクスチャインデックスに値を入れ込むことです。そしてこのバッファーを入力バッファーとメッシュインデックスに基づいたインデックスを受け取る新しいカスタムHL演算子で、使いますスタンプラリーそしてこのカスタム演算子は単純にインデックスの値を読み込みますでもいいそしてその値をちょZXインデックスブロックに出力し、スコアのインクリメントに使うXインデックスを設定します。

リプレース遅いこのバッファー同じシステムでGPU上の球体の表現の座標半径を増やすためにも使われます。諸費用およびここではその球体の占有率、つまりバッファーの最初のエントリーにある弓野颯占有率を読み込み、それを使ってシステム内の球の半径を大きくしますんですが、次のさらにGPU日時フィードバックを使ってバッファーな対応GPUからCPUに返します。

友人9S2VパッキンヴィッツでこのGPU非同時フィードバックを使うことで、バッファーな体を乱しそれを使って画面上でシミュレーションを動かす剛体のCPU標準を更新することができます。椎谷という選手を増やすため白州ブラックさてこれからがメインです。

カスタムHLSLブロックの使い方はとても基本的なものですが、単にバッファーを読み書きするだけでした。しかしそのおかげでシステム感やGPUとCPUの間で深い相互の通信ができるようになっています。では次により高度な例を見ていきましょう。

なお、今見ておりますのは、およそ8,000個のパーティクルのシミュレーションです。1それぞれの水中クリーチャーは、VFXグラフによって編成されたパーティクルとなっていますむしろタワーそして足のアニメーションを更新したり、クリーチャーをはいとマップに探したり、宝物フローマップに従いさするためにカスタムのHSブロックと演算子があちこちで使われています。

就職するそろそろ直して、特にこれからフォーカスするのは安蒜Swarmbehaveのコードを振る舞いです。ご覧のようにCにこのCのパーティクルはお互いに引き寄せられ、互いを追いかけますが、同時に両方が存在し、互いを避けることもできます。

byこれはSwarmの振る舞いによって可能になります雄パリコレを可能にするためには、他のパーティクルはthis棒の他のパーティクルを認識できる必要があります。そのためにはある種のアクセスアクセラレーションストラクチャーを実装する必要があります。

ここで私どもが選んだアクセラレーションストラクチャーは二つのバッファ一つは内部グリッドかもう一つは内部グリッドデータで表される単純な均一グリッドです。この内部グリッドカウントはその名の通り、各セルのカウンターを保持します。

そして内部グリッドデータの方は、パーティクルの実際の情報を保持することになります。嬉しいつまりここではセル内の各パーティクルの位置と速度を保存しているんです。それはカスタマイズブロックがどのように見えるかを見ていきましょう。

スプラッシュこのブロックにはグリッドアップデートというshaderファイルがあり、一つのメソッドしか含まれていません。内村ですこのメソッドには二つの入力二つのバッファーとマップのX線と受けております。

どのように見えるでしょうかこのメソッドは、パーティクルの位置から2Dグリッド座標を計算しその位置と速度をセルに挿入します。そしてセルにデータを挿入するには、インサート印せるメソッドを使います。このメソッドがすることは、近傍カウントからカウンターを自動的にインクリメントすることです。

そしてカウンターの値と通じ座標から内部グリッドデータバッファーの特定の位置にデータを書き込むことができます。それディスチャージシミュレーションのこのステップで、均一なグリッドを各パーティクルの情報で満たしますと、インフォメーションと1割を保険でニュースですこのグリッドは二つのバッファーで表され、7月はアップデートと呼ばれる別のブロックで使うことができます。

それではこれらのメソッドがどのようなものかもう一度見てみましょう。お待ちください。ひよこソフトここではブロック内で選択されているアップデートスワンメソッドに注目します案内そして特に、全ての近傍ループするこのループに注目しています9通Swarmの速度とSwarmの位置を計算して、パーティクルの回避と集合をコントロールする力に影響を与えますギャグでパイプここでサンプリングを行い、セルの数を取得します。

そしてセルカウントを知ることで、そのカウントをループしてセルデータを収集し、計算を実行することができます。そうすることでそれぞれのパーティクルは隣接する細胞だけをセルだけを見ればよくなり、そのパーティクル全体を見る必要がない、なくなるわけです次に回避強度のような公開されたパラメータを使います。

現地エージェントて木よいクールな点はパラメータ公開されているということです。すなわちダイナミックに編集できます。例えば回避強度ありますと全てのパーティクルがお互いから逃げようとしてるのがわかります。パ・リーグこれを最初にしますと全てのパーティクルは互いに衝突し、お互いを避けようとはしなくなります。

もっと妥当な強さにしてみましょう。OK、すごい以上です今回のデモはここまでです。中吉このSwarmの振る舞い行動を実装するために、アクセラレーションアクションをどのように実装できるかを見ることができます。

同じように、アクセラレーションスタッフを見つけることでこの胸だけではなくあらゆる種類のシステムを実装することができます。このデモにおいてもカスタマイズブロックを対応しています。ただこれはこれに焦点を当てたかったんですが、少なくともこの新しいブロックはまずパワーを理解してもらいたいと思います。

そして承知のところ皆さんがこれで何ができるのか。見るというのが本当に待ちきれません。楽しみにしています。コンセッション冊子参加していただいてありがとうございます。よろしければメーリングリストに参加して、5月にリリースされるインテリックスのプレビュー版の最新情報をゲットしてください。

今じゃ駄目よ皆さんの中にはゲームに夢中な下の兄弟や子供、芽衣子や甥っ子がいる人も多いでしょう。私も5人の甥っ子がいて、みんなかわいいです正直彼らは私が現地で働いていて、お喜びです。一番下の御礼にストラップと紹介しましたモバイルファーストアプリでノーコードでゲームを作れます私がスウェーデンを訪れるたびに俺は最新版のゲームを私に見せたがります障害の克服の仕方などをどうすればゲームをよくより良くできるかよく話をしています。

MRさん不在この前俺は少し行き詰まっていて、私に助けを求めましたそこで彼のレースゲームを白紙に戻して、新しくレストラックを追加しました。おっしゃるスムーズですごく良い感じで丸みを帯びた緩やかなカーブも設けました。

いえ彼に見せると気に入らなかったようでもっと派手な演出にするため私がやったのを全部破棄してしまって車がコースから飛び出すような、すごく9ターンの多いジグザグのレストラックにしました。大丈夫それがまさにゲームのハイライトとして望んでいたことだったようですその後私がフォームで記憶は

Unityの次の標準レンダリングパイプライン_Universal Render Pipelineは何がどう変わるのか

こんにちは、Unityの山村です。今回はですね、Unityの次に標準レンダリングパイプラインになる予定のユニバーサルレーダーパイプラインこれは一体何なのか、またこれを利用することで、今までと比較して何がどう変わるのか例えば表現であったりとか、最適化のルールであったりとか、もしくは拡張法であったりとか表現のどういうふうに変わるのかっていうのをお話ししていこうと思います。

最後までお付き合いいただければ幸いです。最初にですね、ユニバーサル連打パイプラインとは何かっていうのを話す前にですね、レンダリングパイプラインっていう言葉が結構聞き慣れない方が多いと思いますので、そこから話していこうと思います。

大抵のゲームエンジンだと3Dのモデルを描画するときに、あまり何も考えることなく描画することができます。例えば、カメラをモデルに向けて、これだけですね、大抵はそれだけで陰であったりとか光沢であったりとか、綺麗なモデルが表現できます。

この非常に単純な作業は、実際には裏では結構複雑な工程を挟んでいます。量は本当に基礎的なところで言えば3Dモデル表現するときに頂点を作成して、どのようになるのかをシェアで指定するだけです。9日に影みたいな効果を追加したい場合には対応を追加するだけとはいかないです。

もし鍵を追加したい場合には、太陽から見たデプス斜度アップとかモデルを表現するためのデプスを作成して、斜度マップとデプスを組み合わせで、スクリーンでどこに鍵が当たってるのかっていう部分マップ作成で、その内容を画面に反映させる。

といった工程が必要です。この流れこそがパイプライン描画のためのレンダリングパイプライン描画すべき内容を渡すと画面対象をもとに、特定の表現のためのデータを作って、それを加工して最終的な絵を作ってくれる。

これはデータ指向的なアプローチなので、オブジェクト指向と比較して、動作の変更であったりとか要素の通知があったりとか、そういったものには強いです基本的には、とさえしっかりしていれば、実質を書き換えたり、新しい画面硬貨を作ったりとかして分岐したりとかして、追加するっていうことも比較的容易になっています。

Unityのパイプラインはどうなのかというと、Unityのパイプラインってエンジンの内部で作られたんですね。つまりC++で構築されています内容は汎用的なもので対応する範囲が非常に広くなっています2Dであったりとか3D軽量な3Dリッチな3DVR、AR、いろんなものに対応しています。

言うならば、特に何も考えなくてもデータを組めば、ちゃんと表現してくれると、そういうパイプラインになっていました。使い勝手という点ではこれは魅力的ですね。ただ、パイプライン自体を改造したいみたいな場合には、描画するためのデータに手を加えるといった取引の手に頼るか、ソースコードライセンスを購入して、エンジンの改造が必要でしたコマンドバッファーによる単純なパーツの差込は可能だったんですけれど、パイプライン自体に手を加えるとなると、これができなかった。

この辺で結構やきもきしたという話は、自分はよく耳にしています。そこでですね、レンダリングのパイプラインをエンジンから切り離して、いくつかのモジュールに分割Cシャープである程度自由に組み替えられるようにしました。

これは作りたBlenderパイプラインと呼んでいます。ブロックのおもちゃのように、少ない手間である程度自由にレンダリングパイプラインを構築できる機能です。これで、独自にレンダリングパイプラインを自由に構築できるようになりましたこれで何ができるのかというと、例えば影ですね、これは絶賛開発中の無痛を読んでいるゲームオブジェクトベースのオープンワールドのデモ画面です。

比較的同スペックのマシンでモバイルでも、どうすることが想定しています。これを実現するにあたり、より広範囲での鍵を描画するために、普通のデプスベースのシャドウを僕セルカ者ドアップに差し替えていますこのコンテンツは、このテーマは、こういったことは今までできなく面倒くさかったが正しいんですけどできなかったんですけれど影の木の差し替えみたいなこともできるようになります。

SRPを使うことによって、逆にSRPを利用することで何もない。ゼロから始めることもできますというかSRP自体は特に何もしてくれないので、基本的にはこっから始めることになります。名刺の病院から始めて、DXぐらいだったりとかスポットライトみたいなライトの表現の追加LODGIとマップポストプレッシングなど諸々をですね、頑張って自分で作ることができます。

とはいえですね、こんな自分でゼロから作れっていうのをちょっとあまりにもあまりにも面倒くさいです。なので、SRPですぐ使える二つのパイプラインを用意しています。一つがHTRPIDefinition連打パイプラインです。

もう一つはURP、ユニバーサル連打パイプライン、これらのパイプラインは他のパイプラインから切り替える形で使用することができます。HDRP、これは強力なGPUを持ったデバイスだったりとか、プラットフォーム向けのレンダリングパイプラインです。

物理的に正しいフォトリアルなことが表現を行うことに最適化されています。反面、簡単なゲーム向けにはちょっとオーバースペックで、比較的新しいデバイスであったりとか、比較的ハイエンドなデバイスでないと動作をしません。

もう一つが、今回のお題目となるユニバーサル連打パイプラインです。このURPとは何かと聞かれたときに主張したいのが、この四つ。一つ目が、USTRTほどではないんですけれど、それなりに綺麗なグラフィックそれとパフォーマンスが良いということ、あとはハイエンドローエンドの区別なく、Unityが対応している多くのプラットフォームで動作するということ。

それと、高い拡張性です。他にもビルトインの機能と比較すると、アーティスト向けに作られたツール例えば生だグラフであったりとかVXグラフといったツール群が統合されているのもポイントの一つです。今画面で見てるVFXグラフは、コンピュートshaderGPUで計算して、エレクトーンを動かすという。

システムでいろんなエフェクトロードベースで構築することができます。これはHRTで動いてますね。もう一つshaderグラフはshaderの作成ノードベースで行うことができる機能です他のゲームエンジンであったりとかアセットストアとかでは結構似たようなのがあったんですけれどちゃんとUnityの更新という形で、パイプラインに組み込まれた形で実装されました。

クラフト変えてグラフとかの組み合わせ、どっかで見たことがある過去に見たことがあるかもしれないと思ったかもしんないんですけどその通りで、このユニバーサルレーダーパイプラインや元々はLWRPライトウェイト連打パイプラインと呼ばれているものでした。

LWIPはライトウェイトの名前の通り、軽量で高速というスタンスで開発されていました。厳密にはこうしサポートするパイプラインという立ち位置ではなくて、カスタマイズ可能なサンプルっていう8時です。サンプルなので実は割とシンプルな構成になっていて、必要に応じてカスタマイズしてねというスタンスです。

ただ、カスタマイズを考えた場合、やっぱいろんな問題が出てきますそれは他の人が作ったLWIPを統合したりとかする場合の問題であったりとか、ナレッジの問題であったりとか、もし自分が誰かが作ったパイプラインを自分のパイプラインに統合したいみたいな場合には、そのお互いの機能をちゃんと理解しなければいけない。

それは非常に面倒くさいって言うならばですね、カスタムしなきゃ使えないんならカスタムしても使わないものを選ぶわっていう話が出てきますどうしても、そこで必要と思える機能LWRPにどんどん追加したりとかしていったんですけれど、その結果、LWRPの高速軽量というコンセプトからは一致しなくなってきました。

なので、少し考え直しました。もう少しリッチな表現を最初からできてもいいんじゃないかと軽量にするだけなら設定をオフにできるオプションがあればいいんじゃないかとあとライトウェイト連打パイプラインって名前がよくないから変えようぜと仕切り直しまして、LWRT25というRPとして埼スタ部分なりました。

ちなみにこのLWRTからURPN以降バージョンアップそういった点でいうと、アップデートマニュアルであったり、APIアップデートが割と頑張って仕事をしてくれます。これは、過去からできたというわけではなくて最近のチームがすごい頑張って力を入れているところの一つです。

ちゃんとマニュアル通りの手順であれば、そこまで面倒なく、LWRTからURPへの移行が可能です。その過程でバージョン7以下の場合は、バージョン9以上にしたいとかそういうバージョン上げたい場合には一旦7.2に上げてから急に上げろみたいなちょっと生々しいApple TVを要求することもありますが、ある程度頑張ってくれます。

これは最終的には関連に自動化して以降であったりとかバージョンの互換性に悩まされないようにするのが今の目標の一つになっています。ただ残念ながらこれも完全ではなくて、セーター名であったりとか、コードから文字で取得してる部分は手作業でコードの変更が必要になってきます。

またもしHLSLで記述したshaderコードであれば、includeとかいっぱいあってると思うんですけどそういった部分も残念ながらモードで更新することはできないので、バージョンアップに対応する手順を用意する必要が出てきます。

ここら辺で言うとshaderグラフみたいな抽象化した機能であれば、特に何も頑張らなくても、そのまままっすぐに移動させることができます。いうIPは開き直りまして、どんどん機能を追加しています。機能拡張していくなら最終的にはビルトインと同じように使えるようにしようとなりました。

NewT2021を目標にビルトインレンダリングパイプラインに代わる同等の機能を備えた新しいレンダリングパイプラインを目指して開発を進められています。ただ現状では、さあビルトインからURP移行するぞとなったときに、サポートしてない機能がそこそこ存在します。

まだパフォーマンスやユーザビリティの点からまだ仕組み的に変わるところも結構あります。このあたりは見てもらってるようなマニュアルにまとまっています。特に知っておく必要があるのが、これですねSurfaceシュレーダー使用できなくなる。

という点でしょう。もしプロジェクトでSurfaceシェアを使用している集団がある場合は、そのあたりをHLSLに移植してるもらう形になるか。もしくは製剤グラフで再構築してもらう必要がありますここら辺バージョンアップを考えると星座グラフで構築することを個人的にはおすすめします。

他にもいくつか目につくところはあります。例えばシャドウマスク、ポイントライトのシャドウ、そういった部分が現状使えなくなっています。これは単純に実装が間に合っていないだけなんですけれど機能の重要度的にちょっと実装して欲しいところではあります。

もう少しお待ちください。あともう一つ、リアルタイムのGIのソリューションが今のところなかったり、あとは一部ポストプロジェクトが未実装だったりとまだ完全ではないところがあります。SRPなので、必要なら支度することも可能ではあるんですが、作るゲームを考えたときにURPのメリットが薄いと感じたならば、ビルトインをまだ継続して使うっていうのが良いかもしれません。

ただ目につく部分はいくつか近いバージョンで対応することが予定されています。特にシャドーマスクであったりとか、SSとかですね。2021.1のタイミングでは、クッキーであったりとか、デパートレンダリングのモバイル対応であったりとか、そういった部分が多用されていきます。

個人的には仮想的スタイリングをちょっと楽しみな項目です。このあたりの進捗は、プロジェクトロードマップのページで確認することができます。ここでimportantが多い向こうは開発が若干加速しますので、欲しい機能にはimportantとその理由を添えて投稿してください。

それと、URPHTRTはGitHubで開発が進められています。もしまだマスターに着手してない、開発中の新機能を試したいみたいな場合には、こちらからコードを取得して試すといったこともできます。さて、今のURにどんなものかっていう説明したんですけれど、UR品移行することで何がどう変わるのか、そのあたりについてもお話していきます。

まず最初に良い意味で変わる点は、パフォーマンスです。SRTを使用しているだけあってSIPバックグラウンドに使えるだけあって、結構良い感じに仕上がっています。例えばこのようなゲームを動かしてみたとします。

ちなみにこのゲーム知ってる人はあんまりないと思うんですけど一応2013年あたりに作られたステルスチュートリアルっていうコンテンツです。元々は運天4恵三させるものでした。今回はこれを検証用のコンテンツにしています。

ここで話したいのは、ステルスのゲームではなくて、ステージの構成です。このゲームでは画面のように壁ごとにメッシが独立した形で、生成されています。これらのメッシュは質感ごとにマテリアルが設定されていて、スタンダードSEEDAのような1個の質感にまとまったものではないです。

またライトがステージの中にたくさんあって、部屋に複雑な質感を与えています綺麗ではあるんですけれど、指でパフォーマンスを考えて動作させるっていう場合にはちょっとあまり嬉しくない構造になっています。このシーンを表示するときビルトインでの実効速度はあんまり良いとは言えないです。

これもURPに移行したものがこちらビルトインの湯ビルトインというRPで比較するとかなり高速化されています。グラフで見ると結構はっきりしますね。CPUと連打スレッドが非常に大きく減っていることが確認できます。

これモバイルで動かしても大体同程度の差が出ます。これなんでかってと思うかもしれないんですけれど、いくつかの取引があります。一つ目に影響があったのが、SRD抹茶の有無です。これはUnity従来のダイナミックマッチングのようなドローコールそれ自体を削減する。

というものではなくて、ドローコール間のGPUへの設定コスト、つまりドルコールのコスト自体を削減するということを念頭に置いた。マッチング方法です。SRTパンチャーの仕組みはこんな感じになっています。まずマテリアルのあまり変化しない情報を事前にGPに転送して、永続化しておきます。

このマテリアル情報というのは例えばどんなテクスチャーを使用しているかとか、マテリアルのもっとプロパティの値であったりとか、そういったものの組み合わせです。次にトランスフォームであったりとか、オブジェクトの情報、そういったものを一旦大きなバッファーに詰め込んで一気に渡してしまいます。

あとはもう描画するだけです。連打ループを回して、一気に描画していきます。これでなんで早くなるのかっていうのはちょっと以前のやつものと比較するとわかりやすいかもしれません。まずSRTばっちゃなしで描画した場合です。

同じマテリアルで描画する際に、マテリアルのデータやマニュアルを参照していると総務情報一旦かき集めて、GPA転送っていう手順を行っています。この真っ赤ではなくてちょっと薄赤いものがそれですね。これは非常に柔軟で安全なんですけれど、ただ実行パフォーマンスという観点で言うと少し冗長でGPとメモリーのバンド幅比も優しくないですし何より時間がかかります。

なのでUnityやダイナミックバッティングメッシュを結合して、描画の回数自体を減らすっていうアプローチが左右されていました。ただこれは結合の計算が結構ボトルネックになっていて、OpenGLみたいな古いデバイスでない限りは、もしくはよほどロープでない限りはあまり良くない結果になるとそういう結論が出ています。

一方、SRPバーチャルでオブジェクトの情報や財源のバッファーはもう既に全部上げているので、描画する際には、いちいちオブジェクト収集とかしないで一気にインデックスを変えるだけで凌駕することができます。これならバスの切り替えなしに多くのモデルが描画できるので、効率的に描画できますし、どろコールそれ自体の負荷が非常に安くなります。

またマテリアルの切り替え後にGPなアップロードが発生しないので、バンド幅が節約できて、メモリのフラッシュがつかないのでバッテリーにも優しいとそういうメリットがあります。ちなみにこのバッティングフレームでパッカーで見ると、バッチされた描画はSRPバッチと、そういう項目で表示されます。

ただし、実際には泥は一つにまとまっているわけではないので注意が必要ですばっかりでもドローコールは別途表示されます。SRPバッチの上だと、道路工事や非常に安いので、この数は目安程度に皆見れば良いかもしれません。

ここの話のポイントは、描画に関しての大陸間ルールこれが変わったということです。今まではマテリアルの数が増えれば増えるほど、負荷が上がる傾向にあって、マテリアルの数を被る限り減らすということが非常に強く推奨されていました。

この傾向はURPでもそこまで変わりはしないんですけれどURPでは、集団のバリアントが大きく変わらない限りは、そこまで負荷は急激に上昇しなくなっています。これによって画面内にたくさんのマテリアルがあったとしても、ある程度は許容できるようになります。

今まで絶対に避けろっていうようなマテリアルが複数あるメッシュであったりとか、質感ごとにモデルがあるみたいな場合でも、そのマテリアルの設定が概ね同じならほとんど問題がなくなると言えます。要は星団のバリアントが同じなら、概ねバッチがされるようになります。

なので、比較的はいぽいなモデルやスクリーニングしているモデルもバッチグーの対象になります。バッシングが崩れにくいので、パスも最小限に抑えられて、速度も良好という感じです。さて、もう一つのパフォーマンスに関するトリックを紹介しましょう。

ライティングです。具体的にはシングルパスレンダリング複数のライトがモデルを照らしている場合でも、1回2秒で済ませてしまうという機能が大活躍しています。というのも今回のプロジェクト結構ポイントライトがたくさん置かれていました。

これは屋内で複雑な空間を表現するっていうときには有効の手なんですけれど、ビルトインの連打の場合、ライトが複数回照らしている場合、ライトの照射回数だけパーツが増える実装になっているので、とても高い負荷になりやすくなります。

このような配置をすると、それとライトの数だけ同じモデルに対しての裁量が発生するので、オーバー泥が発生するので、Viewer負荷的にも若干お高くなっていました。それに対してURPの場合、複数のライトが示されている場合でも、1回の描画で、描画することができます。

これは今回のように複数のライトで照らしている場合には有効といえます。複数のライトがあった場合でも、光の方の処理は星団内で完結しているので、オーバー泥は起きず、割とお得に描画することができます。来島焼けば同程度になるのかというと、日確かにビルトインの方はかなり負荷が下がります。

これは単純にライトのワードローブもあったんですけれど、インスタ寝具が有効にできるようになるっていう点もあります。塩酸信号ライトは複数処方されていると、使用できないという制限があったんですけれど、これが解除されて、パフォーマンスが向上しています。

逆にいうIPもライトやことで負荷が下がり多少高負荷はします。なので、ビルライトやことによってビルトインというRTが、逆転するということではないんですけれど、ただビルトインという比較すると、その上げ幅はそこまで多くはないです。

来島焼けば同程度と思うかもしれないんですけれど、大東役と確かにビルド員の負荷は結構下がります。これはインスタ寝具が使用できるようになるっていうのも影響しています。そのインスタ寝具はライトが複数解消されていると、使用できない。

っていう制限があったんですけれど、これがライトを焼くことによって解除されて、パフォーマンスが向上していました。一方URT側もライトやことによって出荷が下がって、多少高速化します。ただ、ビルトインほどすごい大幅に高速化するっていうことはないです。

そういった点で言うと、ライトリアルタイムライドたくさん置くという選択肢も今まではできなかったんですけれど使えるようになると言えるかもしれませんもちろん限度というものはありますが、逆にURPの花としてイラストのライトは1個しかサポートしてません。

そのためにキャラクター表現のためにバックライト等を使用するみたいなことはできなくなります。空間的に光が必要な場合には、ライトプローブであったりとか、間接を組み合わせて、表現するとかアンビエントライトを使用します。

この辺りでビルトインでも使えるテクニックですけれど、URPだとDSライトが一つしか使えなくなるので、必須のテクニックとなります。貸与は一つでいいよねということで、それというRPGもインナーGoogleが導入されるようになりました。

これで少しだけふわっとしたライトが作れるようになります。逆に現在クッキーが使えないので、好きかどうかと言われて悩ましいとこではありますけれどもとにかく直感的にふわっとした光が作りやすくなりました。少し話題を変えましょう。

カメラスタッフィングについてです。このカメラスタッフィングUnity小手先テクニックの代表みたいなやつだったんですけれど、LWRTURPでは当初使用することができない、そんな機能でした。これは非常に要望の多い機能で、やっと最近できるようになりました。

このカメラタッチ機能は単純明快で複数のカメラが順番に描画する機能です。これらはURPの拡張で疑似的に再現できましたが、カメラスタッフの対応により今まで通りの感覚で使えるようになりました画面に映ってる通り例えば、奥に背景描写して、真ん中にコピペ画面を評価して、手前にUI表示すると、その手前に、パーティクルであったりとか、胸であったりとかを表示するという感じ。

これをカメラの繋ぎ合わせで実現します。特にUIの手前にパーティクルみたいなものはモバイルだと結構よく見る構造なので、やりたい人は多かったんじゃないかなと思っています。ただ、少しやり方が変わります。今まではカメラのデプスを使用しておくから順に描画っていう感じの形をとっていたんですけれど、URPではメインカメラにベースを設定してその上にスタックで指定したオーバーレイのカメラを描画していくという流れになります。

実際の流れを見てみましょう。これ今広いステージの画面があって、その背景だけを表示するカメラと、もう一つ、だけを表示するカメラ打ちましたねこれこの二つがあります。これを付託して、背景と腕を同時に表示するようにしますので、ベースオーバーレイに変更して上のカメラなんですオーバーレイに変更して、背景用のカメラのちょっと変わってますね。

ICAOのカメラのスタッフにスタッフに追加するとこれで実行すると奥に背景を表示して手前に腕を表示するとその紙を合成することができます。これで合成すると腕の中の壁のところに10月コアの貫通したりとかしないので、前的には非常にいい感じに出しやすくなります。

この延長上で、ワードスペースのUIの手前にパーティクルとか、そういったこともできます。ちなみにポストプロセスは複数のカメラに設定できるんですけれど、カメラごとにスタックされます。つまり加算される形になるので注意が必要です。

これと面白いのが、カメラごとに連打らを指定することができるという点です。ビルトインのパイプラインでは2Dや3Dを大体一つのレンタルで賄ってましたが、URPは2Dと3D用といった形でレンタルが分けて設定されています。

というのも、ツーリング表現ビルトインと比較して、結構いろんなことができるようになったんです。例えば、2Dのライトの表現であったりとか、釣り用の影ノーマルアップを利用したオールド表現などです。この光の判定であったり影の判定には2Dを無断使用が使用されています。

それと描画順をちょっとカスタムして、多くした手前にするみたいな、2Dではよくある構造の涼雅ちゃんのカスタム他にもいろいろあるんですけれど、こういった点で2Dと3Dでは求められているパスが若干異なります。

3Dの場合は限らないと使いボックスデプスなどの利用が必要に対して、2Dではほとんどそういったものがない。しいて言うならライトの座標が2DUであるとか、そういった部分のみなので、完全にそれらをなくした連ドラを独自に用意しておくっていうのは、次にかなっています。

ということで、URPでは連ドラを複数持っています。それ用の連打らをただ状況によって3Dを使いたい場合であったりとか、2Dを使いたい場合もしくは自分の作った特別なレーザーを使いたい場合っていうのがあると思います。

なので、そのあたりはカメラで切り替えできるようになっています。例えば会話シーンであったりとか、インターバルみたいな、そういった部分では2Dの連打を使って描画していて、実際のゲーム画面では3Dでみたいな感じで切り替えるイメージです。

近いイメージは実際こんな感じです。例えば今画面に映ってるのは3Dの画面なんですけど今2Dに変更しました。これで2Dモードを切り替えると、3Dからライトの情報が消えて、スプライトにライトの情報が移ります。

こういうふうに状況に応じて、その描画する方法を切り替えることができる。もちろん描画を切り替えているのでレンタルを切り替えているので、奥行きの情報みたいなものも切り替わっていますこういう感じで使い分けすることができる。

これとカメラスタッフィングを一緒に利用することで2Dと3Dの画面を合成したりすることもできます。例えば背景は3Dなんだけど手前のキャラクター2Dで、CPUの連打を使用するみたいな感じ。このときに2Dでならベースにすることができないので、これだけは注意が必要です。

ちょっとカメラのスタッキングと連絡見合わせた例を紹介します。今、中という背景があって、これに中だけに特別な星座レンダリングをつける適用するっていう処理をやっています。アウトラインをつけます。手前の中の連打ラインだけでまず重要の連打らを開いて、アウトラインをつけるだけこれだけですね。

これをすることによって、多くの背景はもう普通に描画されてるんですけど手前の中は、アウトライン付きの美容方法で描画するみたいなことができます。ちょっともう一つの例です。もう大腸の表現を行う連ドラを用意しました。

背景をちょっとモザイク調にしてし手前のキャラであったりとか、中のものはそのまま綺麗なままで、表現すると、そういったことをしています。これ実際にはUIをぼかすとかそういった部分用途に使うとは思うんですけれどもこういう感じでカメラごとにレンダリングの方法を切り替えると、そういったことができます。

あとは変化という点ではポストプロセスについてもちょっと話しておこうと思います。URPのポストプロセスは、基本的にはHDRPと同じボリュームシステムを採用しています。ただしFFとは似て非なるもので、いうT4に最適化されたものになっています。

それと表示の有効か無効か、そういったものがカメラに統合されました。これはある意味わかりやすくなったと言えるかもしれません。対応するエフェクトはこんな感じですたくさんあるように見えるんですけれど、カラーJASであったりとか、羽にプロジェクションシャドウであったりとか、マッピングと、元々V数が一つの機能で提供していたものが分割されて提供しているものが結構あります。

なので実際はそれほど多くはないんですけれど使う分にはある程度十分かなとは思っています。パフォーマンスの面では概ね高速化しています。特にブルームピラミッド以前と比べるとだいぶ高速になっています。ただ実は内部を見るとちょっと設定が過剰なところがあるので、もう少し調整できるようにパラメータが露出してくれると嬉しいなと個人的には思っています。

もしやる場合には、ちょっと中身を確認して了解数とか見てもらうとわかるかもしれないです。さて最後に拡張に関する話をしようと思います。URPDを拡張する場合行動把握しておく必要がありますURPではこんな感じで区分になっています。

まず一番外周にHDRTURPといったパイプラインを指定する区分があって、ここでどういうパラメータを持ってくるのかとか、どういうふうな実装になるのかとか、すごい大枠のところを決めています。その下には連ドラがあります。

ここではどんなふうに凌駕するのかを決める部分です。この組み合わせを変えることで様々な表現が可能になる切り替えることができる。最後にあるのがパス、実際にどういうふうな量が多いするのかっていうのを実行したりとか、描画内容をどういうふうに加工するのかというのを決める役割を持っています。

基本的な流れとしてはカメラカレンダーを指定して、カメラに映っていろんな情報を連打に渡します。連打には複数のパスが登録されているので、そのパスを通すことで、カメラの内容をどういうふうにレンダリングするのかを決めどういうふうに実際にその内容を確保して、最終的に出力するとそういう流れになっています。

拡張を考えた場合に、このパスを実行するタイミングを調整したりとか、パスの処理内容を差し替える、もしくは差し込むといったことで、パイプラインを拡張することができるようになっていますURPではこれらの情報はCri図が可能になっていって、ある程度UI上で自由に差し替えたり、調整したりといったことができるようになっています。

これができるのがURPの強みとも言えます。そのための行動を見ていきましょう。最初に行動のテンプレートをエディタ上から作成します。これは、レンダリングのメニューから作ることができます。製造されたコードはこんな感じ。

まず見るべきは、羽数拡張するコードですね。パスはスクリプター連打パスとして定義します。このクラスを継承したクラスでは、どのデータをどのように加工するのかといったことを行うことができます。例えば画面全体に対する処理現在デプスを取得するとか、現在の画面を出力するとかそういう場合、普通にびっくりしてるだけです。

これはこういった画面全体に対してのエフェクトを作るのに有効です。もしくは情報をキャッシュして別のパスで確保するとか、逆に任意のモデルを表示したいっていう場合のコードがこちらまず一番上の部分でレンダリングの方法とか、どういうふうに相当するのかっていうのを決めて実際に描画していきます。

凌駕する対象であったりとか、どういうふうな設定でオーバーライドするのかとか、そういったことをここで指定することができます。両Aを対象の絞り込みというのはいろんなオプションが用意されています。例えば特定の星座パスを持っているとか、任意のLayerに所属しているとか、人の描画のオーダーにいるとか、もしくは人のレンダリングLayerを持っているとか、いろいろです。

このパスをしリアライズする役割を持っているのが、スクリプターブレンダーフィーチャーです。ここでは、どのタイミングでパスを差し込むのか、どういった設定でパスを登録するのかといったパスの設定を尻洗いしておくことができます。

これを定義すると、フォワード連打のファイルからパスの内容を設定することができるようになります。他のコンポーネントと同じようにパブリックで定義しているフィールドであれば、これはUI導出して、プロパティ0は乳児を拡張したりとかもできます。

では実際に少し表現を拡張する流れをやってみましょう。まずこれが元の絵で、これをこうします。この違いわかりますかね。この違いは、壁の向こうにシルエットを表示するっていうパスがあるのとあとキャラクターにアウトラインを表示するっていうバスが追加されています。

これは実際にやってみようと思います。最初の画面ですね。シーン構造はこんな感じになっていますいっぱい頭があるのと、あとユニットがいくつか3体ですね、存在するっていう感じです。この島とか背景とかには基本的にはデフォルトのLayerが設定されていて、ユニットのキャラクターには、キャラクターのレイヤーが設定されています。

これで差別化されています。このキャラクターのレイヤーに所属するモデルに対して、パスを追加してエフェクトを追加していこうと思います。まずやるべきは、そうですね。アウトラインの星座を用意しましょう。作成のshaderの杏里っとしアウトラインなんでアンデッドで十分です。

あとはこれをマテリアルを設定してアウトラインを描画するマテリアルってのができます。そうだ、パラメータ無視露出しときましょう。そうすれば、マニュアルから減ったの設定することができます。このキャラクターのモデルに対して、アウトラインの設定をしていきます。

やることは、そうですねこのパイプラインのフューチャーでパスを追加します。アウトラインで描画する対象をここで決めます。キャラクターで、あとはどうやって描画するのか、アウトラインで描画そうするとあれ、出てこない。

出てましたね。色が白いからか、色を変えときましょう。これは今白になってるので、これを黒についでにこいつは露出しといた方がいいですね手でやるから、そうすれば町田から変更することができます。うん。できた。

こんな感じですね。ちょっとエッジを強調する感じ、コミック的な感じですね。では次にこれでアウトラインができたので、次はここのシルエット表示していこうと思います。このCやる場合も星座を用意しますどうやってるのかっていうのを仕入れどうやって表現するのかっていうのを決めるために、シェアが必要です。

これは単色でもいいんですけれど、ちょっと趣味的にこんな感じですね。この模様で、このシール表現していきます。これを表現するために、まずはこのキャラクターの形にしれっと描写してみます。凌駕する対象はキャラクターでリーダーを凌駕美容ができましたねちょともうちょっと派手の方がいいかなもしすいません。

はいもうちょっと派手にして、色は黒でいっかうん。こんな感じで本庁になったので、これでキャラクターの上に1回追加デビューができました。ただ本当にやりたいのはこのキャラクターの上にではなくてシルエットを描画することなんですね。

なので、手前にモデルがある。場所にだけ描画するようにします。それは、このデプスを使えます。デプスオーバーライドして、グレー他にすることによって、壁の手前に、キャラクターの手前に壁があれば、デプスが描画されていれば描画するっていう形になります。

ただこれ、このキャラクター自身でデプスを作っている場合にも適用されてしまうんですね。なので、ちょっと工夫をします。それは何かというと一旦このキャラクターを最初のタイミングで描画するのをやめ、って話ステルス迷彩みたいになりましたね。

このシルエット描画した後に、キャラクター自体をもう1回描画し直すちょうどタイミングをずらすっていうことですね。することによって、こんな感じでキャラクターをちゃんと表現しつつ、シルエットも表示すると、そういうことができます。

ただこれよく見ると、今までキャラクターのシルエットじゃなくてアウトラインとして描画したのがなくなってますね。これは単純に上から順次描画しているので、まずアウトラインが描画されてシルエット描画して、その後にキャラクター描画しているっていう順番で実行されているので、アウトラインをキャラクターに描画し、上書きしちゃってるっていうのが問題になります。

なので、これを実行順番を変えることによって最後に、アウトライン描画することによって、こんな感じでシルエット描画しつつアウトラインに描画しつつ、みたいな感じのことができます。ちなみにこれ、フレームでバーガーで内容確認することができます。

どういうパスを描画したのかっていうことですね。確認するとまず背景を描画しって、シルエット描画して、キャラクターを追加で描画して、最後にアウトラインを描画してるっていうのが確認できます。ちゃんとこの名前もこの通りつきます。

こんな感じでシルエットとアウトラインが表現できました。ちなみに今レンダリングオブジェクトは対象レンダリングするだけだったんですけれどユニバーサル連打パイプラインexampleこれはGitHubにあるですけどこれを除いてもらえると画面全体に対する処理の拡張みたいなものもちゃんとあります。

もしポストプロセス的なことをやりたい場合には、こちらを使うことができます。画面全体にフィットをかけたりとか、特定のタイミングの表現をチェックシートに叩き込むであったりとか、画面で他にいる人をかけたり、特定のタイミングの表現をテキストに書き出したりとか、そういったことはできます。

ちなみにLWRPのような連打自体をカスタマイズする場合には、連打フィーチャーとカレンダーパスではなくて、ベンダーなんちゃらスクリプトBlenderとスプリッタブレンドなデータを読み解くのがわかりやすいです。

では、今回話したかったことのまとめをしましょう。まず、URPとは何か。SIPをベースとしたレンダリングパイプラインです。将来的には標準のレンダリングパイプラインになるはずです。基本的には拡張性に優れ、法則で、そこそこ綺麗な表現ができます。

リニューアル品に移行することで何が変わるのか。表現における最適化のルールが若干変わります。それとパフォーマンスが掃除で若干上がります。あとは連ドラを変更するみたいな形で、ちょっと今までとは違った変わった表現を連打テクスチャーとかなしにやりやすくなります。

最後にURTを拡張するには、基本的にはスクリプトBlenderパスを受託して、連打フィーチャーを組み合わせてパスを差し込むという感じで活用することができます。はい。ていうことでユニバーサルなパイプラインの紹介でした。

URPは今も蛇に開発されていて、どんどん発展する機能なので、今後もぜひご期待ください。ご清聴ありがとうございました。言えないとなるようこそUnityの最新情報をお届けします。

Unity Muse: AIを使用した、Unity Editorでのプロトタイピングの高速化

【自動文字起こし・内容未調整】

皆さんの中には、ゲームに夢中な下の兄弟や子供、芽衣子や甥っ子がいる人も多いでしょう。私も5人の甥っ子がいて、みんなかわいいです。正直彼らは私がニチイで働いていて、お喜びです。一番下の御礼にstructを紹介しましたモバイルファーストアプリでノーコードでゲームを作れます。

はい私がスウェーデンを訪れるたびに、俺は最新版のゲームを私に見せたがります障害の克服の仕方などをどうすればゲームをよくより良くできるか。よく話をしています。仙波さん不在この前、俺は少し行き詰まっていて、私に助けを求めましたそこで介護レースゲームを白紙に戻して、新しくレストラックを追加しました。

いらっしゃるスムーズですごく良い感じで丸みを帯びた緩やかなカーブも設けました。いえ彼に見せると気に入らなかったようでもっと派手な演出にするため、私がやったのを全部破棄してしまって車がコースから飛び出すような、すごく9ターンの多いジグザグのレストラックにしました。

50それがまさにゲームのハイライトとして望んでいたことだったようですその後私がフォームで記憶はレーストラックの感想を祝福するような緑の効果を追い出しました。そしたらこれも気にくわないようで、なるほど、トラック食う最後ではなくて、トラックに沿って雪を配置しましたレーストラックを走ってトラックからはみ出してしまった車が木に飛び込むような、ずっとドラマチックな効果をお求めました。

MV私もその方がずっと楽しくて爽快なゲームになると気づきました。明らかに御礼は自分がやりたいことを理解していました。スパーリング相手のような役割の私も、このやり取りが大好きで心を少し開放することもできましたというスターマインを超え、でもスパーリングパートナーをすぐに見つけられなかったり、おばさんが訪ねてくるまで待てなくても、AIが代わりを務めてくれます。

そして自分で博士から始めなくても、AIが始めてくれます。いくつかアセットを作りやり直し、編集もできます。成功へ導いてくれるのです。病院へ何を望むのか逆に俺の場合のように望まないのかちゃんと理解して、くれます今日はそのご紹介です今日は雪エリアでのプロトタイプ作成のスピードアップについてお話します様々な水の機能を一緒に使っていきます。

これによりアイディアを素早くプロトタイプ化しゲームループを検証できますが、まずは自己紹介です。毎年私はマルティナヨハンソンUnity三須シニアテクニカルプロダクトマネージャーの1人です。インチでは4年半ほどコペンハーゲンを拠点に仕事をしています。

私はマヌエル1000シリーズですUnityに入って3年でプロダクトデザイナーとして入社し昨年、アドボカシーチームに異動しましたあいつの責任ある利用を推進しています。カナダのモントリオールを拠点に活動今日は皆さんのお話を楽しみにしています。

ニュース本日はゲーム開発のためのCreationTool朱印.水をご紹介します。SSAIを使いアイディアを素早くプロトタイプにしてくれます。水を使ったことがある人もない人も、11月のユナイトで紹介した内容を復習しておきましょう。

エンドが覚えまず水が対応する主な課題は何でしょう。多くの皆さんが直面する課題は、時間やリソースの制約です。私達が開発している機能でプロトタイプ作成を加速し、ビジョンを以前より早く実現化できます。御社はまたUnityエディターのコンテキスト内で生成反復することができます。

さらに、チャットのようなツールでエラーや問題が発生したときにトラブルシュートを行い解決策を見つけることができます。エディターの話の前にこれからやることの舞台を確認しましょう。ワーキングこのゲームスタジオでは、既存ゲームに新しい課題を加えたいと考えています見張り番がいる人から黄金の壺を手に入れ村に持ち帰るのです。

ミューズの機能を使い短時間にいろいろな機能の相乗効果をどう活用するのかお見せします。ストリングスまずウェブ上の水を使ってプロジェクト設定から始めます。お好みに合わせてスプレースプライトやテクスチャーの生成、キャラクターのアニメーションbehavior実装をしますその間、水チャットがプロトタイプ作成の相棒として助けてくれます。

レスターのねまずWebの新しい水チャットインターフェースからですミューズに尋ねてみますミューズさらにゲームグループを検証したいんだけど、ワッチブランドどのレンダリングパイプラインを作るのがいいかなという思いで、いろんなプラットフォームで最高のパフォーマンスを発揮したいんだす。

最新バージョンをクリックし、矢印で先生ジェネレーターをします。若林スピンアウトビュッフェ待ってる間に一つご安心ください後でまたちゃんと今のワークフローに近い形で見ますそれまではWeb上でやっていきましょう。

ミュシャ水チャットはシナリオのデバッグや特定の質問に答える必要があるときだけでなく、Unityエディタに慣れてない人がUnityエコシステムを最初に使い出す際にも役立ちます。水茶水チャットの回答にはリンクもあり、ピンクの番号でドキュメントに飛べますWeb上では公式ウェブサイトやディスカッションフォーラムさらに、YouTubeページなどの動的ソースも右側に表示されます。

Newsチャットでは、ユニバーサル連打パイプラインURPの使用を推奨しています。モバイルXRデスクトップで最高のパフォーマンスを発揮できるかです。またこれまでの私と水田との会話もご覧いただきます。もう一つWeb特典として、エクスプローラページから直接パッケージを素早くダウンロードし、インストールでき、ニーズを使い始めやすくします。

OKですやってみましょう。完全右上水チャットのトップページから左上の水アイコンをクリックすると様々な機能が表示されますここでは時間の関係上、大親友RP3Dサンプルと必要なパッケージをインストール済みです早速インテリアで始めます。

新しいURP3Dサンプルプロジェクトです。このデモでは、ガーデンのシーンで作業します。なおチップやさてプロトタイプで求める見栄えや雰囲気を試すには、ミューズ的車を使って新しくマテリアを作ってみましょう。

その上でこの五つの岩の元の敵者を削除しましたアミューズを使えば、素早くプロトタイプを始め適切な立ちアピールを得られるのをお見せするためですトップニュースティッシュスタジアムインスペック社を開き、マテリアの生成を始めます。

メニューのミューズニューテクスチャージェネレーターをクリックしますこのパネルは好きな場所におけます。私の場合は、インスペクターのお隣に幅を広げて作業内容を見やすくしましたモデルの最新バージョンでは、木材、レンガコンクリートをレーザーなどゲームによく登場するマテリアルタイプの改善に努めています水滴者のインターフェースは非常に直感的でライムストーン石灰岩のようなプロンプトを入力し、このスライダーで生成される画像の量を1から10まで選択できます5から始めてみましょうか?あとは満足できるまで何回でもJanetボタンを押せばいいのですもう一つ便利なのは、画像入力機能です。

以前摂津Proフォルダに保存した画像をドラッグドロップしていますここですね。パイプは512掛け512ピクセルのPNGファイルです。変じゃないもう一度Jネットをクリックはいいつでも強度を上げてより大きなインパクトにできます。

ビルボードが高いほどインパクトも大きくなります。それはこの部分は開発者がとても頑張った機能で、はいは違うRISE初期の画像を追加して生成するテック社の方向性を的確にコントロールできるようにしました。このようにリファレンス画像を使いより正確にイメージに近づけられます。

内海これでいろいろなことができます繰り返し結果を変えていきますし、サムネイルのこの点三つのボタンをクリックすると、レファレンスに設定バリエーションを作成削除、エクスポートアップスケールなど様々なオプションがありますここではPBRマテリアルとして表示をクリックします数秒後、技術者が様々なマップを生成し始めますPBRマテリアルをダブルクリックすると、メタリックマップはいマップベースマップスムーズマップなどが表示されます。

IGポートはデフォルトで提案のプレビューは9面上になりますが、平面プレーンですね。9件中立方体に変更できます。他にも、屋内屋外昼夜などいろんな環境でマテリアルをプレビューしたり、皆美味しいまた環境の強度を変えたりできます。

S×Gデフォルトに戻しましょうここでは、医師岩を扱っているので、メタリックも雄娘SMAPも不要ですしかし、マウスの中ボタンを少しスクロールすると、はいとマップをしてテクスチャーをもう少し細かくすることができます満足できたらセットフォルダにドラッグドロップします。

全然違うそしてゲームオブジェクトにドラッグドロップすればこの通り、解析の人スペクターをクリックすると、コンポーネントのマテリアルを拡張して編集を続けることができます。NBAの舞台上舞台リングオフセット回転の停車ガイドマップの強度などお好きなように変更できます。

やはりピアノを石材のマテリアルはそれなそこにあらかじめ生成しておきましたボックスではいろんな岩に適用をしてみましょう。もう一度画面表示し作業内容を見ながらやりますできました数秒で水テクスチャーを使ってこれらのマテリアを全て変更できました。

車を夢を水石車を使うメリットは何でしょもちろん内アセットストアで何千もの客車が入ったセットパックをダウンロードすることもできます。しかし水滴者はより細かくコントロールしたり、特定の出力にしたいとき特に便利です。

何GBものアセットをダウンロードして選択する代わりに、全てエディター内で数秒で結果を得られます。リフォーム次に進む前に水テクスチャーで特に便利な機能あと二つ紹介しますゲームLoop後半でつぼう盗むことになります。

iPodそれをチェックしてみましょう。デフォルトのテクスチャーはあまりぱっとしません。新しい敵車を生成してみます笑移籍者に戻り、ウインターウィンドウをサイズを大きくします。ちょっとメインの先生ページに戻り、以前の入力画像を削除し、プロンプトをゴールドか何かに変更します。

なおこれで思い通りのものができるかも知れないしそうでない場合は最近あんだよDキャンパスをダブルクリックしてください。キーボードで2かBキーをクリックするか、ペイントブラシタイプペイントブラシボタンをクリックして半径を大きくしてください。

はいテクスチャーの特定箇所にペイントして一部ゾーンを変更できます。もう一度生成をJネットをクリックすると、横のリスト履歴に新しいバージョンが表示されます。ご覧の通り、ハイライトが薄くなっていますこれが気に入ったのでPRマテリアルにします。

なお岩ではないので、滑らかさとメタリックマップを上げて非常に滑らかになるまで高さを少し下げる必要もあります完璧ですもう一度アセスフォルダにドラッグアンドドロップします。ほんの数秒で金色の壺ができました。

などもう一つすごい昨日は白黒の定型画像をインポートしてシェイプを使用できることです。入力画像と同じゾーンでシェイプタブをクリックします。タイルのようにパターンがいくつかあらかじめ選択されています。プロンプトを金色のタイルに変更して、もう一度Enterをクリックします。

エンジンはこれが結果です。セクター時間節約のためこれら素材のいくつかをあらかじめ生成してあります。MTRこんな感じです。完璧です。なおテクスチャーとその関連機能が簡単に使えることを紹介したところで水スプライトを使ってシーンにアセットを追加したり調整したりする例も見てみましょう。

ミュースプライトはカスタマーセットを作って味わいあるシーンにするのに役立ちますこの例では、素早くゲームコンセプトで季節コンテンツを作成しますRP3Dサンプルにある素晴らしいデカール機能を使ってシンプルなツールで画像を使用して詳細を追加しプラットフォーム間でスムーズなパフォーマンスを維持しますここでギズモを実行すればCの様々なデカールを見ることができます。

この桜の木が床に花びらを落としています。しかし季節コンテンツを作る場合はどうでしょうそこをクリックしてみるとベースマップがただの2D画像だとわかります水スプライトであらかじめ画像をいくつか生成しておいたので秋の葉っぱと入力してお見せします。

これで完成ですほんの数秒でシーンの床全体を美しい2D画像に置き換えることができました。ビーズスプライトのおかげです。文田千冬ここまで水の機能三つを具体的に見てきました。では、テクスチャースプライトチャットでできることを簡単にしましょうテック社は自然言語プロンプトをすぐ使える参照画像を使用して、瞬時にPR的者を生成させてくれますスプライトはエディターで2Dアートを作成し、シーンに追加できるようにしますスタイルトレーナーを使えばゲームのタッチアピールに合わせられますチャットはUnity独自のデータを使って問題解決し、使えるコードを生成し、障害を克服するのに役立ちますまた、Web上でパッケージのダウンロードやインストールも行います以上簡単な復習でした。

エディターの話に戻し、ミッションをもう一度確認すると、ゲーム内でゲームループを検証し、新しい課題を導入することでした。ゲームループを作成し、生きたデモにするため家をパトロールするキャラクターを作り、壺周りのロジックを追加する必要がありますが水がアニメーションや動作の作成を手伝ってくれます。

ミュージアムミューズアニメとパッケージには2足歩行の人形をプレハブが付属しており節フォルダーからシーンに直接ドラッグアンドドロップできますカメラをガードを巡回させたい場所に配置します。フォルダーの中にはプレハブがそこにあります。

それをドラッグドロップするだけです。なお、ネット上ではアミューズアニメイトを開いてキャラクターのアニメーションをいくつか作ってみましょう。メニューメニューのミューズ次にNewアニメとジェネレーターをクリックここでフローティングウィンドウを横にドックできます。

横幅を大きくして、作業内容がわかるようにしますそして、フォワード謎だよなどと入力してみましょう。また、アセスを変えることもできます。4まであげましょうこのように数秒でテキストプロンプトで作らせた多くサイクルアニメーションができます各ネットにはいくつかの違いがありますもう少し面白いのも試しましょう。

酔っ払いが金を一直線に歩くとか、何でもいいよこういう感じですねそっちかあい他にもうゾンビ歩きとか、2便てさらにキャラクターをバク転させることもできます。なお、次に最初の歩行サイクルをデモ用に残しておきますまたパトロールが中断されたとき用にキャラクターに二つ目のアニメーションを付与します。

アラートプロンプトで試してみましょう。リスク良さそうですね。ごめんなさい。はい。完璧です。スピーチ機能としてはユーザーにメイトは主にプリプロダクションを対象にしており、主な目的はユーザーが迅速にアニメーションプロトタイプを作れるようにすることです。

3日分間のアニメーションを5分以内に作成するのが私達の大目標です。今はずっと長くかかっていますが、目標に大きく近づいており、本当に楽しみです。詰め以前Januaryミューズアニメイトでは、生成されたアニメーションの編集もできます。

迷宮エディタブルーコンバートとをクリックしボタンを押すとアニメーション全体が複数のセクションに分解されています。完璧です。だんだんで完了です。オレンジ色のボタンが見えますね。これはエフェクターと呼ばれますドラッグしたり動かしたり、回転させたりアニメーションの特定セクションの制度を設定したりできます。

今日はこれらの設定はあまり細かくしませんが、外装ポーズ最初のポーズ前のループトランジション持続時間などいろいろ遊べる機能があります木内は将来はさらにビデオ2モーションのドラフトツールも加えたりもしようと思います。

シュールベリオスマホで動画を作成し、アミューズメントで3Dアニメーションに変換することができます。今後ツールにはカスタマイズでアニメーションをカートゥーン調にしたり特定キャラクターを登場させて、ゲームプレイにフィットできるようにします。

不意打ちは現在アニメーションをアニメーションクリップとしてエクスポートできます。お好みをクリックしエクスポートをクリック設置フォルダに保存してください。INAは経済ここではアニメーションフォルダにウォーキングという名で保存します。

遠征日DCMXメカニズムのような雪エディターのアニメーションパイプラインともシームレスに統合できます水中でメーターでループ時間とループポーズをチェックしてアニメーションをループ可能にしましょう。グリーンスパン保存したアニメーションフォルダに移動します。

インスペクターを見てこれら二つのチェックボックスにチェックを入れます通常はアニメーターコントローラーを作りゲームオブジェクトにタッチする必要があります。しかし、インスペクターでアニメーションクリップをドラッグするだけでアニメーターコントローラーが自動的に作成され、ご覧の通り、アニメーターパネルのデフォルトにアサインされます。

ゲームオブジェクトをクリックしてみれば、ボックス作成したコントローラーをダブルクリックします。アニメーターウィンドウを下にドッキングさせれば、全てのウィンドウを同時に見ることができます。これでこのアニメーションがデフォルトとして設定されます。

目新しいパラメータを加え、トリガーと呼びましょう。後でbehaviorグラフを使ってアニメーションを手動でコントロールできるようアプライルートモーションは必ず無効にしておきます。もう一つのアニメーションクリップもアラートを常体ようにドラッグします。

Descriptionでパトロールとアラート可能状態トランジションを作成しましょう。アル中とミューズbehaviorで使用するトリガーパラメータを追加し、アラートと呼びます。これでこのトランジションが起こるタイミングを正確にコントロールできますトランジションをクリックすると、インスペクターウィンドウでさらに多くの設定を見れます。

Settingsメニューを展開し、Exitタイムを削除、トランジションの継続時間を0秒に設定しますこれでキャラクターが歩きから軽快に瞬時に変わります次にミューズbehaviorですbehaviorはデータを備えたビジュアルなリハビリツリーでAIの作成を簡素化します。

ビジュアルインターフェイスでbehaviorツリー作成管理ができます。そんな折そのため皆さんが会社であってもなくても、何もない状態から何らかの反復できるものを素早く作ることができます。ここではこれでパトロールシステムを実装しプレイヤーがパトロール中のガードに近づきすぎたら中断させます。

バス停最後にトリガー名と一緒に条件を追加するのを忘れないように完璧ですトビヘビグラフを作成から始めます。バッチや尻尾が切フォルダに戻り、右クリックしてクリエイトミューズbehaviorNewbehaviorグラフを名前はパトロールがボックスからダブルクリックしてWindowsが出ないようにします再度インスペクターの大人に属します。

では試せるデフォルトのモードが既にたくさんあります。パトロール濃度の手動追加にはスペースバーを押すが、右クリック後にaddをクリックし、パトロールと入力してリストを絞り込めます。アクションMoveパトロールでも見つけることができます。

ないトップフォームでバトルロードをスタートの土壌に作りますいくつかの設定の微調整を始めましょう。NQ興味があればいつでも濃度を右クリックして、その動作の行動を見ることもできます。はい。右クリックでエディットスクリプトFC前ベテラン開発者ならスクリプトを修正して追加することもできますし初心者ならスクープを読んで学ぶこともできます。

ただ大抵はビジュアルコードインターフェースだけで済ませます。ZSTエージェントエージェントタグをゲームオブジェクトに置き換え、デフォルトのセルフをガードに変更します。ファイルでこちらはポイントを置いPointsに設定しましょう。

新しいゲームオブジェクトのリストですこの場合ポイントは既にCに追加されていますこれらはとても基本的なゲームオブジェクトでから昔左右に一つずつあります。ガードがその間をパトロールします中枢圧で受ける後でインスペクターで追加できるようにスロットを追加しますスピードを1.5を頭に変えキャラクターが動き出せるようにしますポイントの待ち時間を削除敷地を0.5程度に上げガードが青いポイント間を瞬時に移動するようにします。

締め切ってましたグラフをゲームオブジェクトに割り当てますコントローラーをクリック奪いPED鬼速度をクリックbehaviorグラフエージェントというコンポーネントを追加そしてパトロールノードを割り当てます。

メッシュ次世代先ほどの二つの応援ポイント1と2をを選択します。残り本中ごめんなさい。はい完璧ですデバッグモードを有効にして心をテストし、リアルタイムで何が起こるか見ることもできます。再生ボタンを押せばガードに向かって動き始めます。

はい。動き歩きいたしました右側にあるようにこの濃度がアクティブである限り、永遠にループし続けますアニメーターでも歩行サイクルアニメーションがループし続けているのがわかります。ヘビや機能の開発を視覚的にできるようにしました。

デバッグモードでも濃度がアクティブになるために、はっきりとわかり、トラブルシュートをリアルタイムで行うこともできます。すごいです先ほどのPIグラフに新しい距離チェックノードを追加してみましょう。同クリックディスタンスと入力、新しいフローと変数を割り当てます。

ディスタンスおよびデフォルトを3に設定します。もう一つは新しいゲームオブジェクトこの場合、プレーヤーになります。ミューズbehaviorの新機能、ジェネとブランチfromテキストを使い、より多くのbehaviorを実装できます。

パトロールを中断し、警戒アニメーションを開始し、ガードがプレイヤーを見て語り掛けさせます。ジェネとボランチフォームチェックと右クリックしプロンプト入力します。動くエージェントにプレイヤーを見させ警戒アニメーションをトリガー起動警戒アラートと言わせろ先生ミューズジェネとAIをクリックし数秒待ちます濃度がまだない場合水平野がプレースホルダ濃度を作成してくれ、それを編集して独自のスクリプトを追加できます。

皆経営今回はまさに望んでいたことですので、このように修正しますかというフローティングウィンドウが表示されますので、満足するまで自然言語で水behaviorと繰り返しやり取りを重ねることができますもう完璧なので、能動正しい順に並べ替えますこの接続マイクスポンジのを削除してまずスイクン水濃度を参照にしますこれを横に動かしディスタンスチェック濃度を2番目にそして最後にパトロール濃度とあとはいくつか変数を割り当てるだけですといったように、エージェントがプレイヤーを見ます。

ガードですアニメーショントリガーを設定しますそこにあるようにアラートという名前にする必要があります。アニメーターがガードですポジティブに設定します。そしてエージェントいわゆるガードがアラートといいますClaudeです持続時間を10秒程度にするとより長く結果を見ることができますプレイヤーを新しいゲームオブジェクトとして割り当てますこれがURPサンプルCのプレイヤーカプセルです。

なるべくこれでテストの準備が整いました。上下違うデバッグモードを有効にして、何が起こっているのかを確認するのを忘れずによし再生ボタンを押しましょうなお、はいガードが歩いている間、横の水辺やグラフではパトロールロードがループし続けていますしかし3mの敷地内に入ってくると即座に止まり、新たにメイショントークなどが起動しますアクティブ率高くてもいいとわかりました完璧です。

素晴らしいですねはいさて成功シナリオの動きも作らなければなりません黄金のツボを盗むことですテキストプロンプト一つでbehaviorツリー全体を0から作れるか見てみましょう。つくば市スポーツアセットフォルダに戻ります右クリックでクリエイトMUSEbehaviorニューbehaviorグラフを選択しますサクセスと名付け、これをダブルクリックⅢができます。

では実際に最初からテキストからブランチを生成しますプロントで成功するまで繰り返しコロンです冒頭プレイヤーの距離がディスタンス以下であることを確認し、ツボに宿舎成功と言わせると指示します。YouTubeでもう一度融通でネイティブAIをクリックいっぱいはい出来ました。

あとはスタート濃度を頭にして、変数を代入するだけで新しいツリーなので、変数名を再度変更する必要があります。この場合、セルフはベースという何ターゲットがプレイヤーなので、新たにゲームオブジェクトも必要です。

システム付の総距離は浮動小数点形式のディスタンス3でインスタンス化します最後にツボが成功といいます持続時間は10秒に増やします次にインスペクターに入りツボを選択し、新しいNewサクセスというbehaviorグラフエージェントプレイヤーカプセルとプレイヤーを割り当てます。

準備ができたら、デバッグモードを起動しましょう。再生ボタンを押し、シナリオをテストします前進していくとガードはパトロールを続けます。今は見なくていいでしょうツボに近づくと成功とMやバウンサーこれでゲームのループが確認できましたすごい超クールです次はユーザーが待ち望んでいたエディター内のミューズチャットです。

そうやんじゃないにウィンドウを置くだけではなく、水チャットにプロジェクトを認識させる取り組みを始めました。これは水にとってとても大きな出来事です。メニューから水チャットを開いてみましょうミューズ次にチャットとクリックこのウィンドウをインスペクターの空に属させ、何が起きるかわかるようにします。

障害者が支援をクリックするとチャットウィンドウでも選択対象が変わります。ご近所遠藤ちゃん応援団ご覧のように水チャットが既にエディターで動作していますもうすぐ皆さんも使っていただきます。漫画シーンをクリックするたびに選択対象として追加され質問をすると選択対象が考慮されます。

それをそれでは水チャットを使って実行時に機能を追加するスクリプトを作ります例えばスペースキーを押せば、壺のテクスチャーを交換できるようにしましょう。水チャットに頼みます。ジェネリックスクリプトを生成せよ、特養など足スペースを押すたびに様々なPBRマテリアル順番に3Dオブジェクト上で、強替えられるようにチェック延長後大丈夫皆さんが水チャットを使う頃には、複数行の入力やコードのコピー機能が使えますこの後ご覧いただけます。

プロトタイピング良いですねプロトタイピングで仕事ははかどりますが、コントローラーでゲームプレーヤーテストが中断されることもあります今日はライブでものため、単純な例でこれをお見せします。水チャットからコードをコピーする際、わざと閉じ加工忘れてコンソールエラーを起こします。

ちょっと待ってまず選択します。7件最後の括弧はわざと入れません。SP入試新しいスクールを作成しましょう。右クリックでクリエイトCシャープスクリプトスワップマテリアルズと呼びます。さぼってダブルクリックして好みのIDEを開きます。

大丈夫です最後の括弧追加せず、もう一度全て置き換えますスクリプト名とあわせクラス名もスワップマテリアずに変更性保存小鉢そしてに戻ります。同じく予想通りコントローラーが起きました。50分明らかな間違いですけれども、アミューズに修正を依頼します。

クリックすると選択範囲がエラー名で更新されていますね。クリックして、どう修正すればいい。入手と入れれば水チャットがクリックのコンテキストを理解し、トラブルシュートを手伝ってくれます。冷えこのようにレスポンスの生成中メッセージで実際のエラーが書かれますつまり水チャットへの入力時のみならず、出力時にも、コンテキストを認識し、何について、なぜそうなるのかを明確にしてくれます。

完璧ですねでは、スクリプトに最後の括弧を追加しましょう。関係なく5GイブのIGIDEには私が間抜けだと思われましたけれどももう一度保存して人気エディターに戻ります。するとエラーが消えてますすごいですね別にそれではスクリプトをツボにアサインしますマテリアルを持つゲームオブジェクトを選択しスクリプトをその上にドラッグアンドドロップします金箔興味インスペクター運動を見てみると空のリストが見えます。

次は生成済みのマテリアルとテクスチャーです以前に生成したメタルを選択しますブロンズゴールドゴールドタイル敷きシルバーです。これらを直接マテリアルタイルにドラッグドロップします。テストする準備ができました。

スピードを少し落とし何が起こってるのかは、わかりやすくしました。歩き回りながらガードのアラートを取り出したり、51歳の人の中の家に入っていったり、フィギュア坪野サクセスをトリガしたりできますスペースを打つたびにマテリアルが変わりますよこのインスペクターの右下にも表示されます。

6日これでおっしゃった、Windows皆さんのプロジェクトではもっと複雑なエラーが起きるかもしれませんが、この単純な例でもいかに水チャットがコンソールのコンテクストを理解しエラーの特定やトラブルシュートを助けてくれそして救世主になれるかがわかりました。

さらにもっと楽しみなのは、まだ最初の水チャットを回しただけなのでこの後どんどんプロジェクトを認識し、エディターのより多くの部分をチャットに接続してくれます。ぜひ次にどんなトラブルシュートをしてほしいかインディのディスカッションで教えてくださいさて次に何が起きるのか、こっそりお見せしたいと思います。

それではお聞きください。今聞いてもらったのはMUSEサウンドで生産されたものですもうすぐ水に登場します。私達は生成AIではあまり注目されてこなかったメディアであるサウンドに注目しています。ゲームのプロトタイピングやリアルタイム体験に最適なツールを提供しようとしていますそこにはサウンドエフェクトも含まれています。

水サウンドを使ってクリエイターは意味も没入感もあるサウンド作り体験の次元を引き上げ、シーンに深みを持たせられます将来の機能を紹介したり水機能の更なる拡張に励んでいる一方、皆さんは今日お見せした機能を既に使えます。

睡眠ステージ上でもお見せしたように、エディターでアニメーションを作成適用できるのですからまた新しいモデルを実際に利用できます連絡者MPさんニーズチャット作業の流れの中で、よりプロジェクトを意識できるようにしてほしいという皆さんの声にお応えし、水チャートエディターで利用できるようにしました。

今後ますますプロジェクトを認識し、的確な応答ができるようになります。現在、水の全ての機能を開発のコンテキストで使えますさらにMUSEをより早く使い始めいただけるようにしたいと考えています。そのため音ボーディングを継続的に改善し、AI生成を素早く使い始めるよう努めています。

デモとは別に水が今どのように使われているか、いくつか例をお見せしたいと思います実際の水量のもう一例は当社の公認ソリューション今倍です。ルイボスAIゲーム内AIキャラクターに人間のような会話やインタラクションをさせます今回は、プレイヤーとNPC間の会話レベル向上のためmuziebehaviorで意思決定ツリーを設定し、NPCがより環境を認識するようにしました。

あなたはホテルの部屋で襲われ、意識を失いました。私はあなたを安全な場所に退避させ、そこから脱出させるために行きました。この後にロビーまで着いてくださいと思いました。ギャングの動向を教えてくれそれは秘密情報では君はその共有者リストに載ってない。

余計なことは考えるな。はい今日なんだ。注意書きはユグドラシルのホログラムの留守れる向きです。iPadアクセスケースの鍵を開けてSMGを出しておいたわけさ机から取って使わないときはホルスターにしまって、次は射撃場よ。

パチンコでもこのデモがすごいのはプレイヤーが知らないの様々なゲームオブジェクトを認識しているNPCと直接会話できることです。ゴミまた水behaviorがあれば動的なbehavior釣りを生成でき、これまでよりゲームの奥行きやインタラクションの幅が広がり、新しいシナリオや新たなゲームプレイが可能になります。

現在、次の例は、アセットストアのパブリッシャーネイチャーマニュファクチャラー者です彼らは左側に見えるこの城を3年がかりで作りました。通常ユーザーはアセットを使ってプロトタイプを作成する際、ゲームの立ちアピールに合うようアセットをカスタマイズします。

右の目は水滴社と当社の生成AIを使ってオリジナルアセットを再構築したものです後聞いた方がいいです。水滴車を使えば、ルクエフィールを簡単に変更したり、季節コンテンツをより短時間で作成できます中は天才栽培そうそう3DCGへのテクスチャー適用ということでは民主的社の未来を覗いてみましょう。

当社は独自の検証済み研究とモデルを通じてAIによる3Dオブジェクト用に本物のPBRマテリアルを先制する方法を開発しました。オブジェクトに直接ラップできる指的者を出力作成でき、ライティングにもより正確に対応します。

水滴者のアップデートとして、今年後半にリリースされる予定で3D対応テクスチャーをプロンプトや画像から作るになります。水はクリエイターに役立つAIを提供し、作業の効率化や使いやすさ改善を目指しています。

コーディングOUT製作レベルのデザインなどを皆さんが情熱を持って最も楽しいことに集中していただきたいのですそのため水の機能をセットこれからも引き続き改善し皆さんのフィードバックに耳を傾けますっていた。

しかもこれからのエディターの誤りの始まりに過ぎないのです。まだまだたくさんのエキサイティングで面白い機能を計画中です。Wi-Fiこれらの改善に加え、新規ユーザーもクレジットカード情報なしでも水の捕らえるできるようにしました。

また音ボーディングの流れ全体を改善し、水でより早く制作を始めるようにしています最後に私の甥の俺のように叔母の都合ですぐに来てもらえないような場合でも、乳児なら皆さんをサポートしてくれます。私達の開発は皆さんがよりスピーディーにプロトタイプを作成し、貴重な時間を取り戻し、自分のビジョンを膨らませ、新しくエキサイティングな経験を世界と共有していただけるよう努めています。

Unity6の中にあるsampleを翻訳

Contexts & Data Flow

This VFX is intended to provide an overview and basic understanding of how data flow is articulated in VFX Graph.
It also presents an overview of the most frequently used Context Blocks.

Covered Aspects:

  • Data Flow
  • Context Block

↓ 【直訳(Google翻訳)】

コンテキストとデータフロー

この VFX は、VFX Graph でデータ フローがどのように表現されるかについての概要と基本的な理解を提供することを目的としています。
また、最も頻繁に使用されるコンテキスト ブロックの概要も示します。

対象とする側面:

データ フロー
コンテキスト ブロック

Spawn Context

This VFX is intended to provide information related to the Spawn Context.
What is the Spawn Context, what options can be found in the inspector
but also extra informations like:
 What are Spawn Event Attributes?
 How to setup Spawn Event Attributes?
 What is the Spawn State Operator.

Covered Aspects:

  • Spawn Context
  • Spawn Event Attributes
  • Spawn State

↓ 【直訳(Google翻訳)】

スポーンコンテキスト

この VFX は、スポーン コンテキストに関連する情報を提供することを目的としています。
スポーン コンテキストとは何か、インスペクターにはどのようなオプションがあるか
また、次のような追加情報もあります:
スポーン イベント属性とは何か?
スポーン イベント属性の設定方法?
スポーン状態演算子とは何か。

対象とする側面:

  • Spawn Context(スポーン コンテキスト)
  • Spawn Event Attributes(スポーン イベント属性)
  • Spawn State(スポーン状態)

Capacity Count

Capacity Count is used for the particle Memory allocation of a system.
Increasing this number will increase the memory allocated.
This capacity can be seen as the max active particles.it’s a good practice to keep this number as close as possible to the Maximum alive particles.
This VFX explains what capacity is and how to use the VFX Control to set the Capacity.

Covered Aspects:

  • Capacity
  • Memory allocation
  • VFX Control

↓ 【直訳(Google翻訳)】

容量数

容量カウントは、システムのパーティクル メモリ割り当てに使用されます。
この数値を増やすと、割り当てられるメモリが増加します。
この容量は、最大アクティブ パーティクル数と見なすことができます。この数値を最大アクティブ パーティクル数にできるだけ近づけておくことをお勧めします。
この VFX では、容量とは何か、および VFX コントロールを使用して容量を設定する方法について説明します。

対象とする側面:

  • Capacity(容量)
  • Memory allocation(メモリ割り当て)
  • VFX Control(VFX コントロール)

Multiple Outputs

The output context is where everything related to the rendering part of particles is done.
You can render particles as billboard quads, meshes, points, decals, etc…
This VFX Graph shows how you can add several outputs to render each particle multiple times.

Covered Aspects:

  • Output Context
  • Composition Mode

↓ 【直訳(Google翻訳)】

複数の出力

出力コンテキストは、パーティクルのレンダリング部分に関連するすべての処理が行われる場所です。
パーティクルをビルボード クワッド、メッシュ、ポイント、デカールなどとしてレンダリングできます。
この VFX Graph は、複数の出力を追加して各パーティクルを複数回レンダリングする方法を示しています。

対象とする側面:

  • Output Context(出力コンテキスト)
  • Composition Mode(コンポジション モード)

Bounds

The Bounds are used to cull the VFX when it’s not in the camera frustum.
Bounds can be manually or automatically set.
The VFX Bound is the cumulative Bounds of each System within a VFX Graph.
In this example, the Bounds aren’t properly set up, so the particles aren’t rendering correctly.
Don’t hesitate to open the VFX to correctly set the Bounds.

Covered Aspects:

  • Bounds
  • Culling

↓ 【直訳(Google翻訳)】

境界

境界は、カメラのフラスタム内にないときに VFX をカリングするために使用されます。
境界は手動でも自動でも設定できます。
VFX 境界は、VFX グラフ内の各システムの累積境界です。
この例では、境界が適切に設定されていないため、パーティクルが正しくレンダリングされません。
境界を正しく設定するには、ためらわずに VFX を開いてください。

カバーされている側面:

  • Bounds(境界)
  • Culling(カリング)

Orient Face Camera

Whether the output is set to quads, meshes, or even strips, we often want to control how the geometry is oriented on a particle.
Should it face the camera?
What is the forward and/or up-axis?
The Orient Block helps us to easily orient our particles with its various modes.
In this example, we’re using the Face Camera Position mode, which will ensure that the particles are always facing the Camera position.

Covered Aspects:

  • Orient
  • AxisX AxisY AxisZ

↓ 【直訳(Google翻訳)】

オリエントフェイスカメラ

出力が四角形、メッシュ、またはストリップのいずれに設定されている場合でも、パーティクル上のジオメトリの向きを制御する必要があることがよくあります。
カメラに面する必要がありますか?
前方軸と上軸は何ですか?
Orient ブロックは、さまざまなモードでパーティクルの向きを簡単に設定するのに役立ちます。
この例では、Face Camera Position モードを使用しており、パーティクルが常にカメラの位置を向くようにします。

カバーされている側面:

  • Orient(方向)
  • AxisX AxisY AxisZ(軸X 軸Y 軸Z)

Orient Fixed Axis

Whether the Output is set to Quads, Meshes, or even Strips, we often want to control how to orient the geometry on a particle.
Should it be facing the camera?
What is the forward or Up-Axis?
The Orient Block helps us to easily orient our particles, as it comes with several modes.
This example shows how to use the Fixed Axis mode.

Covered Aspects:

  • Orient
  • AxisX AxisY AxisZ
  • Custom Attribute

↓ 【直訳(Google翻訳)】

固定軸の方向

出力が四角形、メッシュ、またはストリップのいずれに設定されている場合でも、パーティクル上のジオメトリの向きを制御する必要があることがよくあります。
カメラに面する必要がありますか?
前方軸または上軸とは何ですか?
方向ブロックにはいくつかのモードが用意されているため、パーティクルの向きを簡単に設定できます。
この例では、固定軸モードの使用方法を示します。

カバーされている側面:

  • Orient(方向)
  • AxisX AxisY AxisZ(軸X 軸Y 軸Z)
  • Custom Attribute(カスタム属性)

Orient Advanced

Whether the Output is set to Quads, Meshes, or even strips, we often want to control how to orient the geometry on a particle. Should it be facing the camera?
What is the forward or Up-Axis?
The Orient Block helps us to easily orient our particles as it comes with many handy modes.
This example shows how to use the Advanced Mode.

Covered Aspects:

  • Orient
  • AxisX AxisY AxisZ

↓ 【直訳(Google翻訳)】

オリエントアドバンス

出力が四角形、メッシュ、またはストリップのいずれに設定されている場合でも、パーティクル上のジオメトリの向きを制御する必要があることがよくあります。
カメラに面する必要がありますか?
前方軸または上軸とは何ですか?
Orient ブロックには多くの便利なモードが付属しているため、パーティクルの向きを簡単に設定できます。
この例では、詳細モードの使用方法を示します。

カバーされている側面:

  • Orient(方向)
  • AxisX AxisY AxisZ(軸X 軸Y 軸Z)

Rotation & Angle

It’s often really useful to be able to rotate particles.
This VFX shows how to rotate particles thanks to the Angle attribute.

Covered Aspects:

  • Rotation
  • Angle attribute
  • Pivot attribute

↓ 【直訳(Google翻訳)】

回転と角度

パーティクルを回転できると非常に便利なことがよくあります。
この VFX は、角度属性を使用してパーティクルを回転する方法を示しています。

対象とする側面:

  • Rotation(回転)
  • Angle attribute(角度属性)
  • Pivot attribute(ピボット属性)

Rotation & Angular Velocity

The Particle’s rotation can be controlled by setting the angle attribute.
To get more realistic behavior, you can also, like in this example, use the angular velocity.
This attribute is usually set in the Initialize Context, and then, the Update Context is responsible for integrating this angular velocity to update the rotation.

Covered Aspects:

  • Angular Velocity
  • Angle
  • Update Rotation

↓ 【直訳(Google翻訳)】

回転と角速度

パーティクルの回転は、角度属性を設定することで制御できます。
よりリアルな動作を得るには、この例のように、角速度を使用することもできます。
この属性は通常、初期化コンテキストで設定され、その後、更新コンテキストがこの角速度を統合して回転を更新します。

カバーされる側面:

  • Angular Velocity(角速度)
  • Angle(角度)
  • Update Rotation(回転の更新)

TexIndex Attribute

It’s quite common for VFX artists to rely on sprite sheets.
This VFX shows how to use UVs options in the Output to use a sprite sheet.
It also explains how to set up the Flipbook Settings and its relationship with the texindex attribute.

Covered Aspects:

  • TexIndex Attribute
  • UVS Mode
  • Flipbook

↓ 【直訳(Google翻訳)】

TexIndex 属性

VFX アーティストがスプライト シートに頼るのはよくあることです。
この VFX では、出力の UV オプションを使用してスプライト シートを使用する方法を示します。
また、フリップブック設定の設定方法と、その設定と texindex 属性の関係についても説明します。

対象とする側面:

  • TexIndex Attribute(TexIndex 属性)
  • UVS Mode(UVS モード)
  • Flipbook(フリップブック)

Flipbook Mode

This VFX shows how to set up the UVs mode of the Output to Flipbook to use a Sprite sheet.
It also shows the differences of using Flipbook Blend Frames and a basic usage of the Flipbook Player Block.
Flipbook Blend Frames setting allows interpolation between the frames.
This can help to get smoother looking animation.

Covered Aspects:

  • Flipbook Player
  • UVS Mode
  • TexIndex Attribute

↓ 【直訳(Google翻訳)】

フリップブックモード

この VFX では、スプライト シートを使用するために、Flipbook への出力の UV モードを設定する方法を示します。
また、Flipbook ブレンド フレームの使用の違いと、Flipbook プレーヤー ブロックの基本的な使用法も示します。
Flipbook ブレンド フレーム設定により、フレーム間の補間が可能になります。
これにより、より滑らかなアニメーションを実現できます。

対象とする側面:

  • Flipbook Player(Flipbook プレーヤー)
  • UVS Mode(UVS モード)
  • TexIndex Attribute(TexIndex 属性)

Flipbook Blending

This VFX illustrates the differences between a traditional frame blending and a frame blending using motion vectors.
Motion vector blending uses a texture to describe the pixel displacement between two frames.
This allows for a very smooth transition between frames, which can be extremely useful for reducing the number of frames in a flipbook or for doing slow-motion.

Covered Aspects:

  • Flipbook Player
  • UVs Mode
  • TexIndex Attribute

↓ 【直訳(Google翻訳)】

フリップブックブレンディング

この VFX は、従来のフレーム ブレンディングとモーション ベクトルを使用したフレーム ブレンディングの違いを示しています。
モーション ベクトル ブレンディングでは、テクスチャを使用して 2 つのフレーム間のピクセル変位を記述します。
これにより、フレーム間の非常にスムーズな遷移が可能になり、フリップブックのフレーム数を減らしたり、スローモーションを実行したりするのに非常に役立ちます。

対象とする側面:

  • Flipbook Player(フリップブック プレーヤー)
  • UVs Mode(UV モード)
  • TexIndex Attribute(TexIndex 属性)

TexIndex Advanced

This complex VFX is composed of several systems that are playing with the texindex attribute creatively.
Time, noise, and even particle position are used to control the texindex attribute and give life to this VFX.

Covered Aspects:

  • Flipbook UVs
  • TexIndex Attribute
  • Flipbook Player

↓ 【直訳(Google翻訳)】

TexIndex アドバンス

この複雑な VFX は、texindex 属性をクリエイティブに操作する複数のシステムで構成されています。
時間、ノイズ、さらにはパーティクルの位置を使用して texindex 属性を制御し、この VFX に命を吹き込みます。

対象とする側面:

  • Flipbook UVs(フリップブック UVs)
  • TexIndex Attribute(TexIndex 属性)
  • Flipbook Player(フリップブック プレーヤー)

Pivot Attribute

The pivot attribute controls where the output render is instantiated regarding the particle position.
By default, the pivot is centered on the Particle’s Position.
But you can offset it on any axis (XYZ). Offsetting the pivot can be extremely helpful as it can lead to appealing motion when doing scaling or rotation.

Covered Aspects:

  • Pivot Attribute
  • Angle attribute

↓ 【直訳(Google翻訳)】

ピボット属性

ピボット属性は、パーティクルの位置に関して出力レンダリングがインスタンス化される場所を制御します。
デフォルトでは、ピボットはパーティクルの位置を中心に配置されます。
ただし、任意の軸 (XYZ) にオフセットできます。ピボットをオフセットすると、スケーリングや回転を行うときに魅力的な動きが得られるため、非常に役立ちます。

カバーされている側面:

  • Pivot Attribute(ピボット属性)
  • Angle attribute(角度属性)

Pivot Advanced

Controlling the Pivot of a particle is a key aspect to unlocking interesting motion.
This VFX gives an example of Pivot manipulation.
Here the petals, leafs and spikes of the flower are all particles.
The Pivot attribute is controlled and sometimes animated to be able to properly locate and animate the particles.
This example also demonstrates the Shader Graph integration and how you can control a Shader Graph through VFX Graph.

Covered Aspects:

  • Pivot Attribute
  • Shader Graph integration
  • Activation Port

↓ 【直訳(Google翻訳)】

ピボットアドバンス

パーティクルのピボットを制御することは、興味深い動きを実現するための重要な要素です。
この VFX は、ピボット操作の例を示しています。
ここでは、花びら、葉、花穂はすべてパーティクルです。
ピボット属性は制御され、パーティクルを適切に配置してアニメーション化できるようにアニメーション化されることもあります。
この例では、シェーダー グラフの統合と、VFX グラフを通じてシェーダー グラフを制御する方法も示しています。

カバーされている側面:

  • Pivot Attribute(ピボット属性)
  • Shader Graph integration(シェーダー グラフの統合)
  • Activation Port(アクティベーション ポート)

Sample Mesh

This VFX gives an example of how to sample a Mesh to spawn particles on its surface and inherit its Vertex Color of the Mesh.
Ambient Occlusion has been baked into the vertex color of the Mesh and is used to set the particle’s color

Covered Aspects:

  • Mesh Sampling
  • Sample Mesh Operator

↓ 【直訳(Google翻訳)】

サンプルメッシュ

この VFX は、メッシュをサンプリングしてその表面にパーティクルを生成し、メッシュの頂点カラーを継承する方法の例を示します。
アンビエント オクルージョンはメッシュの頂点カラーにベイクされており、パーティクルの色を設定するために使用されます

カバーされている側面:

  • Mesh Sampling(メッシュ サンプリング)
  • Sample Mesh Operator(サンプル メッシュ オペレーター)

Sample Texture2D

This VFX demonstrates how to use the texture2D sample operator to determine the color of particles and perform rejection sampling.
We spawn particles in a 2D grid fashion and use their XY coordinates to sample the texture.
We then kill the particles based on a threshold value of the sampled texture values.

Covered Aspects:

  • Texture2D Sample Operator
  • Alive attribute
  • Rejection Sampling

↓ 【直訳(Google翻訳)】

サンプルテクスチャ2D

この VFX は、texture2D サンプル演算子を使用してパーティクルの色を決定し、拒否サンプリングを実行する方法を示しています。
パーティクルを 2D グリッド形式で生成し、その XY 座標を使用してテクスチャをサンプリングします。
次に、サンプリングされたテクスチャ値のしきい値に基づいてパーティクルをキルします。

対象とする側面:

  • Texture2D Sample Operator(Texture2D サンプル演算子)
  • Alive attribute(Alive 属性)
  • Rejection Sampling(拒否サンプリング)

Sample Signed Distance Field (SDF)

A signed distance field (SDF) is a technique used to efficiently represent the shape and contours of 2D or 3D objects. It allows us to calculate the distance from any point in space to the nearest point on the object’s surface.
This VFX demonstrates how to sample an SDF to have particles crawling on the surface of a mesh.
Note that an SDF Baker tool is provided:
Window->Visual Effects->Utilities->SDF Bake Tool

Covered Aspects:

  • SDF Sample Operator
  • Conform to SDF
  • Strip/trails

↓ 【直訳(Google翻訳)】

サンプル符号付き距離場 (SDF)

符号付き距離フィールド (SDF) は、2D または 3D オブジェクトの形状と輪郭を効率的に表現するために使用される手法です。これにより、空間内の任意の点からオブジェクトの表面上の最も近い点までの距離を計算できます。
この VFX は、SDF をサンプリングしてメッシュの表面上をパーティクルが這うようにする方法を示します。
SDF ベイク ツールが提供されていることに注意してください:
ウィンドウ -> ビジュアル エフェクト -> ユーティリティ -> SDF ベイク ツール

カバーされている側面:

  • SDF Sample Operator(SDF サンプル オペレーター)
  • Conform to SDF(SDF に準拠)
  • Strip/trails(ストリップ/トレイル)

Sample Skinned Mesh

Sampling a skinned mesh enables you to get a lot of information from it, like surface position, vertex colors, UVs, Normals, Velocity etc.
This basic example shows how to sample a Skinned Mesh and spawn particles on its surface.
We’re also getting the UVs of the Skinned Mesh to sample the same texture that the Mesh is using so that we can drive where to spawn feathers on our creature’s back.

Covered Aspects:

  • SkinnedMesh Sample Operator
  • Texture2D Sample Operator
  • Set position SkinnedMesh

↓ 【直訳(Google翻訳)】

サンプルスキンメッシュ

スキンメッシュをサンプリングすると、表面の位置、頂点の色、UV、法線、速度など、多くの情報を取得できます。
この基本的な例では、スキンメッシュをサンプリングしてその表面にパーティクルを生成する方法を示します。
また、スキンメッシュの UV を取得して、メッシュが使用しているのと同じテクスチャをサンプリングし、クリーチャーの背中のどこに羽毛を生成するかを決定します。

対象とする側面:

  • SkinnedMesh Sample Operator(SkinnedMesh サンプル演算子)
  • Texture2D Sample Operator(Texture2D サンプル演算子)
  • Set position SkinnedMesh(SkinnedMesh の位置を設定する)

Collision Properties

As VFX Graph is simulating particles on the GPU, they cannot collide with regular Rigid Body Colliders.
But you can still make them collide with different geometry approximations like Boxes, Spheres, Cones, Planes or even complex shapes with the use of SDF and/or Depth Buffer. This VFX Graph, shows the use of a standard Collider Block and how the different Collision Properties like Bounce, Friction and/or Roughness can influence the collision response of the particles.

Covered Aspects:

  • Collision Properties
  • Collider Blocks

↓ 【直訳(Google翻訳)】

衝突プロパティ

VFX Graph は GPU 上でパーティクルをシミュレートするため、通常のリジッド ボディ コライダーと衝突することはできません。
ただし、SDF や深度バッファーを使用すれば、ボックス、球、円錐、平面、さらには複雑な形状など、さまざまなジオメトリ近似値と衝突させることは可能です。この VFX Graph は、標準のコライダー ブロックの使用方法と、バウンス、摩擦、粗さなどのさまざまな衝突プロパティがパーティクルの衝突応答にどのように影響するかを示しています。

対象とする側面:

  • Collision Properties(衝突プロパティ)
  • Collider Blocks(コライダー ブロック)

Collision Simple

As VFX Graph is simulating particles on the GPU, they cannot collide with regular Rigid Body Colliders.
But you can still make them collide with different geometry approximations like Boxes, Spheres, Cones, Planes or even complex shapes with the use of SDF and/or Depth Buffer.
This example shows you how to combine different collider blocks to get the desired results.

Covered Aspects:

  • Collision Properties
  • Collider Blocks
  • Boolean Port

↓ 【直訳(Google翻訳)】

衝突シンプル

VFX Graph は GPU 上でパーティクルをシミュレートするため、通常のリジッド ボディ コライダーと衝突することはできません。
ただし、SDF や深度バッファーを使用すれば、ボックス、球、円錐、平面、さらには複雑な形状など、さまざまなジオメトリ近似値と衝突させることは可能です。
この例では、さまざまなコライダー ブロックを組み合わせて目的の結果を得る方法を示します。

対象とする側面:

  • Collision Properties(衝突プロパティ)
  • Collider Blocks(コライダー ブロック)
  • Boolean Port(ブール ポート)

Collision Advanced

As VFX Graph is simulating particles on the GPU, they cannot collide with regular Rigid Body Colliders.
But you can still make them collide with different geometry approximations like Boxes, Spheres, Cones, Planes or even complex shapes with the use of SDF and/or Depth Buffer.
Sometimes using simple collision shapes isn’t enough to get a precise enough collision with the environment.
In this case, using SDF can be a good solution to approximate complex geometry like this sculpture of a hand.

Covered Aspects:

  • Collision Properties
  • SDF Collider

↓ 【直訳(Google翻訳)】

衝突高度化

VFX Graph は GPU 上でパーティクルをシミュレートするため、通常のリジッド ボディ コライダーとは衝突できません。
ただし、SDF や深度バッファを使用すれば、ボックス、球、円錐、平面、さらには複雑な形状など、さまざまなジオメトリ近似値と衝突させることは可能です。
単純な衝突形状を使用するだけでは、環境との衝突を正確に行うのに十分でない場合があります。
この場合、SDF を使用すると、この手の彫刻のような複雑なジオメトリを近似できる優れたソリューションになります。

対象とする側面:

  • Collision Properties(衝突プロパティ)
  • SDF Collider(SDF コライダー)

Trigger Event on Collide

This VFX is displaying an advanced usage of the Trigger Event on Collide block that allows us to spawn new particles when a particle collides. Dart particles are thrown at the dartboard.
When they collide, they instantaneously die and trigger different GPU Events.
Those GPU Events are used to spawn new particles, like the Springy darts or the UI Score particles, that all inherit attributes from their parent.

Covered Aspects:

  • Trigger Event on Collide
  • GPU Events
  • Source Attribute

↓ 【直訳(Google翻訳)】

衝突時にイベントをトリガー

この VFX は、衝突時に新しいパーティクルを生成できる、衝突時にイベントをトリガーするブロックの高度な使用法を示しています。ダーツ パーティクルはダーツボードに投げられます。
衝突すると、即座に消滅し、さまざまな GPU イベントがトリガーされます。
これらの GPU イベントは、Springy ダーツや UI スコア パーティクルなどの新しいパーティクルを生成するために使用されます。これらのパーティクルはすべて、親から属性を継承します。

対象とする側面:

  • Trigger Event on Collide(衝突時にイベントをトリガー)
  • GPU Events(GPU イベント)
  • Source Attribute(ソース属性)

Decal Particles

Decal is powerful tool that can add a lot of visual complexity to an environment.
We can use decals to project textures on the environment and even on dynamic objects or skinned meshes.
Output Decals allow you to render particles as decals and to project its properties onto a surface using a Base Color map (albedo), a Normal Map, or a Mask Map.
This example shows how to leverage the Output Decal to stick and project animated decals onto an animated skinned mesh renderer.

Warning:
For this feature to work in URP, make sure to add an Decal Renderer Feature in your URP Renderer Data file.

Covered Aspects:

  • Skinned Mesh Position
  • Output Decals HDRP
  • Output Decals URP

↓ 【直訳(Google翻訳)】

デカール粒子

デカールは、環境に視覚的な複雑さを大幅に追加できる強力なツールです。
デカールを使用して、環境や動的オブジェクト、スキンメッシュにテクスチャを投影できます。
出力デカールを使用すると、パーティクルをデカールとしてレンダリングし、ベースカラーマップ (アルベド)、法線マップ、またはマスクマップを使用してそのプロパティをサーフェスに投影できます。
この例では、出力デカールを活用して、アニメーション化されたデカールをアニメーション化されたスキンメッシュレンダラーに貼り付けて投影する方法を示します。

警告:
この機能を URP で動作させるには、URP レンダラーデータファイルにデカールレンダラー機能を追加してください。

カバーされている側面:

  • Skinned Mesh Position(スキンメッシュの位置)
  • Output Decals HDRP(出力デカール HDRP)
  • Output Decals URP(出力デカール URP)

Strip Properties

You can use Strips, also known as Ribbons or Trails, to create a wide range of VFX.
The Strip Ouput Context and Strip particle data allow you to draw a quad between each particle. This example demonstrates a straightforward Strip setup. It explains the various strip properties and attributes that control its visual appearance and behavior.

Covered Aspects:

  • Strip Output Context
  • Particle Index in Strip
  • Particle Count in Strip
  • Strip Index

↓ 【直訳(Google翻訳)】

ストリッププロパティ

リボンまたはトレイルとも呼ばれるストリップを使用して、さまざまな VFX を作成できます。
ストリップ出力コンテキストとストリップ パーティクル データを使用すると、各パーティクルの間に四角形を描画できます。この例では、簡単なストリップ設定を示します。ストリップの外観と動作を制御するさまざまなストリップ プロパティと属性について説明します。

カバーされている側面:

  • Strip Output Context(ストリップ出力コンテキスト)
  • Particle Index in Strip(ストリップ内のパーティクル インデックス)
  • Particle Count in Strip(ストリップ内のパーティクル数)
  • Strip Index(ストリップ インデックス)

Strip Spawn Rate

There are several ways to spawn particles, and when dealing with strips, this can have some implications for how you need to set up your VFX.
This example shows you how to make a single trail out of a continuous spawn rate of particles.

Covered Aspects:

  • Strip Output Context
  • Strip Index
  • Attribute Locations

↓ 【直訳(Google翻訳)】

ストリップスポーン率

パーティクルを生成する方法はいくつかありますが、ストリップを扱う場合、VFX の設定方法に影響を及ぼす可能性があります。
この例では、パーティクルの連続生成レートから単一のトレイルを作成する方法を示します。

対象とする側面:

  • Strip Output Context(ストリップ出力コンテキスト)
  • Strip Index(ストリップ インデックス)
  • Attribute Locations(属性の場所)

Multi-Strip SpawnRate

There are several ways to spawn particles, and when dealing with strips, this can have some implications for how you need to set up your VFX.
This example shows you how to make multiple trails out of a continuous spawn rate of particles

Covered Aspects:

  • Strip Output Context
  • Strip Index

↓ 【直訳(Google翻訳)】

マルチストリップ スポーンレート

パーティクルを生成する方法はいくつかありますが、ストリップを扱う場合、VFX の設定方法に影響を及ぼす可能性があります。
この例では、パーティクルの連続生成レートから複数のトレイルを作成する方法を示します

対象とする側面:

  • Strip Output Context(ストリップ出力コンテキスト)
  • Strip Index(ストリップ インデックス)

Multi-Strip Single Burst

There are several ways to spawn particles, and when dealing with strips, this can have some implications for how you need to set up your VFX.
This example shows you how to make multiple trails with one single burst of particles.

Covered Aspects:

  • Strip Output Context
  • Strip Index

↓ 【直訳(Google翻訳)】

マルチストリップシングルバースト

パーティクルを生成する方法はいくつかありますが、ストリップを扱う場合、これは VFX の設定方法に影響を及ぼす可能性があります。
この例では、1 回のパーティクルのバーストで複数のトレイルを作成する方法を示します。

対象とする側面:

  • Strip Output Context(ストリップ出力コンテキスト)
  • Strip Index(ストリップ インデックス)

Multi-Strip Periodic Burst

There are several ways to spawn particles, and when dealing with strips, this can have some implications for how you need to set up your VFX.
This example shows you how to make a new trail for each periodic burst within a single system.

Covered Aspects:

  • Strip Output Context
  • Strip Index

↓ 【直訳(Google翻訳)】

マルチストリップ周期バースト

パーティクルを生成する方法はいくつかありますが、ストリップを扱う場合、これは VFX の設定方法に影響を及ぼす可能性があります。
この例では、単一のシステム内で周期的なバーストごとに新しいトレイルを作成する方法を示します。

対象とする側面:

  • Strip Output Context(ストリップ出力コンテキスト)
  • Strip Index(ストリップ インデックス)

Strip GPU-Event

There are several ways to spawn particles, and when dealing with strips, this can have some implications for how you need to set up your VFX.
Using GPU trigger events is often the most straightforward way of creating strips.
This example shows an example of a growing mushroom’s VFX, with the mushroom’s hat being particle meshes and the mushroom’s foot made with particle strips.

Covered Aspects:

  • Strip Output Context
  • Strip Index
  • Trigger Event Rate
  • GPU Events

↓ 【直訳(Google翻訳)】

GPUイベントの削除

パーティクルを生成する方法はいくつかありますが、ストリップを扱う場合、これは VFX の設定方法に影響を及ぼす可能性があります。
GPU トリガー イベントを使用するのが、ストリップを作成する最も簡単な方法であることがよくあります。
この例では、成長するキノコの VFX の例を示します。キノコの帽子はパーティクル メッシュで、キノコの足はパーティクル ストリップで作られています。

対象とする側面:

  • Strip Output Context(ストリップ出力コンテキスト)
  • Strip Index(ストリップ インデックス)
  • Trigger Event Rate(トリガー イベント レート)
  • GPU Events(GPU イベント)

Multi-StripsGPU-Event

There are several ways to spawn particles, and when dealing with strips, this can have some implications for how you need to set up your VFX.
This example illustrates how to circumvent the usual limitation that only permits the creation of one strip per parent’s particle when dealing with Trigger Events.
Each headphone jack is made of a particle mesh and spawns particles along its path.

Covered Aspects:

  • Strip Output Context
  • Strip Index

↓ 【直訳(Google翻訳)】

マルチストリップGPUイベント

パーティクルを生成する方法はいくつかありますが、ストリップを扱う場合、これは VFX の設定方法に影響を及ぼす可能性があります。
この例では、トリガー イベントを扱うときに、親のパーティクルごとに 1 つのストリップしか作成できないという通常の制限を回避する方法を示します。
各ヘッドフォン ジャックはパーティクル メッシュで構成され、そのパスに沿ってパーティクルを生成します。

カバーされている側面:

  • Strip Output Context(ストリップ出力コンテキスト)
  • Strip Index(ストリップ インデックス)
タイトルとURLをコピーしました