XGRIDSドキュメント
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • PortalCam

    • 製品概要
    • デバイスの基本操作
    • LCC Scan App の使用
    • メンテナンスとお手入れ
    • FAQ
  • Lixel K シリーズ

    • Lixel K1

      • 製品概要
      • デバイスの基本操作
      • デバイスのアクティベーションと接続
      • デバイス収集
      • 絶対座標のポイントクラウドデータを取得する
      • マップフュージョン
      • 典型的なシーンにおける経路計画の推奨
      • 注意事項
      • FAQ
    • Lixel K2

      • 製品概要
      • デバイスの基本操作
      • デバイスのアクティベーションと接続
      • デバイス収集
      • 絶対座標のポイントクラウドデータを取得
      • マップフュージョン
      • 典型的なシーンにおける経路計画の推奨
      • 注意事項
      • FAQ
  • Lixel L シリーズ

    • Lixel L2 Pro

      • 製品概要
      • デバイスの基本操作
      • デバイスのアクティベーションと接続
      • デバイス収集
      • 絶対座標のポイントクラウドデータを取得する
      • 実時計測機能
      • 付録
      • FAQ
  • Lixel Studio

    • バージョンと著作権
    • インストールとアクティベーション
    • ソフトウェアインターフェース
    • ファイル操作
    • プロジェクト処理
    • ツール
    • 2D 作図
    • 業界応用
    • 設定
    • デバイス接続
  • Lixel CyberColor

    • LCC Studio

      • はじめに
      • バージョンと更新
      • ダウンロードとインストール
      • インターフェース概要とナビゲーション
      • 再構築前の準備
      • モデル再構築
      • 単一モデル再構築
      • 地図合成
      • 空地融合
      • 航空撮影再構築
      • マイモデル
      • その他の機能
      • 設定とアカウント
      • Converter
      • 動画再構築
      • よくある質問 / FAQ
    • LCC Scene Editor

      • バージョンと更新
      • アカウントとサインイン
      • 製品概要とホーム画面
      • エディター画面
      • ナビゲーションモード
      • ファイル
      • 設定
      • 編集
      • ウィンドウ
      • グローバルツールバー
      • アセットとプロパティ
      • 左ツールバー
      • ビューポイント
      • ポータル
      • スカイボックス
      • アノテーション
      • 測定
      • フライスルー
      • シーンレポート
      • 3D レイアウト
      • ミニマップ
      • プレビューモード(Viewer)
      • ヘルプ
      • よくある質問(FAQ)
      • スポーンポイント
    • LCC Model Editor

      • バージョンと更新
      • ユーザーガイド
      • 概要とインターフェース
      • ファイル操作
      • セレクター
      • モデルの編集
      • 測定
      • カラーグレーディング
      • アセット管理
      • 設定とヘルプ
      • よくある質問
    • Capture Guide

      • 概要
      • 撮影デバイス概要
      • 一般的な撮影の原則
      • 屋内シーンの撮影
      • 屋外シーンの撮影
      • 大規模撮影(マップフュージョン)
      • 空地マップフュージョン撮影
      • オブジェクト撮影
      • 人物撮影
      • ビデオ再構築撮影
      • HD Enhancement
      • 制御点(Lixel P1)
      • FAQ とトラブルシューティング
    • バージョン履歴
  • プラグインと SDK

    • Unreal

      • 概要
      • クイックスタート - Windows
      • クイックスタート - Linux
      • クイックスタート - Quest3
      • エディションとライセンス
      • レンダリング
      • 画面調節
      • 法線とライティング
      • シーン編集
      • パフォーマンスパラメーター
      • パフォーマンス最適化ガイド
      • サードパーティおよびエンジンプラグインとの連携
      • プロキシメッシュ
      • 読み込みアニメーション
      • コリジョン
      • ナビゲーションシステム対応
      • Single layer water 対応
      • ローカライズ
      • よくある質問
      • トラブルシューティング
      • ログと診断
      • お問い合わせ
      • API リファレンス

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • SOG / SPZ / PLY Actors
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ULCCUtilLibrary
        • Enums
        • Structs
      • 更新履歴

        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1

UE5 3DGS のよくある不具合を現象から特定する

このページは見えている現象で整理してある。各項目で考えられる原因、確認方法、解決方法を示す。

