solutions
(2024年9月) 制作物の例に「数値解析結果の可視化」を追加しました。
概要:TDAP3で地震応答解析を行った出力結果と、弊社で作成した粒子法による流体解析結果をVRChat上で可視化することを目的とし、それぞれの出力結果であるFemap Neutral形式、VTU形式から、可視化オブジェクトを作成する手法を確立しました。
VRChatのワールド制作において必要な技術要素についての社内研究を継続的に行っています。
その成果物として、VRChatのワールドを試作しました。ワールド内にはいくつかの技術要素を試した、天気予報やドローン等の試作オブジェクトを置いています。
背景:近年、VR SNSが一般的に広く浸透してきています。中でもVRChatは大規模なVRイベントが盛んに行われており、企業広告としての活用が注目されています。
VRChatでは、個人が楽しむだけでなく企業が自社製品やサービスを展示することもできるバーチャル空間を公開できます。
展示室として利用するための空間をプリミティブオブジェクトから作りました。各展示部分には展示に注目を集めるためのスポットライト、展示の説明、展示オブジェクトを配置しています。 壁や床はUnityのプリミティブオブジェクトから作り、説明台はモデリングをして作りました。
関連する技術要素:
皆さんが普段使用しているニュースサイトやチャットサイトでは、常に新しい情報が画面に表示されていると思います。 このような、情報が更新されるサイトのことを動的サイトといいます。逆に、いつ開いても同じ情報が表示されるサイトを静的サイトといいます。 動的サイトではWebAPIというインターネット上の情報を取得する技術を使うことで情報を更新しています。 様々なギミックを作成できるVRChatですがWebAPIにアクセスする機能は制限されており、使うことができないようになっています。 つまりVRChatでは基本的に静的ワールドしか作ることができません。
一方でVRChatではインターネット上の動画をワールド内で再生することができるという機能があります。 この機能を抜け道として利用し、動画を経由して任意のWebAPIから情報を取得する仕組みを構築しました。 サンプルとして1週間天気予報を表示するギミックを作成しました。天気予報の情報は更新ボタンを押下することで最新の情報に更新されます。
以下にVRChatのワールド内からWebAPIにアクセスする流れを説明します。
① VRChatワールド内でインターネット上の動画A(存在しない動画)の再生をリクエストする。
② 動画Aへのアクセスを検知し、目的のWebAPIにアクセスする。
③ ②から情報を取得する。
④ ③で取得した情報を0/1のビットデータに変換し白黒の動画を作成する。
⑤ ④で作成した動画を①でリクエストされた動画AとしてVRChatワールドに送信する。
⑥ 再生された白黒の動画から④と逆の手順で情報を復元する。
このようにインターネット上の通信を中継するものをプロキシと呼びます。
今回はプロキシとしてIBM CloudのFunctionsを使用し、白黒の動画を保存しておくストレージとしてCloudObjectStrageを使用し、以下のようなシステムを構築しました。
関連する技術要素:
弊社のロゴが水面に浮いているイメージのオブジェクトです。ロゴの画像はアニメーションで回転しています。 床のテクスチャはシェーダ―でリアルタイムに波動関数を解き、床上を物体が移動すると波紋が広がるように見える仕組みになっています。
関連する技術要素:
インタラクトすることでドローンを操作し、任意の視点からの映像を確認できるギミックです。 ボタンにインタラクトすることでアバターの位置が固定され、移動キーでドローンを操作できるようになります。 ボタンをもう一度押すことでドローンの移動・回転を切り替えられます。
関連する技術要素:
インタラクトすることで乗車できる乗り物です。アバターがインタラクトして座ることで動き出し、決まったコースを1周すると停止します。
関連する技術要素:
弊社は、創業当時より数値解析業務に取り組んでおります。特に弊社で開発・販売している構造解析ソフトTDAP3は、建築などの分野で高いシェアを獲得しております。
さて、コロナ禍では、展示会や学術発表をVR空間上で行う取り組みが盛んになりましたが、多くはVR空間上で画像や動画を用いて発表を行うにとどまっていました。TDAP3をはじめとする解析ソフトで作成された数値解析結果が、3Dのアニメーションとして展示可能になれば、任意の視点から解析結果を確認できるなどのメリットがあり、従来の取り組みに比べ、舞台がVR空間であることをより活かした展示や発表が可能になると考えられます。
TDAP3によらず、解析ソフトで作成された数値解析結果は専用Viewerソフトで可視化することが一般的で、VRChatのようなエンターテインメント分野に持ち込む手法は確立されていないと思われます。
そこで今回、TDAP3で地震応答解析を行った出力結果と、弊社で作成した粒子法による流体解析結果をVRChat上で可視化することを目的とし、それぞれの出力結果であるFemap Neutral形式、VTU形式から、可視化オブジェクトを作成する手法を確立しました。
以下がVRChatのワールドにシミュレーション結果を可視化する流れです。
① 解析結果ファイルを用意する。
② 今回開発したBlenderアドオンにより、①の解析データを読み込み、3Dメッシュアニメーションを作成する。この時、シミュレーションの情報はキーフレームアニメーションとしてモデルデータに含める。
③ ②で作成したアニメーションをBlenderの標準機能にてAlembic形式で出力する。
④ ③で作成したAlembicをVRChat上に配置可能なデータ形式(VAT)に変換する。各フレームのデータはテクスチャ画像としてマッピングする。
⑤ ④で作成したVATを VRChat上に配置し、アニメーションとして自動再生するスクリプトを取り付けてオブジェクトが完成。
VAT(Vertex Animation Texture)とは、3Dメッシュの変形アニメーションをファイルとして保持する一手法です。変形アニメーションは初期状態の3Dメッシュ情報と、各頂点の時系列変化情報で構成されます。VATは、頂点の時系列変化情報をテクスチャつまり画像として保持し、シェーダーでテクスチャから時系列情報を読み込むことでアニメーションを再生するという手法を取ります。
画像は1ピクセルごとの色情報としてrgbという3つの値(あるいは透過度αを含めた4つの値)を持っています。これらの値を座標情報(x,y,z)として扱います。下図のように「時系列ステップ数×頂点数」分のピクセルで構成されるテクスチャがVATとして扱われます。
関連する技術要素: