メインコンテンツまでスキップ

トラブルシューティング

うまくいかないことの大半は、いくつかの決まった原因のどれかです。思ったとおりに動かないときは、 このページに載っている可能性が高いので、上から順に見てください。最初の 2 項目でほとんどが片づきます。

「Preview では動くのにエディターでは動かない」

想定どおりの動作です。エディターはロジックを実行しません — script も patch も物理も タイマーも近接トリガーも動きません。シーンを描画し、編集できるようにするだけです。

これは意図的なものです。作業中にアニメーションが再生されれば操作を奪い合うことになりますし、 タイマーはプロジェクトに勝手に変更を書き込んでしまいます。挙動の確認は Preview で行います。

「script が動き出さない」

順に確認してください。

  1. オブジェクトが有効で、階層の上位もすべて有効になっている
  2. そのシーンがアクティブである — AR プロジェクトならマーカーが認識済みということ
  3. script コンポーネントが有効である
  4. エディターではなく Preview か公開版で見ている

インスペクターで script の設定を変えると script は再起動します。これがクラッシュのように 見えることがあります。

「component を変えても元に戻ってしまう」

考えられる原因は 2 つです。

States がアクティブになっている。 state を選択している間、変更はその state のなかに 保存されます。切り替えるとスナップショットが復元されます。オブジェクト本体を変えたいなら state の選択を解除してください。

毎フレームそのプロパティを書いているものがある。 タイムラインのトラック、物理ボディ、 look-at は書き続けるので上書きされます。次の項目を参照してください。

「アニメーションどうしがぶつかる」

2 つの仕組みが同じオブジェクトに書き込んでいます。タイムラインは毎フレーム書き込むので、 必ずトランジションに勝ちます。

1 オブジェクトにつき 1 つの仕組みを選んでください。タイムラインが動かしているものに トランジションが必要なら、子オブジェクトに移すか、タイムラインの中でアニメーションさせます。 → アニメーション

「script からマテリアルを変えても何も起きない」

マテリアルはスロットのリストなので、material.update({ color }) はその階層に存在しない フィールドを書いています。スロットを書き換えてください。

material.update({
materials: [{ ...material.$data.materials[0], color: '#ff0000' }],
});

入れ子になった値すべてに同じことが言えます。update は渡したものに置き換えるので、 残したいものは自分で引き継いでください。

「オブジェクトが床をすり抜ける」「モデルが固くない」

読み込んだモデルは、collider を付けるまで衝突形状を持ちません。 付けてください。 box か capsule でほぼ間に合います。

床そのものも確認を。rigid body と collider が必要です。飾りのジオメトリだけでは何も止まらず、 すり抜けます。→ 物理

「物理オブジェクトの位置を設定しても無視される」

dynamic なボディの位置は物理が所有していて、次のステップで書き戻されます。配置には teleport を、動かすには impulse か force を使ってください。

「スクリーンショットに UI が写らない」

カードは 3D ビューの手前に描かれるため、3D ビューのキャプチャには含まれません。UI は Preview で確認してください。

「回転の値が合わない」

画面上で目にする値 — インスペクター、patch ノードのポート — はすべてです。 script から読み書きする値はラジアンです。境界で変換してください。

「キーを押しても何も起きない」

綴りを確認してください。トリガーは on-click、ステップは play_animation です。打ち間違いは エラーにならず、単に一度も一致しません。

イベントがプロジェクトのキー割り当てを参照している場合は、それがまだ存在するか確認して ください。削除された割り当てへの参照は「任意のキー」に戻るのではなく、発火しなくなります。

「2 回発火する」

同じトリガーを 2 か所で処理しています — イベントと script、あるいはイベントと patch。 どちらか一方にしてください。→ イベント

「オブジェクトが遅れて出てくる」

リソースはシーンが動き始めたあとに読み込まれるため、モデル・テクスチャ・テキストは開いた 少しあとに届きます。最初のフレームから見えていてほしいものは、大きなダウンロードに依存させないか、 準備できるまでシーンを隠しておいてください。

「『アニメーション終了』イベントがない」

どの仕組みにもありません。同じ長さの待機ステップを使うか、script で自分で時間を数えてください。

「取り消したら同僚の変更まで消えた」

取り消し履歴はあなた専用で、完全に直線的です。その間に誰かが同じオブジェクトを触ったことを 知りません。共有シーンでは、巻き戻すより前に進んで直すほうが安全です。


それでも解決しないときは

どれにも当てはまらない場合、答えはたいてい リファレンス表(エンジンから生成された全設定)か、 ほかのすべての土台になっているモデルを説明した オブジェクトとシーン にあります。