ログの確認方法やデバッグツールの使い方は ログと診断 を参照する。相談タイプの質問(どの形式に対応しているか、2 つのパイプラインの違いなど)は よくある質問 を参照する。

目次

分類扱う現象
まずこの 2 つを行うどの問題でもまず一通り実施することを推奨する
データの読み込み失敗Load を押しても反応がない、パッケージ化後に見えない、Blueprint プロジェクトのパッケージ化、GIS の位置がずれる、大きなデータでクラッシュ
画面が表示されないか一部しか表示されないまったく見えない、遠くが欠ける、端に穴が空く、SceneCapture が空白、水面に遮られる
画質の問題残像、ちらつき、穴、カラーがくすむ、継ぎ目、シーンに線が 1 本入る
ライティングの異常露出オーバー、立体感のある明暗がない、ProxyMesh が効かない、影が途切れる、エフェクトが隠れる
パラメーターを変更しても効果がないチェックボックス未チェック、全量読み込み、クリッピングと断面、球面調和、ライセンスの枠
パフォーマンスの問題フレームレートが低い、ビデオメモリが多い、読み込み時のカクつき、オクルージョンの誤り
コリジョンとナビゲーションレイキャストが当たらない、キャラクターが落下してすり抜ける、NavMesh が生成されない
クラッシュArraySliceIndex のアサーションエラー
ライセンスの問題Status が緑のチェックにならない、各種ライセンスエラー
コンパイルとパッケージ化バイナリの不足、プリコンパイルマニフェストの不足、パッケージ化の失敗、Android
それでも解決しない場合問題を報告する前に集めるもの

まずこの 2 つを行う

ほとんどの問題はこの 2 つの手順の範囲で特定できる。どの現象でもまず一通り実施することを推奨する。

  1. Output Log を開いてプラグインのログを見る。 読み込みの失敗、パスの誤り、ライセンスの問題はいずれもここに明確な情報が残る。方法は プラグインのログを確認する を参照する。
  2. データの読み込みが成功しているか確認する。 Actor を選択し、Details パネルの MetaInfo に内容があるか(Total Splats が 0 より大きいか)を見る。空の場合はデータが入っていないので、データの読み込み失敗 に直接進む。

データの読み込み失敗

現象:Load を押したが何も表示されない

順に確認する。

考えられる原因確認方法解決
パスが存在しないか誤っているログに LCC file :<パス> does not exist. が出るパスを照合する。相対パスは Content を基準にする
LCC1 のデータにファイルが足りないログに Load Meta.lcc error または meta.lcc file :<パス> load error が出る.lcc と同じディレクトリに data.bin と index.bin が必要で、1 つ欠けても失敗する
Actor を間違えている明確なエラーは出ないが画面が空白になる.lcc2 は ALCC2Actor、.lcc は ALCCActor、単一ファイル形式はそれぞれ専用の Actor を使う。よくある質問 を参照する
形式が非対応ログに LCC4Unreal do not support this file format! が出る拡張子が対応範囲内か確認する。概要 を参照する
.ply が 3DGS 形式ではないログに PLY が拒否された旨が出るプラグインは 3DGS の属性を含む .ply にのみ対応する。通常のジオメトリ点群は読み込めない

現象:エディターでは正常だが、パッケージ化後に見えない

順に 2 つのことを確認する。

1 つ目、絶対パスを使っていないか。 絶対パスは自分のマシンでのみ有効で、別のマシンではパスが存在しない。プロジェクトの Content ディレクトリからの相対パスに変更する。たとえば Scenes/Tower/meta.lcc2 のようにする。

2 つ目、データディレクトリをパッケージ化の設定に入れているか。 2 つの設定項目は用途が異なるので、必要に応じて選ぶ。

設定項目用途
Additional Non-Asset Directories To Copyデータを通常のファイルとしてパッケージ出力にコピーする
Additional Non-Asset Directories To Packageデータを pak に格納する

LCC データを pak に含めたい場合は後者を、データをパッケージ出力と一緒に配布したいだけの場合は前者を使う。どちらも ProjectSettings > Packaging にある。

設定したら再パッケージ化し、パッケージ出力にデータが実際に入っているか確認する。詳しい設定は クイックスタート を参照する。

現象:Blueprint プロジェクトのパッケージ化後にプラグインが動かない

