У нас вы можете посмотреть бесплатно 【VRChat】第102回Houdini勉強会 テーマ:生き物【発表者:nekoco】 или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
スイミーシステムの作成 インスピレーション  大阪・関西万博 「いのち動的平衡館」  このような方法を用いればVRCでもボリュームのような表現が可能なのでは? ボリューム判定処理 AIに聞いてみた 1. プログラムで判定する(高速なのでオススメ) 2. VDBで積集合を取る(遅いのであまりオススメではない) 3. Booleanで積集合を取る(VDBよりもっと遅い) VEX AIに聞いて実装してみた ![[Pasted image 20250420152149.png]] 球体の周りのBoxだけ表示させたいのに、よく分からないことになっている 修正したいが、プログラムが長すぎて理解できなかったので断念 VDB オブジェクト同士の積集合を取って、その体積を求める とても理解しやすいアルゴリズム 3次元の格子状に単位Boxを配置 各格子をFor文で回して、対象オブジェクトと積集合を取る どちらもVDBに変換してからVDB Combineで取得(SDF Intersection) Measureで体積を取得し、Box自体の体積と比率を取る (格子状にオブジェクトが分断されている図) ![[Pasted image 20250420152640.png]] これで各ボクセルに対しての密度が求まり、その情報を各Point Attributeに書き込む 処理速度はやっぱり遅かった 3500頂点・120フレームの情報を書き出すのに、10分ほど OpenVDBの情報にアクセス VDBはボクセル状に情報を持っているはずなので、それにアクセスすれば計算がほぼ必要ない VDB用のPythonライブラリが存在する [hou.VDB](https://www.sidefx.com/ja/docs/houdin...) チュートリアル [VDB, Voxels, and Python in Houdini - YouTube]( • VDB, Voxels, and Python in Houdini ) 高速で処理できるようになった 3500頂点・120フレームの情報を書き出すのに、1分弱 格子の移動 格子位置が固定だと面白くない(3Dテクスチャを使用すればよい) Boidsで移動するようにした 頂点位置に対して、近傍ボクセルの密度を取得できるようなシステムなので、簡単に対応できた Houdini Boidsチュートリアル [\[Houdini Tutorial\] 0035 Swarm Intelligence (Slow version) - YouTube]( • [Houdini Tutorial] 0035 Swarm Intelligence... ) Labs Make Loopでアニメーションをループ化(Input TypeをPrimitiveに) 対象オブジェクトに向けて力が働くようにした オブジェクトをボリューム化→Scatterで頂点群を作成 Boidsに対してnearpoint関数でオブジェクトの近傍頂点を取得、その頂点へ力を発生 やってみたけど、動くのにワンテンポ遅れるので綺麗な見た目にはならなかった(残念) Unityに持っていく テクスチャを使用 VATシステムを作って、テクスチャで情報を渡す VATの作り方 [Houdini to UE5 - How to Send Geometries with Attributes - Tutorial - YouTube]( • Houdini to UE5 - How to Send Geometries wi... ) COP Network Oldで構築 色空間は気にしなくていいみたい? 作成したシステムで各頂点の座標とボリューム密度と色を書き出す 座標はEXRで、RGBをXYZに見立てる ボリュームや色はPNGで、色をRGB、密度をAlphaに割り当て UVは各頂点と各ピクセルが対応するように展開する 横一列に展開するようにした #### シェーダー VATシステムに対応したシェーダーを作成 テクスチャの情報は横が頂点、縦がフレーム 横の位置はUVをそのまま使えばいい 縦の位置は、モーションに応じてUVを動かせばよい 位置はテクスチャの情報を代入 元の位置から加算するようにしても上手くいかなかった、なぜ… なので移動後に平面になるようにちょこっと修正 進行方向への回転 現在の位置と1フレーム前の位置を引き算することで進行方向が分かる ベクトルの方向へ向ける回転はLookRotationと言うらしい? lerp関数の活用 ボリューム密度に応じて色が変わるようにした VATの移動もlerpで補完するようにした 蝶々はGraphilia蝶々部で鍛えた(?) [【VRChat】Graphilia 蝶パーティクル(プレイ動画) - YouTube]( • 【VRChat】Graphilia 蝶パーティクル(プレイ動画) ) 動画を使用 新しい方のCOP Networkで作成 各頂点の情報を、解像度分に分割したGridのプリミティブの色に割り当てる SOP Import→Rasterize GeometoryでCd情報を取得 それをフレーム数分ROP Imageで出力 ffmpegを使って動画化 動画なのでRGB各8bitの情報しか格納できない 頂点位置や法線方向は0~1の範囲に正規化 動画の1フレーム前の情報を取得できないので、法線方向も保存する必要があった 頂点位置・法線方向・色・ボリューム量の4種類のテクスチャを1枚にまとめた UVは各頂点と各ピクセルが対応するように展開する こちらは縦横いっぱいに展開してよい #### Unity 動画の色空間はsRGBで良いらしい 動画をRenderTextureに投影させる Textureから情報を読みだして適応させるシェーダーを作成 Unityだと上手く表示できたが、iwaSync(Youtube)を通すと変な形になってしまう エンコードのせい? ルックについて 最初はボリューム感を出すために、Boxを半透明にしていた メッシュを統合して半透明を使うと、オブジェクトの前後がちゃんと計算できない場合がある ![[Pasted image 20250420164227.png]] 1つ1つオブジェクトに分けると、とんでもなく重たくなる ![[Pasted image 20250420164309.png]] 奥が見えて半透明でない蝶々が、ルック・処理速度ともに最適だった ボリューム量は集合をとることができるのでは? モーションテクスチャとエフェクトテクスチャがあるとき、各ピクセルで最大値を取れば和集合になる 今回はラバートイが回ってるだけだけど、もっといい感じのアニメーションとかエフェクトでやってみたい! 黒い点が集まっているとちょっと羽虫みたい… Boidsの群体を見せるために固有色を付けている 演出として使うなら黒色じゃなくて透明化させる? ジオメトリシェーダーを使用していないのでQuestでも動くはず!