CrossRoad

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

Babylon.js Editor v4.0でGSAPのアニメーション表現を試してみました

偶然見つけた下記のサイトで、WebGLのアニメーションができることを知りました。

ics.media

このサイトではThree.jsを使った例を紹介しているのですが、Babylon.jsでも動かすことができます。今回は最近紹介しているBabylon.js Editor v4.0を使って動かしてみたことを紹介します。

動作確認環境

・MacOSX 10.15.6
・Babylon.js Editor v4.0 beta7

1. GSAPとは?

こちらが公式サイトです。HTML5、WebGLに対応したアニメーションのフレームワークのようです。

greensock.com

使える範囲の幅が広いためか、いろいろと参考記事が見つかります。

arakaze.ready.jp

codepen.io

2. Babylon.js で動かすには?

調べたら、動かす方法を書いた例がありました。

greensock.com

CodePenを使って動く例を紹介してくれているので、引用します。
codepen.io

3. Babylon.js Editorで動かすには?

Babylon.js Editorでは、ES6以降の書き方でTypeScriptを使うことが前提です。また、GSAPを使うにはnpmパッケージをインストールする必要があります。

Babylon.js Editorで作ったプロジェクトに新しいnpmパッケージを追加する方法は公式のマニュアルには書いてありませんが、作ったプロジェクトのトップディレクトリ (package.jsonがあるところ) で、npm install gsap を実行すると、import構文で使えるようになります。

Babylon.js Editorで新しいスクリプトを作り、以下のようなコードを書きます。

gist.github.com

このスクリプトを使った例です。

An example of camera motion by GSAP on Babylon.js Editor v4 beta7

モデルは以下を使用させていただいております。

poly.google.com ライセンス:CC-BY

Babylon.js Editorで任意の3Dモデルを追加して使うときは、glb形式にしたモデルをAssets / Meshesタブにドラッグします。読み込みが成功するとモデルがアイコンで表示されるので、アイコンをPreviewの中にドラッグします。

Dragging a glb model to preview area on Babylon.js Editor v4 beta7

もちろん、カメラではなくcubeなどのオブジェクトにも使うことができます。以下は、cubeとカメラにモーションを当てた例です。

■カメラがcubeを追いかけるモーション
gist.github.com

■cubeがx方向に20移動、y方向に10移動するモーション gist.github.com

4. おわりに

GSAPは他のJavaScriptフレームワークでも使えるものなので、Babylon.jsの知識がなくてもアニメーションを作ることができて便利ですね。Babylon.js Editorと組み合わせると、より直感的にWebで動く3DCGアプリケーションを作れると思います。
ところで、Babylon.js Editorはbeta7になって、また少し便利になりました。また、簡単なゲームやデモを作りながら、使い方を紹介していく予定です。