Blueprint のみのプロジェクト(Blueprint-only)はエディターでの使用にのみ対応し、パッケージ化には対応しない。パッケージ化が必要な場合は C++ プロジェクトを使う必要がある。

現象:地理座標の位置がずれる、GIS モードが効かない

次の項目を確認する。

  • データに RTK 情報が含まれているか。GetMetaInfo().IsRTK() で判定する。ログに This lcc does not have RTK information! が出る場合はデータに地理情報が含まれていない
  • コードから有効にする場合は SetGeoPlacement(true) を呼ぶ。この関数は自動的に再読み込みして設定を反映する。bEnableGeoPlace に直接代入しても再読み込みはトリガーされない
  • 位置にずれがある場合は GeoLocationOffset で微調整する

Cesium と組み合わせる構築手順は サードパーティおよびエンジンプラグインとの連携 を参照する。

現象:非常に大きな LCC2 データを読み込むとウォークスルー中にクラッシュする

v1.0.0 を使っている場合、これはそのバージョンの既知の不具合である(GPU Buffer の上限超過)。v2.x 以上のバージョンにアップグレードすれば解決する。

現象:大きな PLY を読み込むと配列関連のエラーが出る

v3.0.0 の既知の不具合で、v3.3.0 以上で修正済みなので、バージョンをアップグレードすればよい。

また PLY に球面調和が含まれない場合、ファイルが 2GB を超えると読み込めないことがある。LCC2 形式に変換することを推奨する。

画面が表示されないか一部しか表示されない

現象:Actor はシーンにあるが、内容がまったく見えない

考えられる原因確認方法解決
データの読み込みが成功していない前節を参照するまず読み込みの問題を解決する
LoadMode が None になっているDetails パネルを確認するBoth に戻す
カメラがレンダリング距離の外にあるシーンに近づいて表示されるか確認するMax Distance を大きくする
クリッピングボリュームが内容を切り取っている一時的にクリッピングボリュームの bEnabled をオフにするクリッピングモードを確認する。Inside と Outside は効果が逆になる。EClipType を参照する
断面プレーンが内容を切り取っている一時的に断面プレーンをオフにするMode とプレーンの向きを確認する。ESectionType を参照する
GlobalAlpha が 0 になっているDetails パネルを確認する1.0 に戻す
すべて環境データなのに OnlyMain に設定しているLoadMode を切り替えて比較するデータの実際の状況に応じて選ぶ。ELoadMode を参照する

現象:遠くの内容が欠け、近づくと表示される

これは LOD と距離制限の正常な挙動であり、不具合ではない。遠くも表示させたい場合は次のようにする。

  • Max Distance を大きくする。引き換えにパフォーマンスが下がる
  • Level Factor を小さくして、同じ距離でより高い精度を使わせる
  • フォグと組み合わせると距離の境界を隠せる

現象:視点を素早く回すと画面端に穴が空く

ノードのプリロードが視点の変化に追いついていない。LCC パイプラインでは Add Extra Preload Nodes を有効にできる。追加のプリロードノードを加えるが、引き換えにレンダリングが必要なノードが増える。

現象:SceneCapture やミニマップが空白になる

まずプロジェクト設定で SceneCaptureComponent Support を有効にする必要がある。この項目は既定でオフになっており、わずかなパフォーマンスの代償がある。

コードで SceneCapture に個別のレンダリング方針を設定する方法は SetSceneCaptureRenderMode を参照する。このインターフェース群は LCC パイプラインでのみ有効である点に注意する。

現象:3DGS が水面に遮られる

単層水マテリアルの深度処理によるものである。SingleLayerWater Support を有効にする。Single layer water 対応 を参照する。

画質の問題

現象:移動すると残像や尾を引く

アンチエイリアスの方式によるものである。TSR と TAA は過去のフレームを使って時間方向に蓄積するため、3DGS が移動すると前のフレームの画面が残りやすい。

順に試して、画質と残像のバランスが取れる点を探す。

None → FXAA → MSAA → TAA → TSR

シーンに 3DGS しかない場合は None に設定してよい。残像も出ず、アンチエイリアスのコストも省ける。各パイプラインの既定値と設定場所は パフォーマンスパラメーター を参照する。

現象:画面がちらつく、縁が揺れる

