CrossRoad

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

Babylon.jsのGUIコンテストで入賞したお話

これはBabylon.js アドベントカレンダー2022の記事です。

qiita.com

2022年の夏頃に、Babylon.js ForumでGUI Adventureというコンテストが告知されました。

forum.babylonjs.com

ソースコードだけで書くか、以前紹介したBabylon.js GUI Editorのどちらかで何かの画面を作り、主催者の審議で上位5名が入賞というものです。

今回、幸運にも入賞することができましたので、どんなものを作ったかについて紹介します。

1. GUI Adventureとは

公式フォーラムで紹介されているコンテストです。Babylon.jsでGUIを作る仕組み、あるいは直感的操作でGUIを作ることができるBabylon.js GUI Editorを使って好きなGUIを披露してください、というものです。

Announcement of Babylon.js GUI Adventure 2022

2. Babylon.jsのGUIとGUI Editorとは

Babylon.jsではGUIを作る仕組みが準備されています。ボタン、テキスト、スクロールなどが実装できます。
詳しくはこちらに書いてあります。
GUI | Babylon.js Documentation

GUI Editorとは、コーディングを使わずにGUI画面を作ることができる仕組みです。
詳しくはこちらに書いてあります。
The GUI Editor | Babylon.js Documentation

また、GUI Editorについては以前使い方を書いたことがあるので、雰囲気や使い方はこちらをご参照ください。

www.crossroad-tech.com

www.crossroad-tech.com

3. 今回作ったもの

Playgroundにアップロードしました。

https://playground.babylonjs.com/#LQ6DS0

このままだと表示が崩れるので、開発者ツールで2100*1800などに調整し、できるだけ表示領域を増やしてください。

ディスプレイサイズによっては、さらに値を大きくする必要があるかもしれません。

Limes's GUI works on Babylon.js GUI Editor and Playground

ゲームタイトル風ですが、タイトル画面だけです。Settingというボタンを押すと、キャラクターの設定画面に切り替わります。

設定画面に切り替わった後、キーボードの左と右キーを押すと、キャラクターのタイプ (剣と銃) を切り替えできます。

OKボタンを押すとタイトル画面に戻ります。

使った3Dモデルです。キャラクターはReady Player Meというサービスで作りました。

■銃
https://www.turbosquid.com/3d-models/franchi-spas12-3d-model-1844597#

■建物

sketchfab.com

"Christchurch Greyfriars Church Garden" (https://skfb.ly/osRVA) by artfletch is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).

■ボスキャラ

sketchfab.com

"Strand_1" (https://skfb.ly/6WoqX) by Fredrick Nolting is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).  

■背景全体

これらの3Dモデルを配置して、画面キャプチャしたmp4動画を背景に貼りました。

カメラ視点がゆっくりと動くのは、ArcRotateCameraを使って以下の宣言をすることで実現しています。

 camera.useAutoRotationBehavior = true;

■死神が上下に浮いている表現

このPlaygroundの処理を参考にして作りました。
https://playground.babylonjs.com/#7V0Y1I

■PhotonSword

Particle Editorで表現を作ってjson出力して、それを読み込みました。

gist.github.com

これにより、垂直に光が噴き出るようなエフェクトを実現しています。

Particle Editorの概要や使い方は、こちらにまとめています。

www.crossroad-tech.com

この辺りの動画化した表現の実装方法は、以下のリポジトリのindex.htmlに書いてあります。

github.com

■ボタン
ブラウザで表示される文字は、ブラウザが動くコンピュータにインストールされているフォントに依存します。
他の記事で書いたように、ページを表示するときにインターネットで公開されているフォントを読み込む方法か、文字を画像化して表示させる方法があります。

今回は、Adobe Expressを使ってかっこいい文字を画像化して使ってみました。

Adobe Expressは、無償で各種デザインができるサービスです。

www.adobe.com

4. 入賞しました

Congratulation on Babylon.js GUI adventure notification

コンテストの上位入賞5位には、Babylon.jsについて書かれた書籍 (英文) 「Going to distance with Babylon.js」がもらえます。なんと作者サイン付きです。

www.packtpub.com


2023/1/5追記

物流混雑により遅れていたようですが、ついに受け取れました。Technical Expertsの方々のサインも入っており、大事にしたいと思います。


5. おわりに

なんとなく面白そうという興味で作ったので、まさか入賞するとは思いませんでした。

また機会があればトライしてみたいと思います。