[JavaScript] フォルダ置くだけで動く3D ROOM機能を作る(Three.js)
Three.js + vanilla JSで、ZIPを解凍してサーバーに置くだけで動く3D ROOM機能を構築。GLB部屋モデル、VRMアバター、BVH衝突判定、3人称カメラ、ポータルリンクまで、バンドラー不要のピュアESM構成で実装した記録
Three.js + vanilla JSで、ZIPを解凍してサーバーに置くだけで動く3D ROOM機能を構築。GLB部屋モデル、VRMアバター、BVH衝突判定、3人称カメラ、ポータルリンクまで、バンドラー不要のピュアESM構成で実装した記録
VRMサムネ自動生成機能を単品WEBアプリとして独立。リアルタイム3Dプレビュー、カメラ調整、.vrmaポーズ適用、ドラッグ&ドロップ対応のツールを1日で実装。
Three.jsのオフスクリーンレンダリングでVRMモデルのサムネイルを自動生成し、IndexedDBにBase64で保存。WiredAvatarMenuとWiredVRMenuの両方でサムネ付きモデル選択UIを実装した記録。
WebXR格闘ゲーム LAYER FIGHTER のラウンドフローを再設計し、GAME_SETフェーズを新設。2本先取時の演出整理、フレームカウントリセット、リセットロジック共通化、入力バッファ起因の膝蹴り暴発バグを修正。
WebXR格闘ゲーム LAYER FIGHTER のメニュー画面にPS4コントローラー対応を実装。Gamepad APIをポーリングする共通React hookを1つ作り、全5画面に適用した記録。
LAYER FIGHTERのエンディングクレジットにステージの3Dモデル情報が表示されない問題を修正。Assets.jsonではなくStages.jsonから直接読み込むようimportを追加。
NZXT CAMのWeb Integration機能を利用し、KrakenのLCDディスプレイに好きな動画やシステムステータスを自由なレイアウトで重ね置きできる神ツール「NZXT-ESC」をご紹介。
WITCreditBoardをCreditBoard.tsxとして汎用化し、ADV/RPG(STAGE_MY_ROOM)とパズルゲーム(木箱GLB付き)にクレジット看板を設置。VR/PC座標分岐、import type問題、外部VRM保存フローの調査、VRMアバターY軸回転機能の実装まで。
WebXR格闘ゲーム LAYER FIGHTER にステージセレクト画面を実装し、ジャンプ攻撃を追加しました。VR/デスクトップ両対応のHUD二重表示バグも修正。
Meta Quest 3の充電端子の消耗や破損を防ぐため、格安のマグネット式USB-Cアダプターを購入。頻繁な抜き差しの精神的負担から解放された快適な使用感と、中華製品ならではのリスクについて解説します。
MR実装2日目。WiredAvatarからMRAvatarへの責務分離、AVATAR_HEIGHTの根本解決、歩行アニメーション、メモリリーク対策、段差検出・座りイベント、VRコントローラーでの設定UIを実装。
WebXR plane-detectionを使い、Quest3のパススルーMR空間でVRMアバターが実際の床に着地し、壁に反射して歩き回る仕組みを実装した記録。