効果の大きい順に試す。

  1. アンチエイリアスの方式を確認する。これがもっとも多い原因で、LCC2 パイプラインでは TSR を推奨する。パフォーマンスパラメーター を参照する。
  2. LCC パイプライン:Sort Factor を下げてソート頻度を上げる。ソート頻度が低すぎると、半透明の前後関係が数フレームごとにしか更新されず、画面がわずかに揺れて見える。
  3. Small Splat Threshold を確認する。値が大きすぎると遠景に粒状感が出る。
  4. カメラを前後に動かす過程で細かい構造がちらつく場合は Mip Filter を試す。不透明度の補正を伴うローパスフィルターを 1 回かけるため、スケールが変わっても安定する。.ply / .spz / .sog はこの項目が既定でオフになっている。

現象:画面に穴が空く、疎になる

SplatScale を小さくしすぎている。既定値 1.0 が上限で、小さくすると Overdraw が減ってフレームレートは上がるが、面が小さくなって隙間が見えるようになる。少し大きい方向に戻す。

現象:カラーがくすむ、平坦に見える

調色のパラメーターで対処する。画面調節 を参照する。よく使う方法は Contrast をわずかに上げる、または Gamma で暗部を持ち上げることである。コードのインターフェースは Color Adjustment を参照する。

現象:画面の継ぎ目が目立つ(LCC パイプライン)

LCC ファイルのバージョン 5.0 以上では継ぎ目が自動的に処理される。それより古いバージョンのデータでは 継ぎ目のカット を手動で有効にできる。対応するプロパティは bEnableSeamCutting である。

現象:シーンに線が 1 本入る

Actor のスケールを確認する。LCC 系の Actor(ALCCActor、ALCC2Actor、ASogActor、ASpzActor、APlyActor)は等比のスケールにのみ対応する。

次のような非等比のスケールは使わない。

  • 負の値を含むもの。たとえば (-1, 1, 1)
  • 軸ごとに値が異なるもの。たとえば (2, 1, 3)

3 つの軸は必ず一致させる。たとえば (1, 1, 1) や (2, 2, 2) にする。非等比のスケールはレンダリングの異常を招き、画面上では線が 1 本入るように見える。

ライティングの異常

現象:Lit に切り替えると画面が露出オーバーになる

撮影したデータのカラーには撮影現場のライティングがすでにベイクされており、シーンのライトがその上にもう 1 層重なる。

  • LCC2 パイプライン:LightingScale で元の明るさを下げる。法線とライティング を参照する
  • シーンのライティングの強度が高すぎないか確認する

現象:Lit モードでも立体感のある明暗が出ず、画面が平坦になる

これは想定どおりの挙動である。3DGS のデータはジオメトリ法線を持たないため、Fixed、ViewFacing、Hemispherical の 3 つのモードはいずれも近似的な手段で法線を作っており、全体の明るさの変化しか生み出せず、どれも形状の起伏に沿った明暗を作ることはできない。各モードの定義は ELCC2NormalGenerationMode を参照する。

実際の立体感のある明暗が必要な場合、それを実現できるのは ProxyMesh モードだけである。プロキシメッシュを作って配置する必要があり、ライセンスも必要になる。プロキシメッシュ と 法線とライティング を参照する。

3 つの近似モードの違いは、全体の明るさがライティングと視点に応じてどう変わるかであり、立体感のある明暗の有無ではない。

  • Fixed:全体で 1 つの固定法線を共有し、カメラが移動しても完全に安定する
  • ViewFacing:法線がカメラに追従し、視点を回すと全体の明るさが変わる
  • Hemispherical:法線が画面上の位置から固定の半球にマッピングされ、ディレクショナルライトを回したときの全体の明るさの遷移が前の 2 つより滑らかになる

現象:ProxyMesh モードを設定したが効果が出ない

確認項目確認方法
NormalMode が ProxyMesh になっているかDetails パネルを確認する
ライセンスが有効かプラグインパネルの Status を見る。緑のチェックはライセンスが正常であることを示す。コードから GetEffectiveNormalGenerationMode() を呼んでもよく、Fixed が返る場合はフォールバックしている
プロキシメッシュに StaticMesh があるかログに has a null StaticMesh の警告が出る
プロキシメッシュが 3DGS と空間的に重なっているかペアリングは位置で判定するため、重なっていないと効かない

