この記事は、「からあげ帝国 Advent Calendar 2023」の 14日目の記事です。
はじめに
この記事は、下記のようなイベント会場をScaniverseとBlenderで3D表示したものについて書いたものです。
NT名古屋2023に遊びに行ってきた
11月ですが、西春でNT名古屋2023が開催されました。いくつか紹介しますと、
基盤を使わずに空中配線で回路を組んだ時計や(LEDなのにスチームパンクっぽさもあってなんだかいい!)
ゲーミングタイプライターやUSBに接続するとキーボードと連動してソレノイドで物理的にタイプライター音を出すイカしたデバイスなんかが展示してありました。
他にも色々ありましたのでNT名古屋2023から参照していただければと思います。
目的
からあげ先生の出店を見に行きました。
AIマリオ。2分割画面でAIのマリオとどっちが先にゴールするか勝負。
(なおAIどころか最初のクリボーで死にました)
見に行ったのですが、ブースが受付のすぐ隣だったのに気が付かず、会場を3周くらいしてようやく気が付きました。
/(^o^)\ナンテコッタイ
会場の3D化
会場の西春駅は、家から数駅の場所にあるのですがこれまで使ったことがほぼ無い駅でしたので軽く迷いました。
上記の通り目的のブースも探してしまったので(面白そうなものがいっぱいあったのが悪い)目的地をできるだけわかりやすくできないか3Dで表示してみます。
Scaniverseによる3Dモデルの出力
Scaniverseというソフトで会場を歩き回り、Liderモードで3Dモデルを作成します。作成後は下記の手順で、シェア→モデルのエクスポート→お好みのファイル形式 で、ファイルを作成しました。
ついでに駅のホームから会場までも歩きながら別でスキャン、合成しています。
BlenderによるGISデータのモデル化
BlenderのプラグインのBlender GISで、春日井駅と会場のヨシズヤを表示、glbファイルにエクスポートしました。
Babylon.jsによる3Dモデルの表示
BabylonPlaygroundに上記のモデルを表示するコードを記載して表示します。
SceneLoader.ImportMeshAsyncの引数で、用意した3Dモデルを読み込み、座標や角度なんかを調整しています。
BABYLON.SceneLoader.ImportMeshAsync("", "https://raw.githubusercontent.com/ykoba079/sample1/master/", "NT名古屋2023会場.glb").then((result) => {
result.meshes[0].position.x = -38;
result.meshes[0].position.y = 12.3;
result.meshes[0].position.z = -31;
result.meshes[0].rotation = new BABYLON.Vector3(0, Math.PI*0.98, 0);
});
ホームからの道順。(地面のテクスチャが目立ってちょっと見にくいかもですね・・・)
出来上がったページは、下記のリンク先になります。
https://playground.babylonjs.com/#UY72D0#13
マウスの左ドラッグで角度変更、右ドラッグで平行移動、ホイールで前後に動きます。
最期に
スマホとBlenderで、簡単に会場の3Dモデルを作成してみました。
特にモデリングの作業もなく、出来てしまいますね。
開発者の方々には感謝しかないです。ありがたや!