趣味で作っているARで苦労したポイントを備忘的に記録しています。主にA-Frameです。「とりあえず解決した」程度のものですので、あまりアテになさらないように。
A-Frame関連
アニメーションが動かない
<a-animation>はA-Frame0.9.0で廃止された。
ARが揺れすぎる
<a-marker>に以下のsmooth属性を設定する。smoothThresholdがsmoothToleranceを下回るとARは静止するとのことだが動くときは動く。正直、効果がわかりにくくてチューニングしにくい。
- smooth=“true”
- smoothCount=数値
- smoothTolerance=数値
- smoothThreshold=数値
他にもARマーカーに問題がある場合も。
- マーカーが不鮮明(解像度とコントラスト)
- マーカー画像が回転対称や同一パターンでできている
- マーカーの大きさに対してオブジェクトが大きすぎる
particle-system-componentが動かない
A-Frame1.4.0では動きませんでした(2023年10月時点)。1.3.0を使いましょう。
aframe-physics-systemが動かない
ネットでは古いバージョンのA-Frame(0.8.0とか)でしか動かないという情報が多いけど、以下にあるバージョンならA-Frame1.4.0でも動いた(2024年2月時点)。
オブジェクトの配置を好きな角度から確認したい
ブラウザで当該シーンを表示している状態でAlt+Ctrl+iで空間が表示される(Visual Inspector)。
- マウスホイール:前進・後退
- 左ドラッグ:上下左右旋回
- 右ドラッグ:上下左右移動
- オブジェクト左クリックで位置や角度、寸法も編集可能
オブジェクトをテキトーに配置し、Visual Inspectorで位置とか角度を調整してから、そのエンティティのHTMLソースをコピー(画面右上のCopy entity HTML to clipboardをクリック)すると楽。
カメラを固定したい
固定したいエンティティをカメラエンティティ<entity camera>で囲む(子要素にする)。look-controlsを入れていると、dynamic-bodyはモーションセンサー(旋回)の影響を受けてしまう。
HTML関連
サイトアクセス時にWebcamErrorが出る
Webcam Error Name:Message:WebRTC issue-!
Navigator.mediaDevices not present in your browser
作ったサイトへのアクセスがHTTPの場合に出る。HTTPSにすると解決する。
3D関連
オブジェクト(OBJやGLBファイル)を差し替えても反映されない
FTPでOBJやGLBを上書きアップロードしたのに、サイトを閲覧しても3Dの内容が更新されていないことがある。これは<a-assets>にキャッシュ機能があるため。
一度FTPでサイト上のファイルを削除して、ブラウザでサイトにアクセスしてからFTPで再度アップロードするとよい。
blenderで作成したアニメーションが動かない
- OBJファイルはメッシュ情報のみで、アニメーションを含めることができない。GLBで。
- アニメーション付きGLBの再生にはA-Frameのanimation-mixerコンポーネントが要る。
- blenderのパーティクルアニメーションはGLBでもエクスポートできない。
- GLBエクスポート時のオプションで「Force sample animations」をONにすること(Blender2.79でのお話)。Windowsなら「3D Builder」で動くか動かないかを確認するのが手っ取り早い。
blenderが起動しない
「Unsupported Graphics Card or Driver」と表示されるならPCのグラフィックカードが古いのが原因。
グラフィックカードを新しくするか、blender2.79を使いましょう。それでも私のような初学者には十分です。
Mesa3Dを使えば無理矢理動かせますが。
マテリアルが反映されない
blenderのCyclesレンダーはなぜか反映されない。blenderレンダーなら反映される。
Blenderでエクスポートするとテクスチャが消える
たぶんバージョン2.79のバグ。2.83では起こりませんでした。