詳しくは プロキシメッシュ を参照する。

現象:明暗が誤った位置に出る

プロキシメッシュと 3DGS の実際の表面のずれが大きすぎる。プロキシメッシュの一致度を改善するか、近似の法線モードに切り替える。後者は立体感のある明暗はないが、より安定している。

現象:ProxyMesh の影が近くにしか出ず、遠くでなくなる

影が距離で途切れている。これはエンジン自体の問題で、プラグインの不具合ではない。

解決方法:ProxyMesh Actor を選択し、Far Shadow(遠距離の影)をオフにしてから再度オンにすると、影が完全な状態に戻る。プロパティは StaticMeshComponent の Lighting カテゴリーにある。

現象:Lit モードで巨大な異常な影が出る

近似の法線モードは、特定のライティングの角度で異常を生じることがある。順に試す。

  1. NormalMode を切り替えて、どのモードで正常になるか確認する
  2. ディレクショナルライトの角度を調整する
  3. ProxyMesh モードに変更し、形状の合ったプロキシメッシュを用意する。これが最も結果の良い方法である

現象:影を有効にするとカラーが変わる

これは想定どおりの挙動である。3DGS が外部のライティングを受けるとカラーが光源に応じて変化するので、ディレクショナルライトのカラーと強度を調整すればよい。

現象:明るさが変わらない、シーン全体が暗めになる

プロジェクトで Composure のような合成プラグインを使っている場合は、Component の後処理関連のオプションをオフにし、Post Process Volume で露出を制御するように変更する必要がある。

露出関連の設定は 画面調節 を参照する。

現象:Niagara のエフェクトが 3DGS 上で見えない

LCC2 パイプラインは深度を出力するため、エフェクトのオクルージョンの関係は正しくなるので、通常この問題は起きない。

LCC パイプライン(.lcc データ)でのみ起こりうる。深度を出力しないため、半透明の前後関係をソートの優先度で決める必要があるからである。解決方法は、Niagara System の Translucent Sort Priority をより大きい値にして、3DGS の上にレンダリングさせることである。

現象:シーンの外周に雑然とした内容がある

それは環境データである。LoadMode を Both から OnlyMain に変更して、主体のみをレンダリングする。

現象:ライティングモードを切り替えても反応がない

点群モードでは SetLightMode が無効になり、代入をスキップして警告ログを出力する。まず 3DGS モードに戻す。

現象:Lit モードに切り替えてもライティング効果がない

フォワードレンダリングパイプライン(Forward Shading)には GBuffer がないため、リライティングは使用できない。LightMode を Lit に設定しても効果がない。

ディファードレンダリングパイプライン(Deferred Shading)に切り替えれば Lit モードが正常に動作する。Project Settings > Rendering > Forward Shading のチェックを外す。なお、UE の VR テンプレートではデフォルトで Forward Shading が有効になっているため、手動でオフにする必要がある。

パラメーターを変更しても効果がない

現象:Performance の数値を変更したが変化がない

各パラメーターの左側にはチェックボックスがあり、チェックしていない場合はプラグイン内蔵の既定値が使われて、入力した数値は反映されない。 これがもっともよくある落とし穴である。

各パラメーターの内蔵の既定値は パフォーマンスパラメーター を参照する。

現象:全量読み込みのパラメーターを変更したが変化がない

Use Full Load と Full Load Splat Number は読み込み時に判定されるため、変更後はデータを再読み込みしないと反映されない。

2 つの読み込み方式の違いは レンダリング を参照する。

現象:実行時にクリッピングボリュームや断面プレーンのプロパティを変更しても反応がない

bEnabled、Mode、VolumeType などのプロパティには Setter がないため、実行時に代入した後はその Actor の Refresh() を必ず呼ぶ。実行時にトランスフォーム(位置、回転)を変更した場合も同様である。

エディターで Details パネルからプロパティを変更した場合は自動的に更新されるので、手動で呼ぶ必要はない。

詳しくは ALCCClippingVolume を参照する。

現象:球面調和を有効にしても画面が変わらない

  • データが Portable タイプで、そもそも球面調和を含まない可能性がある。CanSetShcoef() で確認する。タイプの定義は EFileType を参照する
  • 点群モードでは SetUseShcoef が黙って無効になるので、まず 3DGS に戻す
  • LCC2 では SetUseShcoef で球面調和をオフにできる

