CrossRoad

XRを中心とした技術ブログ。 Check also "English" category.

UnityでつくったコンテンツをBabylon.js向けにエクスポートする「Babylon Toolkit」について:スクリプトを使った制御

これは「Babylon.js アドベントカレンダー2024」の9日目です。

前回の私の記事では、Babylon Toolkitの概要や環境構築方法を書きました。

www.crossroad-tech.com

www.crossroad-tech.com

今回はUnityを開いてからの初期設定や、CubeとPlaneを置いたシーンをエクスポートしてブラウザで確認するまでの手順を紹介します。

なお、今回書いた内容は公式?が公開している動画で紹介されている内容と同一です。 13:49までの動画のうち、9:30から終わりまでの内容です。

www.youtube.com

前提として、前回の記事の内容が完了した状態から始めます。

ここでは、Y軸周りに回転する処理を書いたスクリプトを作り、Cubeを回転させる方法を紹介します。

動作確認環境 Unity2022.3.34f1
Babylon Toolkit 7.28.1 (Community Edition)

1. スクリプトファイルを生成する

Project Viewで右クリック、Create > Babylon Toolkit > Script Componentを実行します。

Create Babylon script component on Unity

すると、C#とTSの2つのスクリプトが生成されます。C#側でMyRotate.csという名前に変更するとTS側も自動的に変更されます。

2. TS側にTypeScriptで処理を書いていく

ちょっと予想と異なったのですが、今調べている範囲ではC#で直接処理を書くのではなく、新しく生成された.tsファイルの中にTypeScriptとして処理を書く必要がありそうです。

たとえば、今回紹介するCubeの回転については、MyRotate.cs側は特に何も書くことはなく、同時に生成されたMyRotate.tsに記載します。

gist.github.com

Start(), Update()はUnityと似た形ですが、回転処理であるtransform.addRotationは、UnityではなくBabylon.jsのAPIです。

3. C#スクリプトファイルをUnityのCubeオブジェクトにアタッチする

MyRotate.csをCubeにアタッチします。この状態でPlayボタンを押してBuild -> Previewを実行すると、ブラウザでこのような挙動を確認できます。

Exported scene from Unity + Babylon Toolkit

4. おわりに

もう少し調査が必要な気はしますが、Babylon Toolkitのコンセプトは「Unityの環境でBabylon.jsを使う」であり、C#で書くものは対象外としているようです。C#で書いた記述が混じると、TypeScriptで書いた内容は動かなくなりました。

そうすると、この仕組みはUnityユーザ向けというよりは、Babylon.jsユーザがUnity環境を使うための仕組みと考えた方がよいかもしれません。

実は6年前にも同様のtoolkitが公開されており、そのときは「Unityで作った内容をBabylon.jsの形にExportする」というものでした。

toolkitそのものは、すでにリンク切れになっていましたが、当時の検証結果はこちらです。

www.crossroad-tech.com

Documentationには他にもいくつかの機能が紹介されていますが、今回の調査はここまでにしたいと思います。

次回は少し別のトピックを紹介予定です。