CrossRoad

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

Unityライクの操作になったBabylon.js Editorで簡単なゲームを作ります Vol.6(サーバに格納して実行)

前回に引き続き、Babylon.js Editor v4.0.0を使ってブロック崩しゲームを作ります。これまでの記事は以下を参照ください。

www.crossroad-tech.com

www.crossroad-tech.com

www.crossroad-tech.com

www.crossroad-tech.com

www.crossroad-tech.com

今回は、サーバにプログラムをアップロードして実行する方法です。

使用した環境

・Mac OS 10.15.6
・Node.js 12.16.3
・Visual Studio Code 1.48.1
・Babylon.js Editor v4.0.0 beta2

1. v4.0.0 beta2時点ではサーバ向けにpublishする方法はまだ提供されていない

フォーラムに聞いてみましたが、開発した結果をpublishする方法はまだ入っていないようです。しかし、Babylon.js Editorで作ったプロジェクトデータに含まれる一部を取り出してサーバに置くことで、publishと同じことができます。

2. サーバ実行用のフォルダ構成を整える

Babylon.js Editorで生成されたプロジェクトのうち、scenes/、dist/、index.htmlだけを別のフォルダにコピーします。

An example of project folder of Babylo.js Editor v4.0.2

次に、./node_modules/cannon/build/cannon.jsにあるcannon.jsを先ほどと同じフォルダにコピーします。

次は、index.htmlを少し書き換えます。具体的にはcannon.jsの呼び出し元です。

gist.github.com

フォルダの配置はこのようになります。

Folder configuration of published projects of Babylon.js Editor v4.0.2

3. サーバで動作確認する

3.1 Visual Studio Codeの拡張機能「Live Server」を使ってローカル実行する

先ほどのフォルダを指定してVisual Studio Codeを開き、Live Serverというプラグインを入れておくと、サーバとして起動させることができます。
Live Serverとして起動させる場合、http://127.0.0.1:5500 でブラウザにアクセスすると確認できます。

Live Serverは以下のリンクで確認できます。
marketplace.visualstudio.com

Live Serverの使い方はいくつか記事があるので、そちらをご確認ください。以下は例です。

life-care.site

qiita.com

3.2 npmパッケージの「Express」を使ってローカル実行する

以前書いたこちらの記事の「3. node.jsでサーバ起動設定を行う」以降を実行します。ただ、Visual Studio CodeのLive Serverでも実質同じことができるので、Live Serverでも良いかもしれません。

www.crossroad-tech.com

3.3 AWS用にpublishするプラグイン「babylonjs-editor-publish-plugin」を使用してAWSから実行できるようにする

フォーラムで教えていただきました。はっきり書いていませんが、Babylon.js Editor v4.0以降であることは必要そうです。

github.com

現在はglbフォーマットのモデルのみ対応しているそうです。私はAWSを使ってないので試せてないのですが、興味ある方はお試しください。

4. これまで紹介した内容をまとめたGitHubリポジトリ

これまで紹介した内容をGitHubにあげました。それぞれのコードの書き方は過去記事をご参考ください。

github.com


2020/9/19 追記

Babylon.js Editorの製作者であるjulien-moreauさんにプルリクエストをいただきました。
プルリクを反映したことで、このブログとはコードの記述が一部変わっています。ブログの記述を確認したい場合、以下のコミットIDでご確認ください。

39e4d2ca144f0f0cf7e9ecaae94eb3fba6d7e21b


5. おわりに

Babylon.js Editorを使ったゲーム作りについては、いったん完了です。このゲームを改良するか、別のゲームにするかは決まっていませんが、新しいBabylon.js Editorはとても興味深いのでまた使い方を紹介していく予定です。