現象:クリッピングボリュームを多く追加したが一部しか効かない

無償版は各種類 50 個に制限される。ログに明確な通知が出る:Unlicensed: enabled clipping volumes limited to 50 ...。ライセンスの説明は エディションとライセンス を参照する。

パフォーマンスの問題

フレームレートが低い場合の完全なチューニングの流れは パフォーマンス最適化ガイド を参照する。ここでは素早い判断のみを挙げる。

現象:フレームレートが低い

まずボトルネックが 3DGS かどうかを確認する。stat unit で Game / Draw / GPU の 3 項目を見て、次に stat XGrids で LCC 自身の処理時間を見る。LCC の処理時間の比率が高くない場合、問題はシーンの他の部分(ライティング、後処理、Blueprint のロジック)にあるので、LCC のパラメーターを調整しても改善しない。

3DGS が原因だと確認できたら、効果の大きい順に調整する。

  1. Level Factor を大きくする(もっとも効果が明らか)
  2. Max Distance を小さくする
  3. Max Splat Num を小さくする
  4. Start Level を上げて最も細かい階層をスキップする
  5. 球面調和をオフにする
  6. 必要なら 点群モード に切り替える

現象:ビデオメモリの使用量が多すぎる

  • Level Factor を大きくする
  • Max Splat Num を小さくする
  • LCC2 パイプラインでは LCC2 GPU Memory Budget を調整する
  • Max GPU Usage Percetage For Free の解放しきい値を調整する

ビデオメモリの割り当てルールと自動解放の仕組みは レンダリング を参照する。単一ファイル形式(.sog / .spz / .ply)は一度に全量が読み込まれるため、ビデオメモリの使用量は一定で視点によって変化しない。単一ファイル形式の読み込み上限 を参照する。

現象:読み込み時にカクつく

  • コリジョンを初めて有効にするときに 1 回ベイクのコストが発生するので、できるだけ読み込みの段階で有効にしておき、プレイヤーの操作中に途中で有効にしない
  • Max Load Collision Distance を小さくして、必要な範囲だけを読み込む
  • スレッドの設定を調整する。パフォーマンスパラメーター を参照する

現象:複数の 3DGS が交差しているときにオクルージョンの関係が誤る

  • LCC パイプライン:複数 Actor の半透明ソート を有効にする
  • LCC2 パイプライン:深度しきい値 を調整して深度の書き込み位置を変える

コリジョンとナビゲーション

現象:レイキャストが 3DGS に当たらない

確認項目対処
データにコリジョンが含まれているか単一ファイル形式はコリジョンデータを含まない。前提条件 を参照する
コリジョンが有効になっているかbEnableCollision をチェックする。有効にする を参照する
その位置にコリジョンが読み込まれているかShowCollision() でワイヤーフレームを見る。コリジョンの可視化 を参照する
検出距離がコリジョンの読み込み範囲を超えていないかMax Load Collision Distance を大きくする

ログに There is neither collision.bin nor collision.lci in the folder が出る場合は、データディレクトリにコリジョンファイルがない。

LCC1 には点群の位置に対するレイキャストのインターフェースも別にあるが、十分にテストされていないため、コリジョンとエンジンのレイキャストを優先して使うことを推奨する。ULCCComponent Raycast を参照する。

現象:キャラクターが最初から落下していく

コリジョンはブロック単位の動的読み込みなので、ゲーム開始直後はコリジョンデータの構築が終わっていない可能性がある。このときキャラクターの足元にコリジョンがなければ落下してしまう。

対処方法:

  • PlayerStart を地面から少し高い位置に置く
  • または数秒遅らせてからキャラクターの移動を許可する
  • できるだけ読み込みの段階でコリジョンを有効にし、プレイヤーが操作を始めてから有効にしない

現象:キャラクターがすり抜ける、一定の距離より外へ行くと落下する

コリジョンは距離に応じたストリーミング読み込みなので、読み込み範囲を超えた場所にはコリジョンボディがない。Max Load Collision Distance(m) を大きくして、キャラクターの活動範囲を覆う。

キャラクターの移動が速すぎる場合もコリジョンが追いつかないことがある。これも読み込み距離を大きくすることで緩和できる。

現象:NavMesh がまったく生成されない

