Babylon.js で遊ぶ
このスクラップについて
Three.js について色々と調べている時に Babylon.js を知った。
位置付けとしては Web 版 Unity といった感じでゲームやシミュレーションなどの開発に使えそう。
このスクラップでは Getting Started 的なものをやってみようと思う。
Very first step
Babylon.js Playground
保存や共有ができると質問する時に便利と書いてある。
スクラップを書くときも便利に違いない。
球を消してみる
21 行目と 24 行目をコメントアウトしてから ▶︎ の Run ボタンを押す。
球が消えた。
Run ショートカット
macOs の場合は Option + Enter でコードをシーンに反映できる。
地面を赤色にしてみる
最後の方に下記のコードを追加する。
var groundMaterial = new BABYLON.StandardMaterial("Ground Material", scene);
ground.material = groundMaterial;
ground.material.diffuseColor = BABYLON.Color3.Red();
diffuseColor のコード補完が効かないので不安になる。
地面をチェック柄にする
ground.material.diffuseColor = BABYLON.Color3.Red();
上記を下記で置換する。
var groundTexture = new BABYLON.Texture(Assets.textures.checkerboard_basecolor_png.rootUrl, scene);
ground.material.diffuseTexture = groundTexture;
メッシュのインポート
return
の前あたりに行を作って Ctrl + Space を押す。
Import a Mesh w/callback を選ぶ。
下記の内容を入力する。
BABYLON.SceneLoader.ImportMesh("", Assets.meshes.Yeti.rootUrl, Assets.meshes.Yeti.filename, scene, function(newMeshes){
newMeshes[0].scaling = new BABYLON.Vector3(0.1, 0.1, 0.1);
});
画像だとわかりにくいけどイエティが動いている。
カメラを変更する
var camera = new BABYLON.FreeCamera("camera1", new BABYLON.Vector3(0, 5, -10), scene);
上記を下記で置き換える。
var camera = new BABYLON.ArcRotateCamera("camera", BABYLON.Tools.ToRadians(90), BABYLON.Tools.ToRadians(65), 10, BABYLON.Vector3.Zero(), scene);
イエティを中心にくるくる回るようになった。
保存
Command + S かフロッピーディスクのアイコンを押すと保存できる。
特に何も入力しなくても OK を押せば保存できる。
保存した Playground には下記からアクセスできる。
ダウンロード
⬇️ ボタンか Ctrl + Shift + S を押すと zip ファイルのダウンロードが開始する。
zip ファイルに含まれる index.html を開くとシーンが再現される。
python -m http.server
や npx http-server -c-1
とかを使わなくて良いのはすごい。
メッシュの読み込みとかはどうしてエラーにならないんだろう。
次は何をやろう
ドキュメント構成を読むと普通に Features に進めば良さそう。
おわりに
キリが良いのでここで一旦クローズしよう。
Play Ground も便利だが VSCode で TypeScript を使いたい。
あと Next.js で表示する時にどうすれば良いかも調べたい。
3D 系プログラミングは表示されるのが楽しくて良い。
引き続き楽しく学びを続けていきたい。