確認項目対処
データにコリジョンが含まれていない.lcc または .lcc2 を使っていることを確認する。単一ファイル形式にはコリジョンデータがない
コリジョンが有効になっていないbEnableCollision をチェックし、CanEverAffectNavigation = true も確認する
コリジョンの読み込みが完了していないビューモードで Player Collision または Visibility Collision を選び、対象領域にコリジョンボディが現れていることを確認する
コリジョンの読み込み範囲が不足しているMax Load Collision Distance(m) を大きくして AI の活動領域全体を覆う
NavMeshBoundsVolume がない、または覆っていない配置して対象領域を覆うまで拡大縮小する
ナビゲーションを再構築していないBuild → Build Paths を実行してレベルを保存する

完全な流れは ナビゲーションシステム対応 を参照する。

クラッシュ

現象:ArraySliceIndex のアサーションエラーが出てクラッシュする

次のような形のエラーが出る。

Assertion failed: ArraySliceIndex >= 0

原因は、現在のバージョンがSubstrate の Adaptive GBuffer 形式に対応していないことである。

解決方法:

  1. ProjectSettings > Rendering を開き、Substrate GBuffer Format (Project) を見つける。
  2. 値を BlendableGBuffer に変更する。これがエンジンの既定値である。
  3. エンジンを再起動する。

AdaptiveGBuffer は非互換であることが分かっている形式で、BlendableGBuffer では正常に動作する。

ライセンスの問題

まずプラグインパネルの Status を見る。 緑のチェックはライセンスが正常であることを示し、この状態なら Pro 版の機能が使える。緑のチェックでない場合はライセンスが有効になっていないので、ログで原因を確認する。

ログのライセンス関連の情報はいずれも比較的明確なので、内容に従って対処する。

ログの情報意味と対処
ProjectID is invalid; generate one in Project Settingsプロジェクトに Project ID がない。Project Settings > Project > Description で生成する
Failed to decode AppKey, please check.AppKey の内容が不完全か、コピーの誤りがある。もう一度コピーする
Invalid AppKey, please check.AppKey の形式が正しくない。開発者プラットフォームから取得した完全な文字列であることを確認する
Authorization has expired, please check.ライセンスの期限が切れている。開発者プラットフォームで再生成する
AppKey has expired. Please generate a new one.同上
HTTP request failed / HTTP error! Status: <code>ネットワークの問題か、ライセンスサーバーにアクセスできない。ネットワークとファイアウォールを確認する
Signature Verification Failed署名の検証に失敗した。テクニカルサポートに連絡する

ライセンスの流れは エディションとライセンス を参照する。

コンパイルとパッケージ化

現象:バイナリファイルが足りない、またはモジュールのコンパイルが失敗する

次のいずれかのエラーが出た場合は、本節の手順でプロジェクトを再生成してコンパイルする。

Missing UnrealGame binary. You may have to build the UE project with your IDE.
Alternatively, build using UnrealBuildTool with the commandline:
UnrealGame <Platform> <Configuration>
*** could not be compiled. Try rebuilding from source manually

原因は、C++ プロジェクトにプラグインを追加した後、エンジンが新しいモジュールを検出したが対応するコンパイル成果物がないことである。次の手順で対処する。

  1. プロジェクトを閉じる。
  2. プロジェクトに対応する *.uproject ファイルを見つける。
  3. *.uproject を右クリックし、メニューから Generate Visual Studio project files を選ぶ。
  4. VS のプロジェクトの再生成が完了するまで待つ。
  5. *.sln をダブルクリックして Visual Studio を開く。
  6. ソリューションエクスプローラーでプロジェクトを右クリックし、Set as Startup Project を選んで、スタートアッププロジェクトになっていることを確認する。
  7. プロジェクトの構成が Development Editor と Win64 になっていることを確認する。
  8. Debug > Start Without Debugging をクリックしてプロジェクトを起動する。
  9. コンパイルが通れば通常どおりプロジェクトを開ける。以降は *.uproject を直接ダブルクリックして開けばよく、毎回この流れを踏む必要はない。

上記の手順を行っても失敗する場合は、先にプロジェクトの Intermediate ディレクトリを削除し、手順 3 からもう一度実行する。

プラグインのインストール手順は クイックスタート を参照する。

現象:パッケージ化が失敗する

まず次の 3 点を確認する。

  • ProjectSettings > Packaging の Full Rebuild はオフのままにする。あわせて VS で Rebuild を実行しない。プラグインはこの 2 つの方式に対応していない。クイックスタート を参照する
  • C++ プロジェクトを使っていることを確認する。Blueprint プロジェクトはパッケージ化できない
  • エンジンバージョンが対応範囲内であることを確認する(UE 5.4 ~ 5.8)

具体的なエラーは以下の 2 つの節を参照する。

現象:パッケージ化時にプリコンパイルマニフェストが足りないというエラーが出る

次のような形のエラーが出る。

Missing precompiled manifest for 'LCC4UnrealRuntime',
'\Shipping\LCC4UnrealRuntime\LCC4UnrealRuntime.precompiled'.
This module was most likely not flagged for being included in a precompiled build
- set 'PrecompileForTargets = PrecompileTargetsType.Any;' in LCC4UnrealRuntime.build.cs
to override. If part of a plugin, also check if its 'Type' is correct.

なぜ起きるか: エラーが指しているこれらのファイルは、もともとプラグインと一緒に配布されており、プラグインの Intermediate ディレクトリにある。ProjectSettings > Packaging の Full Rebuild を実行したり、VS で Rebuild を実行したりすると、エンジンが Intermediate ディレクトリをクリアし、これらのプリコンパイル成果物も一緒に削除してしまう。

LCC4Unreal はバイナリのプラグインでソースを含まないため、削除された成果物は再コンパイルして生成できない。プラグインパッケージから復元するしかない。したがってこの 2 つの操作は避ける必要がある。

修復方法:

  1. ProjectSettings > Packaging の Full Rebuild がオフになっていることを確認し、VS で Rebuild を実行しない。
  2. プラグインの lcc4unreal/Intermediate/Build/Win64/UnrealGame ディレクトリの内容を、プロジェクトの <プロジェクトディレクトリ>/Intermediate/Build/Win64/<プロジェクト名> ディレクトリにコピーする。
  3. プラグインの lcc4unreal/Intermediate/Build/Win64/x64 ディレクトリの内容を、プロジェクトの <プロジェクトディレクトリ>/Intermediate/Build/Win64/x64 ディレクトリにコピーする。
  4. エンジンを再起動してから再パッケージ化する。

手順 2 のコピー先のディレクトリ名はプロジェクト名であり、UnrealGame ではない。たとえばプロジェクト名が MyProject なら、コピー先のパスは MyProject/Intermediate/Build/Win64/MyProject になる。

エラーが他のファイルを指している場合: 上の 2 つのディレクトリでよくあるケースは網羅できる。エラーが別のファイルを指している場合も同じ考え方で対処し、プラグインの Intermediate ディレクトリ内で同じ相対パスにあるそのファイルを見つけて、プロジェクトの対応する位置にコピーすればよい。

プラグインの Intermediate ディレクトリ自体もクリアされてしまった場合: コピー元がなくなるので、プラグインパッケージを再ダウンロードして解凍し上書きすれば復元できる。

現象:カスタムエンジンでコンパイルが通らない

公開されているプラグインパッケージは Epic が公式にリリースしたエンジンにのみ適用できる。ベンダーのカスタムブランチ、UE をベースに二次開発された商用エンジン、ソースを独自に改変したエンジンはいずれもカスタムの対応が必要になる。カスタムエンジンバージョン を参照する。

現象:Android へのパッケージ化でエラーが出る

現在のバージョンは Android プラットフォームへの直接のパッケージ化に対応していない。これはプラットフォームの互換性の制限であり、パッケージ化の設定を変更しても解決しない。

VR デバイスで使う必要がある場合は、PC 側で実行してストリーミングする方式を使う。クイックスタート - Quest3 を参照する。

それでも解決しない場合

次の情報を集めてから連絡する。お問い合わせ を参照する。

  • プラグインのバージョンとエンジンのバージョン
  • データ形式とおおよその規模
  • 問題が起きた実行時の完全なログファイル。フィルターをかけず、エラーの数行だけを切り出さない
  • 再現手順
  • グラフィックスカードの型番とドライバーのバージョン

ログファイルの場所やその他の詳細は ログと診断 を参照する。

前へ
よくある質問
次へ
ログと診断