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

    • PortalCam P1

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

    • Lixel K1

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

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

    • Lixel L2 Pro

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

      • 製品概要
      • デバイスの基本操作
      • デバイスのアクティベーションと接続
      • デバイス収集
      • 絶対座標点群データの取得
      • 付録
  • アクセサリー

    • Stick Light

      • 取り付けガイド
      • 基本操作
      • よくある質問
  • 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 とトラブルシューティング
    • LCC Studio Linux

      • 製品概要説明
      • 基本アーキテクチャマニュアル
      • インストールと展開説明書
      • コンテナ起動パラメータ説明書
      • CodeMeter オフラインライセンス展開説明書
      • APIコマンドセット
      • 付録-開発者データマニュアル
      • 付録-エラーコード一覧
      • シングルノードマルチGPUクラスタ展開QuickStart
    • 活用テクニック

      • 複数の大規模 3DGS モデルの統合ワークフロー
    • バージョン履歴
  • プラグインと SDK

    • Unreal

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

        • LixelStudio メッシュで 3DGS をリライティングする
      • API リファレンス

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

        • v3.4.0
        • 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
    • Unity

      • Unity SDK の概要
      • 技術的特徴
      • 開発環境の要件
      • PC クイックスタートガイド
      • プロジェクト設定の最適化ガイド
      • Pico 4 Ultra 開発ガイド
      • Pico 4 Ultra PC ストリーミングガイド
      • Quest 3 開発ガイド
      • Quest 3 PC ストリーミングガイド
      • OpenXR 開発ガイド
      • Pico 4 Ultra Business Streaming ガイド
      • 用語集
      • FAQ
      • お問い合わせ
      • 機能開発ガイド

        • 複数シーン混合レンダリング開発ガイド
        • 影の受光開発ガイド
        • リアルタイムライティング開発ガイド
        • マルチカメラレンダリング開発ガイド
        • 高解像度画像レンダリング開発ガイド
        • LCC / LCC2 データ形式互換性開発ガイド
        • 読み込みエフェクト開発ガイド
        • Mip レンダリングモード切り替え開発ガイド
        • エッジ・コーナースナップ開発ガイド
        • 投影デカール開発ガイド
        • ビデオ投影デカール開発ガイド
        • ハイライト開発ガイド
        • リアルタイムクリッピング開発ガイド
        • カラー調整開発ガイド
        • シーン Mesh データ取得開発ガイド
        • エディターモード開発ガイド
        • レンダリングパフォーマンスパラメータ設定ガイド
        • アプリケーションとデータの同梱パッケージ開発ガイド
        • コリジョンシステム開発ガイド
        • macOS 開発の権限問題ガイド
        • iOS デバイスのコンパイル・パッケージ化開発ガイド
      • API リファレンス

        • LCCManager
        • Renderer
        • データ型
      • 変更履歴

        • v2.3.0
        • v2.2.10
        • v2.2.0
        • v2.1.19
        • v2.0.14
    • Web

      • はじめに
      • レンダリング性能最適化ガイド
      • グラフィックス設定
      • よくある質問
      • API リファレンス

        • LCCRender::clearIndexDB
        • LCCRender::dispose
        • LCCRender::load
        • LCCRender::setCamera
        • LCCRender::unload
        • LCCRender::update
        • LCCObject::checkRenderNextFrame
        • LCCObject::clearRenderNextFrame
        • LCCObject::ecef2Prj
        • LCCObject::getBounds
        • LCCObject::getEnvInstancedMesh
        • LCCObject::getInstancedMesh
        • LCCObject::getLodInfos
        • LCCObject::getOriginPosition
        • LCCObject::getProjectionCoordinateSystemInfos
        • LCCObject::hasCollision
        • LCCObject::hasEnvironment
        • LCCObject::hasShcoef
        • LCCObject::intersectsCapsule
        • LCCObject::intersectsRayExt
        • LCCObject::intersectsRayFromOriginExt
        • LCCObject::intersectsSphere
        • LCCObject::lowerToBottom
        • LCCObject::prj2Ecef
        • LCCObject::raiseToTop
        • LCCObject::raycast
        • LCCObject::raycastFromOrigin
        • LCCObject::setAlpha
        • LCCObject::setClipBox
        • LCCObject::setClipPlane
        • LCCObject::setEndLod
        • LCCObject::setLodAutoLevelUp
        • LCCObject::setMaxDistance
        • LCCObject::setMaxNodeSplats
        • LCCObject::setMaxSplats
        • LCCObject::setOriginPosition
        • LCCObject::setPointsColor
        • LCCObject::setRenderState
        • LCCObject::setRotation
        • LCCObject::setScale
        • LCCObject::setSemantic
        • LCCObject::setSemanticColor
        • LCCObject::setSmooth
        • LCCObject::setStartLod
        • LCCObject::setTranslation
        • LCCObject::setVisible
        • LCCObject::togglePointsDisplayMode
        • LCCObject::useEnvironment
        • LCCObject::useShcoef
      • 更新履歴

        • v0.6.3
        • v0.6.2
        • v0.6.1
        • v0.6.0
        • v0.5.5
        • v0.5.4
        • v0.5.3
        • v0.5.2
        • v0.5.1
        • v0.5.0
        • v0.4.1
        • v0.4.0
        • v0.3.1
        • v0.3.0
        • v0.2.0

LCCManager:コアマネージャー

LCC Unity SDK の中核マネージャーで、すべての Renderer インスタンス、カメラ、グローバルレンダリング状態、編集操作(クリッピング / ハイライト / カラー調整)、デカール投影、スナップ、インタラクションクエリ(レイキャスト / コリジョン)の管理を担当します。シーン全体に LCCManager インスタンスは 1 つだけ存在すべきです。

名前空間LCCCore
基底クラスMonoBehaviour

LCCManager には公開プロパティがありません。すべての機能はメソッドを通じてアクセスします。メソッドは目的別にグループ化されています。

  • 初期化と設定
  • ランタイムレンダリング制御
  • ライティングと影
  • カメラ管理
  • クリッピング / ハイライト / カラー調整
  • デカール投影
  • スナップ
  • レイキャスティングとコリジョンクエリ
  • ビジュアルエフェクト
  • インスタンスクエリ

初期化と設定

以下のメソッドは、データ読み込み前にプラットフォーム、レンダーモード、容量などの事前設定を完了するために使用します。ほとんどのメソッドは 任意の Renderer.Load() の前に呼び出す必要があります。

SetPlatformType

public void SetPlatformType(PlatformType _type)

SDK の対象ランタイムプラットフォームを設定します。内部のレンダリング戦略とリソース割り当てに影響します。

パラメータ型説明
_typePlatformType対象プラットフォーム。PlatformType を参照

注:

  • 任意の GetRender() 呼び出しの前に実行する必要があります。

例:

lccManager.SetPlatformType(PlatformType.PC);

SwitchRenderPass

public void SwitchRenderPass(ActiveRenderMode _mode)

グローバルレンダリングアーキテクチャモードを設定します。MultiRender は共有 GPU バッファを使用し、最大 255 個の Renderer を同時にレンダリングできます。SingleRender は SDK がデータサイズに基づいてレンダリングパスを自動選択します。

パラメータ型説明
_modeActiveRenderModeレンダーモード。ActiveRenderMode を参照

注:

  • 任意の Renderer.Load() の前に呼び出す必要があります。
  • PC / Mac プラットフォームでのみ有効です。モバイル / VR プラットフォームは自動的に適応戦略を採用し、このメソッドの呼び出しは拒否されます。
  • MultiRender モードは HTTP データソースに対応していません。HTTP データには SingleRender を使用します。
  • いずれかの Renderer が Load() を完了すると、モードはロックされ、再度切り替えることはできません。

例:

lccManager.SwitchRenderPass(ActiveRenderMode.MultiRender);

GetRender(オーバーロード 1:Transform をバインド)

// 戻り値: Renderer。失敗時は null
public Renderer GetRender(Transform _transform)

新しいレンダリングインスタンスを作成し、指定した Transform にバインドします。作成後、データ読み込みには Renderer.Load() を呼び出す必要があります。

パラメータ型説明
_transformTransformレンダリングインスタンスがアタッチされる Transform

注:

  • 先に SetPlatformType() と SetMainCamera() を呼び出す必要があります。
  • MultiRender モードでは最大 255 個の Renderer に対応します。

例:

var go = new GameObject("LCCScene");
var renderer = lccManager.GetRender(go.transform);
renderer.Load(filePath, null, () => Debug.Log("読み込み完了"));

GetRender(オーバーロード 2:GameObject を自動生成)

// 戻り値: Renderer。失敗時は null
public Renderer GetRender(out GameObject gameObject)

LCCRenderer という名前の GameObject を自動生成し、レンダリングインスタンスをその Transform にバインドします。

パラメータ型説明
gameObjectout GameObject自動生成された GameObject を出力。失敗時は null

例:

var renderer = lccManager.GetRender(out GameObject go);
renderer.Load(filePath, null, () => Debug.Log("読み込み完了"));

SetMaxBufferSplat

public void SetMaxBufferSplat(int _count)

GPU バッファの最大容量(Splat 数)を設定します。一度だけ割り当てられ、動的に変更できません。

パラメータ型説明
_countint最大 Splat 数。単位:万(値 × 10000 = 実際の数)

注:

  • 任意の Renderer.Load() の前に呼び出す必要があり、先に SetPlatformType() を呼び出す必要があります。
  • 容量が大きいほどビデオメモリ使用量が高くなります。必要に応じて設定してください。
  • プラットフォーム制限:PC / Mac / PCVR 4500 万、Android / iOS 600 万、VR(Pico / Quest / PicoSwan / AVP / OpenXR)200 万。
  • デフォルト:PC / Mac 3000 万、Android / iOS 300 万、VR 100 万。

例:

lccManager.SetMaxBufferSplat(3000); // 3000 万ポイント

SetFullRenderSplat

public void SetFullRenderSplat(int _count)

PC / Mac 全量レンダリングの上限閾値を設定します。データサイズがこの値未満の場合、全量レンダリングパスを使用し、それ以外はチャンクレンダリングパスを使用します。

パラメータ型説明
_countint全量レンダリング上限。単位:万。範囲 [100, 4500]

注:

  • PC / Mac / PCVR プラットフォームのみ対応。
  • 任意の Renderer.Load() の前に呼び出す必要があり、先に SetPlatformType() を呼び出す必要があります。

例:

lccManager.SetFullRenderSplat(2500); // 2500 万ポイント

SetMaxRenderSplats

public void SetMaxRenderSplats(int _count)

実行時に毎フレームレンダリングされる Splat の最大数を設定します。Load() 後に動的に呼び出せます。

パラメータ型説明
_countint実行時にレンダリングされる最大 Splat 数。単位:万

注:

  • 実行時に動的に調整できます。
  • SetMaxBufferSplat() で設定した容量を超えることはできません。超えた場合は自動でクランプされます。
  • 全量レンダリングモードでは効果がありません。

例:

lccManager.SetMaxRenderSplats(2500); // 2500 万ポイント

GetLoadRatio

// 戻り値: float、[0,1] 現在のデータ読み込み進捗
public float GetLoadRatio()

現在のシーンデータの読み込み進捗を照会します。

注:

  • 全量レンダリングモードでは常に 1.0 を返します。
  • チャンクレンダリングモードでは、現在のビューで読み込み済みノードの割合を返します。値はカメラ移動に応じてリアルタイムに変化し、単調増加する全体進捗ではありません。

例:

float ratio = lccManager.GetLoadRatio();
progressBar.value = ratio;

SetSelectionMode

public void SetSelectionMode(SelectionMode mode)

ノード選択戦略を設定します。

パラメータ型説明
modeSelectionMode選択戦略。SelectionMode を参照

注:

  • Auto(デフォルト):シーンの全体バウンディングボックスに基づいて自動決定します。シーンの最大寸法が約 380 メートルを超えると、自動的に Large にアップグレードされます。
  • Normal:中小規模のシーンに適します。
  • Large:超大規模シーン(1000 メートル超)に適します。
  • 切り替え時に即時反映されます。

例:

lccManager.SetSelectionMode(SelectionMode.Auto);

ランタイムレンダリング制御

以下のメソッドは実行時に動的に呼び出して、レンダリング精度、表示効果、レンダリングのトグルを調整できます。

SetDetailLevel

public void SetDetailLevel(float sse)

レンダリング精度レベルを設定します。値が大きいほどレンダリングは細かくなり、パフォーマンス消費が高くなります。

パラメータ型説明
ssefloat精度レベル。範囲 [1, 100]、超えた場合は自動でクランプ

注:

  • 対数マッピングを使用します。低値域は変化に敏感で、高値域は滑らかです。
  • 実行時に動的に調整できます。
  • Normal 選択モードでのみ有効です。

例:

lccManager.SetDetailLevel(50f); // 中精度

SetStartLod

public void SetStartLod(int lod)

LOD 展開の開始点を設定します(0 始まり)。0 が最も細かく、数値が大きいほど粗いレベルになります。

パラメータ型説明
lodintLOD 開始レベル。範囲 [0, 10]、超えた場合は自動でクランプ

注:

  • 実際の有効上限はデータの総レベル数によって制約されます。

例:

lccManager.SetStartLod(0);

SetAutoFov

public void SetAutoFov(bool _auto)

レンダリング FOV を自動管理するかどうかを設定します。有効時(デフォルト)、SDK は最初のフレームでピクセル焦点距離のベースラインをロックし、その後毎フレーム現在のビューポート高さから垂直 FOV を逆算して Camera.fieldOfView に書き戻します。無効時、fieldOfView は外部(SetFOV() またはカメラの直接変更)で制御されます。

パラメータ型説明
_autobool自動 FOV を使用するかどうか

注:

  • デフォルトで有効です。
  • 有効時はメインカメラの Camera.fieldOfView を継続的に書き換えるため、SetFOV() の呼び出しは無視されます。
  • 無効時は SetFOV() を手動で呼び出してパラメータを設定する必要があります。

例:

lccManager.SetAutoFov(true);

SetFOV

public void SetFOV(int _width, int _height, float _verticalFov, float _aspect)

垂直 FOV(度)を手動設定します。メインカメラの Camera.fieldOfView を直接書き換えるため、Inspector の FOV が実際のレンダリング FOV と一致します。_width / _height / _aspect はレガシーシグネチャのパラメータで、実際の投影はメインカメラ自身のビューポートを使用します(異なるサイズ / FOV のオフスクリーン出力には SetRecordMode() を使用します)。

パラメータ型説明
_widthintピクセル幅
_heightintピクセル高さ
_verticalFovfloat垂直 FOV(度)
_aspectfloatアスペクト比

注:

  • 先に SetAutoFov(false) を呼び出す必要があります。さもないと毎フレームの自動 FOV 逆算が手動値を上書きします。
  • 垂直 FOV は [1, 179] 度にクランプされます。
  • VR / PCVR プラットフォーム、録画中、正射投影カメラでの呼び出しは拒否されます(警告して戻ります)。

例:

lccManager.SetFOV(1920, 1080, 60f, 1.778f);

SetRenderEnable

public void SetRenderEnable(Renderer _renderer, bool _isEnable)

実行時に指定 Renderer のレンダリングトグルを制御します。無効にすると走査と描画に参加しません。

パラメータ型説明
_rendererRenderer対象レンダリングインスタンス
_isEnableboolレンダリングを有効にするかどうか

例:

lccManager.SetRenderEnable(renderer, false); // 非表示

SetEnvironment

public void SetEnvironment(Renderer _renderer, bool _isRender)

指定 Renderer の環境データレンダリングを制御します。環境データは遠景を埋めるために使われる低精度の背景点群です。

パラメータ型説明
_rendererRenderer対象レンダリングインスタンス
_isRenderbool環境データをレンダリングするかどうか

注:

  • データに環境ノードが含まれている必要があります。

例:

lccManager.SetEnvironment(renderer, true);

SetZDepth

public void SetZDepth(bool zwrite)

Z 深度書き込みを切り替え、レンダリングキューを適宜調整します。

パラメータ型説明
zwriteboolZ 深度書き込みを有効にするかどうか

例:

lccManager.SetZDepth(true);

SetAlpha

public void SetAlpha(float alpha)

グローバル不透明度を設定します。

パラメータ型説明
alphafloatグローバル不透明度。範囲 [0, 1]、超えた場合は自動でクランプ

例:

lccManager.SetAlpha(0.8f);

SetLightIntensity

public void SetLightIntensity(float intensity)

グローバルライト強度を設定します。

パラメータ型説明
intensityfloatライト強度。範囲 [0, 1]、超えた場合は自動でクランプ

例:

lccManager.SetLightIntensity(0.7f);

SetLowPassFilter

public void SetLowPassFilter(float _filter)

グローバルローパスフィルタ強度を設定し、高周波のエイリアシング / ノイズを抑制します。

パラメータ型説明
_filterfloatローパスフィルタ強度。範囲 [0, 1]、超えた場合は自動でクランプ

例:

lccManager.SetLowPassFilter(0.3f);

SetLockFPS

public void SetLockFPS(bool _isLock)

フレームレートのロック(静的 / 動的フレームレート切り替え)を切り替えます。

パラメータ型説明
_isLockboolフレームレートをロックするかどうか

例:

lccManager.SetLockFPS(true);

SetRenderLayer

public void SetRenderLayer(int _layer)

LCC レンダリングが使用する Unity Layer を設定し、カメラの CullingMask 可視性制御に使用します。

パラメータ型説明
_layerintUnity レンダリングレイヤー。範囲 [0, 31]

注:

  • 実行時に動的に調整できます。

例:

lccManager.SetRenderLayer(8); // レイヤー 8 を使用

SetForceRefresh

public void SetForceRefresh()

レンダリングのリフレッシュを強制します。内部のカメラ情報キャッシュをクリアし、次のフレームでフラスタム、LOD などのパラメータが再計算されるようにします。外部で変更したカメラパラメータを即時に反映させる必要がある場合に適しています。

例:

lccManager.SetForceRefresh();

SetMipMode

public void SetMipMode(MipMode _mipMode)

Mip レンダリングモードを切り替えます。Mip モードはミップマップサンプリングを使用し(デフォルト)、Non_Mip モードはミップマップを無効化します。

パラメータ型説明
_mipModeMipMode目標モード。MipMode を参照

注:

  • 現在のモードが渡されたモードと同じ場合は即座に戻ります。
  • 切り替え時に即時反映されます。

例:

lccManager.SetMipMode(MipMode.Non_Mip);

SetGraphicsAPI

public void SetGraphicsAPI(GraphicsDeviceType type)

グラフィックス API タイプを設定します。DX11 モードでは HDR が有効になります。

パラメータ型説明
typeGraphicsDeviceTypeグラフィックス API タイプ(Unity 内蔵列挙型)

例:

lccManager.SetGraphicsAPI(GraphicsDeviceType.Direct3D11);

SetDebugMode

public void SetDebugMode(bool debug)

デバッグモードを切り替えます。

パラメータ型説明
debugboolデバッグモードを有効にするかどうか

注:

  • PC / Mac プラットフォームのみ対応。

例:

lccManager.SetDebugMode(true);

SetEditorMode

public void SetEditorMode(bool _isEditor)

エディターモードを切り替えます。

パラメータ型説明
_isEditorboolエディターモードを有効にするかどうか

注:

  • PC / Mac プラットフォームのみ対応。

例:

lccManager.SetEditorMode(true);

SetAECMode

public void SetAECMode(bool _aec)

AEC(Architecture / Engineering / Construction)モードを切り替えます。

パラメータ型説明
_aecboolAEC モードを有効にするかどうか

注:

  • PC / Mac プラットフォームのみ対応。

例:

lccManager.SetAECMode(true);

SetSemantic

// 戻り値: bool。false=無効なパラメータ
public bool SetSemantic(bool enable, Vector4[] color = null)

セマンティックレンダリングモードを切り替えます。有効時、カラー配列を渡して各セマンティックカテゴリの表示色を定義できます。

パラメータ型説明
enableboolセマンティックレンダリングを有効にするかどうか
colorVector4[]セマンティックカラー配列。長さは 100 である必要があり、そうでない場合は false を返します。デフォルトカラーを使用するには null を渡します

例:

Vector4[] colors = new Vector4[100];
colors[0] = new Vector4(1, 0, 0, 1); // カテゴリ 0 = 赤
lccManager.SetSemantic(true, colors);

SwitchRenderMode

public void SwitchRenderMode(RenderMode mode, Texture2D tex = null)

点群レンダリングと 3DGS レンダリングを切り替えます。点群モードでは標高カラーランプテクスチャを提供できます。

パラメータ型説明
modeRenderModeレンダリングモード。RenderMode を参照
texTexture2D標高カラーランプテクスチャ(省略可)

注:

  • PC / Mac プラットフォームのみ対応。

例:

lccManager.SwitchRenderMode(RenderMode.PointCloud, elevationTex);

SetRecordMode

public void SetRecordMode(bool isRecord, Vector2 renderSize, float verticalFov)

録画モードを設定します。録画モードでは固定解像度と FOV でレンダリングされ、HD ビデオ録画に適しています。

パラメータ型説明
isRecordbool録画モードを使用するかどうか
renderSizeVector2録画解像度
verticalFovfloat垂直 FOV(度)

注:

  • PC / Mac プラットフォームのみ対応。
  • 録画モードではカメラ焦点距離が固定され、Camera コンポーネントに追従しません。
  • 録画後、SetRecordMode(false, ...) を呼び出して復元します。

例:

lccManager.SetRecordMode(true, new Vector2(3840, 2160), 60f);

SetVRPerformance

public void SetVRPerformance(bool _enabled)

VR 高性能ソートモードを設定します。true は GPU 基数ソート(GpuSorter)を使用し、false は CPU / BitonicSorter にフォールバックします。

パラメータ型説明
_enabledboolGPU 高性能ソートを有効にするかどうか

注:

  • VR ヘッドセット(Pico / Quest / PicoSwan / OpenXR)のソートパスのみに影響し、デフォルトで有効です。
  • コンピュートデバイスがない場合(Mali など)、ソート上流は自動的に CPU にフォールバックし、このトグルの影響を受けません。

例:

lccManager.SetVRPerformance(true);

ライティングと影

以下のメソッドは 3DGS サーフェスへの影受光とカスタムポイントライトを制御します。影関連メソッドは LCC シーンの読み込み完了後 に呼び出す必要があります。

SetShadowReceive

public void SetShadowReceive(bool enable)

点群の影受光を切り替えます。有効にすると、シーン内の Mesh オブジェクトの影を 3DGS 点群サーフェスに落とせます。

パラメータ型説明
enablebool影を受光するかどうか

注:

  • デフォルトでは無効です。
  • シーンに影を落とす Mesh オブジェクトと Directional Light が必要です。

例:

lccManager.SetShadowReceive(true);

SetShadowColor

public void SetShadowColor(Color color)

影領域の色を設定します。

パラメータ型説明
colorColor影の色(RGBA)

注:

  • デフォルト (0.3, 0.3, 0.3, 1)。
  • 先に SetShadowReceive(true) を有効化する必要があります。

例:

lccManager.SetShadowColor(new Color(0.3f, 0.3f, 0.3f, 1f));

SetShadowStrength

public void SetShadowStrength(float strength)

影の強さを設定します。0 は影なし、1 は最も強い影です。

パラメータ型説明
strengthfloat影の強さ。範囲 [0, 1]、超えた場合は自動でクランプ

注:

  • デフォルト 1.0。
  • 先に SetShadowReceive(true) を有効化する必要があります。

例:

lccManager.SetShadowStrength(0.8f);

SetLights

// 戻り値: int。0=成功、-1=最大数制限を超えた
public int SetLights(List<PointLightData> lights)

カスタムポイントライトリストを設定します。null または空リストを渡すとカスタムライティングがオフになります。

パラメータ型説明
lightsList<PointLightData>ポイントライトリスト。PointLightData を参照

注:

  • PointLightData.lightType:0 はポイントライト(direction / spotAngle は無視)、1 はスポットライト(direction / spotAngle が必要)。
  • null または空リストを渡すとカスタムライティングがオフになります。

例:

using Unity.Mathematics; // float3

var lights = new List<PointLightData>();
lights.Add(new PointLightData {
    position = new float3(0, 5, 0),
    lightType = 0,              // 0=ポイントライト、1=スポットライト
    color = new float3(1, 1, 1),
    intensity = 2f,
    range = 10f
});
lccManager.SetLights(lights);

カメラ管理

SetMainCamera

public void SetMainCamera(Camera _cam)

メインレンダリングカメラを設定します。LCC はこのカメラをフラスタムカリング、LOD 選択、ソートなどの操作に使用します。

パラメータ型説明
_camCameraメインレンダリングカメラ。null を渡すとクリア

注:

  • Renderer.Load() の前に設定する必要があります。
  • PC / Mac プラットフォームのみ対応。

例:

lccManager.SetMainCamera(Camera.main);

AddCamera

public void AddCamera(Camera _cam)

サブカメラを追加します。サブカメラはレンダリングに参加しますが、LOD 選択には影響しません。

パラメータ型説明
_camCameraサブカメラ

注:

  • PC / Mac プラットフォームのみ対応。
  • メインカメラをサブカメラとして追加することはできません。

例:

lccManager.AddCamera(secondCamera);

RemoveCamera

public void RemoveCamera(Camera _cam)

追加したサブカメラを削除します。

パラメータ型説明
_camCamera削除するサブカメラ

注:

  • PC / Mac プラットフォームのみ対応。

例:

lccManager.RemoveCamera(secondCamera);

クリッピング / ハイライト / カラー調整

クリッピング、ハイライト、カラー調整は 3 種類の編集操作で、いずれも 2D テクスチャ、3D ジオメトリ、またはその組み合わせで影響領域を定義できます。Data2D、Data3D、DataMix、ToneMix を参照してください。

SetClip(平面クリッピング)

// 戻り値: int。0=成功
public int SetClip(Vector3 planePoint, Vector3 planeNormal, bool inside = true)

無限平面で点群をクリッピングし、法線側またはその反対側の点を保持します。

パラメータ型説明
planePointVector3平面上の 1 点
planeNormalVector3平面の法線
insidebooltrue は法線側を保持

注:

  • 他のクリッピングモードと相互排他的です。

例:

lccManager.SetClip(Vector3.zero, Vector3.up, true); // 地面より上を保持

SetClip(2D テクスチャクリッピング)

// 戻り値: int。0=成功、1=空リスト、2=最大数を超えた
public int SetClip(List<Data2D> _2Ds)

2D 投影テクスチャマスクを使用して点群をクリッピングします。

パラメータ型説明
_2DsList<Data2D>2D テクスチャ選択リスト

例:

var clips = new List<Data2D>();
clips.Add(new Data2D {
    texture = maskTex,
    mv = modelViewMatrix,
    mvp = mvpMatrix,
    mode = SelectMode.normal
});
lccManager.SetClip(clips);

SetClip(3D ジオメトリクリッピング)

// 戻り値: int。0=成功、1=空リスト、2=最大数を超えた、3=有効なジオメトリが 0
public int SetClip(List<Data3D> _3Ds)

3D ジオメトリで点群をクリッピングし、複数のジオメトリを組み合わせるブール演算に対応します。

パラメータ型説明
_3DsList<Data3D>3D ジオメトリリスト

注:

  • 少なくとも 1 つの operation == normal のジオメトリが必要です。

例:

var clips = new List<Data3D>();
clips.Add(new Data3D {
    type = ShapeType.box,
    invMat = boxInverseMatrix,
    operation = OperationMode.normal,
    mode = SelectMode.normal
});
lccManager.SetClip(clips);

SetClip(混合モードクリッピング)

// 戻り値: int。0=成功、1=空リスト、2=最大数を超えた
public int SetClip(List<DataMix> mix)

2D テクスチャと 3D ジオメトリの混合でクリッピング領域を定義します。各エントリは editType でタイプを指定します。

パラメータ型説明
mixList<DataMix>混合選択リスト(2D + 3D)

例:

var mix = new List<DataMix>();
mix.Add(new DataMix {
    editType = EditType.Edit3D,
    type = ShapeType.box,
    invMat = matrix,
    operation = OperationMode.normal,
    mode = SelectMode.normal
});
lccManager.SetClip(mix);

QuitClipMode

public void QuitClipMode()

クリッピングモードを終了し、点群全体の表示を復元します。

例:

lccManager.QuitClipMode();

SetHighlight(2D テクスチャハイライト)

// 戻り値: int。0=成功、1=空リスト、2=最大数を超えた
public int SetHighlight(List<Data2D> _2Ds)

2D 投影テクスチャマスクを使用して点群をハイライト表示します。ハイライト領域の外側の点群は暗くなります。

パラメータ型説明
_2DsList<Data2D>2D テクスチャ選択リスト

注:

  • 3D ハイライトおよび混合ハイライトと相互排他的です。

例:

var highlights = new List<Data2D>();
highlights.Add(new Data2D {
    texture = maskTex,
    mv = modelViewMatrix,
    mvp = mvpMatrix,
    mode = SelectMode.normal
});
lccManager.SetHighlight(highlights);

SetHighlight(3D ジオメトリハイライト)

// 戻り値: int。0=成功、1=空リスト、2=最大数を超えた、3=有効なジオメトリが 0
public int SetHighlight(List<Data3D> _3Ds)

3D ジオメトリでハイライト領域を定義し、組み合わせのブール演算に対応します。

パラメータ型説明
_3DsList<Data3D>3D ジオメトリリスト

注:

  • 少なくとも 1 つの operation == normal のジオメトリが必要です。

例:

var highlights = new List<Data3D>();
highlights.Add(new Data3D {
    type = ShapeType.box,
    invMat = boxInverseMatrix,
    operation = OperationMode.normal,
    mode = SelectMode.normal
});
lccManager.SetHighlight(highlights);

SetHighlight(混合モードハイライト)

// 戻り値: int。0=成功、1=空リスト、2=最大数を超えた
public int SetHighlight(List<DataMix> mix)

2D テクスチャと 3D ジオメトリの混合でハイライト領域を定義します。

パラメータ型説明
mixList<DataMix>混合選択リスト

例:

var mix = new List<DataMix>();
mix.Add(new DataMix {
    editType = EditType.Edit3D,
    type = ShapeType.box,
    invMat = matrix,
    operation = OperationMode.normal,
    mode = SelectMode.normal
});
lccManager.SetHighlight(mix);

QuitHighlightMode

public void QuitHighlightMode()

ハイライトモードを終了し、点群の通常表示を復元します。

例:

lccManager.QuitHighlightMode();

SetTone

// 戻り値: int。0=成功、1=空リスト、2=最大数を超えた
public int SetTone(List<ToneMix> mix)

選択領域にカラー調整を適用し、明るさ、彩度、コントラスト、LUT フィルタに対応します。カラー調整領域は 2D テクスチャまたは 3D ジオメトリで定義できます。

パラメータ型説明
mixList<ToneMix>カラー調整ミックスリスト

注:

  • brightness / saturation / contrast のデフォルトは 1.0。
  • lutid は LUT フィルタインデックスで、0 は未使用。

例:

var tones = new List<ToneMix>();
tones.Add(new ToneMix {
    editType = EditType.Edit3D,
    type = ShapeType.box,
    invMat = boxMatrix,
    operation = OperationMode.normal,
    mode = SelectMode.normal,
    brightness = 1.2f,
    saturation = 1.0f,
    contrast = 1.1f,
    lutid = 0
});
lccManager.SetTone(tones);

QuitToneMode

public void QuitToneMode()

カラー調整モードを終了し、点群の元のカラーを復元します。

例:

lccManager.QuitToneMode();

デカール投影

デカール投影はプロジェクター方向に沿ってテクスチャを 3DGS サーフェスへ投影します。デカールはワールド固定のグローバル状態で、すべてのカメラで一貫しています。典型的な手順は、デカールの有効化 → テクスチャの設定 → プロジェクター姿勢の設定です。以下のメソッドは PC / Mac プラットフォームのみ対応です。

SetDecalEnabled

public void SetDecalEnabled(bool enable)

デカール投影を切り替えます。内容とプロジェクター姿勢を設定するには SetDecalTexture() と SetDecalProjection() を個別に呼び出す必要があります。

パラメータ型説明
enableboolデカール投影を有効にするかどうか

注:

  • 無効化してもキャッシュされたテクスチャ / パラメータはクリアされません。

例:

lccManager.SetDecalEnabled(true);
lccManager.SetDecalTexture(decalTex);
lccManager.SetDecalProjection(projectorPos, projectorRot, 60f, 1.778f, 0.1f, 20f);

SetDecalTexture

public void SetDecalTexture(Texture2D tex)

デカールテクスチャを設定します。RGB はカラー、A はデカール自身のマスクで、グローバル不透明度とエッジフェザリングに乗算されます。

パラメータ型説明
texTexture2Dデカールテクスチャ。null を渡すと参照をクリア

例:

lccManager.SetDecalTexture(logoTex);

SetDecalProjection

public void SetDecalProjection(Vector3 pos, Quaternion rot, float fov, float aspect, float near, float far)

デカールプロジェクターの姿勢と透視パラメータを設定します。プロジェクターは前方向(+Z)に沿って投影し、フラスタム内の点がデカールで覆われます。

パラメータ型説明
posVector3プロジェクターのワールド座標
rotQuaternionプロジェクターの向き
fovfloat垂直 FOV(度)。[1, 179] にクランプ
aspectfloatアスペクト比。最小 1e-4
nearfloat近クリッピングプレーン。最小 1e-3
farfloat遠クリッピングプレーン。最小 near + 1e-3

例:

lccManager.SetDecalProjection(new Vector3(0, 10, 0), Quaternion.Euler(90, 0, 0), 60f, 1.778f, 0.1f, 20f);

SetDecalOpacity

public void SetDecalOpacity(float opacity)

デカール全体の不透明度を設定します。

パラメータ型説明
opacityfloatデカール全体の不透明度。範囲 [0, 1]、超えた場合は自動でクランプ

例:

lccManager.SetDecalOpacity(0.8f);

SetDecalEdgeFade

public void SetDecalEdgeFade(float edgeFade)

デカールのエッジフェザリング幅を設定します。0 はハードエッジで、値が大きいほどエッジの遷移が柔らかくなります。

パラメータ型説明
edgeFadefloatエッジフェザリング幅(UV 空間比)。範囲 [0, 0.5)、超えた場合は自動でクランプ

例:

lccManager.SetDecalEdgeFade(0.1f);

SetDecalOcclusion

public void SetDecalOcclusion(bool enable)

デカールのオクルージョンカリング(プロジェクター深度マップに基づく)を切り替えます。有効にすると、遮蔽されたサーフェスはデカールで覆われません。

パラメータ型説明
enableboolデカールのオクルージョンカリングを有効にするかどうか

注:

  • PC / Mac プラットフォームのみ、かつ URP パイプラインのみ。
  • 有効化する前に SetDecalProjection() でプロジェクターを設定しておく必要があります。
  • SetDecalOcclusionSettings() で設定した品質パラメータに依存します。

例:

lccManager.SetDecalOcclusion(true);

SetDecalOcclusionSettings

public void SetDecalOcclusionSettings(DecalOcclusionSettings settings)

デカールのオクルージョンカリングの品質パラメータを一度に設定します。DecalOcclusionSettings を参照してください。

パラメータ型説明
settingsDecalOcclusionSettingsオクルージョンカリング品質パラメータ

注:

  • いつでも調整できます。パラメータは即時反映されます。

例:

lccManager.SetDecalOcclusionSettings(DecalOcclusionSettings.Default);
lccManager.SetDecalOcclusionSettings(new DecalOcclusionSettings {
    opacityCutoff = 0.1f,
    depthBias = 0.05f,
    footprintMaxPx = 2,
    resolution = 1024
});

スナップ

スナップ機能はレイキャスティング時に近くのエッジ / コーナーを自動検索して整列させ、計測や注釈などの精密なインタラクションによく使用されます。以下のメソッドは PC / Mac プラットフォームのみ対応です。

SetSnapEnabled

public void SetSnapEnabled(bool enable)

スナップ機能を切り替えます。有効にすると、RaycastWithSnap() が近くのエッジ / コーナーを自動検索してスナップします。

パラメータ型説明
enableboolスナップを有効にするかどうか

注:

  • デフォルトでは無効です。
  • モバイル / VR では効果がなく、警告が出力されます。

例:

lccManager.SetSnapEnabled(true);

SetSnapRadius

public void SetSnapRadius(float pixels)

スナップ検索半径を設定します。このピクセル範囲内で最も近いエッジ / コーナーを検索します。

パラメータ型説明
pixelsfloatスナップ検索半径(ピクセル)

注:

  • デフォルト 20 ピクセル。
  • 値が大きいほど検索範囲は広くなりますが、意図しないターゲットにスナップする可能性があります。

例:

lccManager.SetSnapRadius(30f);

SetEdgeThreshold

public void SetEdgeThreshold(float threshold)

エッジ検出閾値を設定します。値が小さいほど、より多くのエッジが検出されます。

パラメータ型説明
thresholdfloatエッジ検出閾値。推奨範囲 [0.1, 0.8]

注:

  • デフォルト 0.3。
  • 値が小さすぎると大量のノイズエッジが発生します。

例:

lccManager.SetEdgeThreshold(0.2f);

SetSnapPreviewEnabled

public void SetSnapPreviewEnabled(bool enable)

スナッププレビュー機能を切り替えます。有効にすると、マウスの移動に応じて最も近いスナップターゲットのインジケータがリアルタイムに表示されます。

パラメータ型説明
enableboolスナッププレビューを有効にするかどうか

注:

  • 先に SetSnapEnabled(true) を呼び出す必要があります。
  • プレビューは継続的に GPU リソースを消費します(毎フレーム検出)。

例:

lccManager.SetSnapPreviewEnabled(true);

UpdateSnapPreview

public void UpdateSnapPreview(Vector2 mousePos, Camera cam)

スナッププレビュー状態を更新します。マウスの移動に応じて呼び出し、プレビューインジケータの位置を更新します。

パラメータ型説明
mousePosVector2現在のマウスのスクリーン座標
camCameraカメラ

注:

  • 先に SetSnapPreviewEnabled(true) を呼び出す必要があります。
  • Update で継続的に呼び出すことを推奨します。

例:

void Update()
{
    lccManager.UpdateSnapPreview(Input.mousePosition, Camera.main);
}

GetSnapPreviewState

// 戻り値: SnapPreviewState
public SnapPreviewState GetSnapPreviewState()

現在のスナッププレビュー状態を取得します。スナップターゲットがあるかどうか、ターゲットタイプ、ターゲットのスクリーン座標、マウスまでのピクセル距離が含まれます。SnapPreviewState を参照してください。

注:

  • 先に SetSnapPreviewEnabled(true) と UpdateSnapPreview() を呼び出す必要があります。
  • ターゲットがない場合は default(SnapPreviewState) を返します。
  • screenPos はスクリーン座標であり、ワールド座標ではありません。ワールド座標には RaycastWithSnap() で HitResult.hitPos を取得します。

例:

var state = lccManager.GetSnapPreviewState();
if (state.hasTarget)
{
    // state.snapType: Corner / Edge
    // state.screenPos: スナップターゲットのスクリーン座標
    // state.distanceToMouse: ピクセル距離
}

レイキャスティングとコリジョンクエリ

レイキャスティングは 3DGS サーフェス上の点を選択するために使用し、コリジョンクエリはキャラクター / オブジェクトと点群の物理的なインタラクションに使用します。ヒット結果は HitResult で返されます。

注:

HitResult のヒット点ワールド座標フィールドは hitPos(position ではありません)という名前です。

Raycast(スクリーン座標)

// 戻り値: bool。true=ヒット
public bool Raycast(Vector3 mousePos, out HitResult _finalResult)

スクリーン座標からレイを発射して点群へのヒットを検出します。レイは SetMainCamera() で設定したメインカメラを使用して生成されます。

パラメータ型説明
mousePosVector3スクリーン座標
_finalResultout HitResultヒット結果

注:

  • 先に SetMainCamera() でメインカメラを設定する必要があります。
  • カメラに最も近いヒット点を返します。
  • 精度は SetRaycastDelta() に影響され、最大距離は SetMaxRaycastDistance() で制御されます。

例:

if (lccManager.Raycast(Input.mousePosition, out HitResult hit))
{
    Debug.Log(hit.hitPos);
}

Raycast(Ray)

// 戻り値: bool。true=ヒット
public bool Raycast(Ray _ray, out HitResult _finalResult)

カスタム Ray でレイキャスティングを行い、すべてのアクティブな Renderer を走査して最も近いヒットを返します。

パラメータ型説明
_rayRayレイ
_finalResultout HitResultヒット結果

例:

Ray ray = new Ray(origin, direction);
if (lccManager.Raycast(ray, out HitResult hit))
{
    Debug.Log(hit.hitPos);
}

RaycastMesh(スクリーン座標)

// 戻り値: bool。true=ヒット
public bool RaycastMesh(Vector3 mousePos, out HitResult _finalResult, float _distance = 70.0f)

スクリーン座標からレイを発射して点群コリジョンメッシュへのヒットを検出します。Collider データで検出するため、Raycast() より高速ですが精度は低くなります。

パラメータ型説明
mousePosVector3スクリーン座標
_finalResultout HitResultヒット結果
_distancefloat最大検出距離。デフォルト 70.0

注:

  • データに Collider ノードが含まれ、先に Renderer.SetColliderEnable(true) を呼び出す必要があります。

例:

if (lccManager.RaycastMesh(Input.mousePosition, out HitResult hit))
{
    Debug.Log(hit.hitPos);
}

RaycastMesh(Ray + Bounds)

// 戻り値: bool。true=ヒット
public bool RaycastMesh(Ray ray, out HitResult result, out Bounds hitBounds, float maxDist = 70.0f)

カスタム Ray でコリジョンメッシュ検出を行い、ヒットしたノードのバウンディングボックスも返します。

パラメータ型説明
rayRayレイ
resultout HitResultヒット結果
hitBoundsout Boundsヒットしたノードのバウンディングボックス
maxDistfloat最大検出距離。デフォルト 70.0

注:

  • データに Collider ノードが含まれている必要があります。

例:

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (lccManager.RaycastMesh(ray, out HitResult hit, out Bounds bounds))
{
    Debug.Log(bounds.center);
}

RaycastWithSnap

// 戻り値: bool。true=ヒット
public bool RaycastWithSnap(Vector2 screenPos, Camera cam, out HitResult result)

スナップ付きレイキャスティング。まず通常のレイキャストを実行し、その後ヒット点付近のエッジ / コーナーを検索してスナップします。

パラメータ型説明
screenPosVector2スクリーン座標
camCameraカメラ
resultout HitResultヒット結果(スナップ情報を含む)

注:

  • 先に SetSnapEnabled(true) を呼び出す必要があります。
  • PC / Mac プラットフォームのみ対応。モバイル / VR では利用できません。
  • スナップ優先順位:Corner > Edge > None。
  • HitResult.snapType はスナップタイプ、HitResult.hitPos はスナップ後のワールド座標、HitResult.originalHitPos はスナップ前の元のヒット点です。

例:

if (lccManager.RaycastWithSnap(mousePos, cam, out HitResult hit))
{
    // hit.snapType: Corner / Edge / None
    // hit.hitPos: スナップ後のワールド座標
    // hit.originalHitPos: スナップ前の元のヒット点
}

SetRaycastDelta

public void SetRaycastDelta(float delta)

レイキャスティングの精度パラメータを設定します。値が小さいほど精度は高くなりますが、パフォーマンス消費が高くなります。

パラメータ型説明
deltafloatレイキャスティング精度。範囲 [0.1, 10.0]、超えた場合は自動でクランプ

注:

  • デフォルト 0.1。
  • すべての Raycast() メソッドの検出精度に影響します。

例:

lccManager.SetRaycastDelta(0.5f);

SetMaxRaycastDistance

public void SetMaxRaycastDistance(float _distance)

Raycast() メソッドの最大検出距離を設定します。

パラメータ型説明
_distancefloat最大レイキャスト距離。範囲 [10, 10000]、超えた場合は自動でクランプ

注:

  • Raycast(Vector3) / Raycast(Ray) オーバーロードに影響します。RaycastMesh()(独自の距離パラメータを持つ)には影響しません。

例:

lccManager.SetMaxRaycastDistance(500f);

IntersectsSphere

// 戻り値: bool。true=交差
public bool IntersectsSphere(Sphere sphere)

// 戻り値: bool。true=交差
public bool IntersectsSphere(Sphere sphere, out Vector3 delta)

球が点群コライダーと交差するか検出します。2 つ目のオーバーロードは貫通ベクトルも返し、物理的な押し出しに使用できます。

パラメータ型説明
sphereSphere球
deltaout Vector3貫通ベクトル(押し出し方向と距離)

注:

  • データに Collider ノードが含まれ、先に Renderer.SetColliderEnable(true) を呼び出す必要があります。
  • すべてのアクティブな Renderer を走査します。

例:

var sphere = new Sphere(transform.position, 0.5f);
if (lccManager.IntersectsSphere(sphere, out Vector3 delta))
{
    transform.position += delta;
}

IntersectsCapsule

// 戻り値: bool。true=交差
public bool IntersectsCapsule(Capsule capsule)

// 戻り値: bool。true=交差
public bool IntersectsCapsule(Capsule capsule, out Vector3 delta)

カプセルが点群コライダーと交差するか検出し、キャラクターコントローラーのコリジョン検出によく使用されます。2 つ目のオーバーロードは貫通ベクトルを返します。

パラメータ型説明
capsuleCapsuleカプセル
deltaout Vector3貫通ベクトル

注:

  • データに Collider ノードが含まれ、先に Renderer.SetColliderEnable(true) を呼び出す必要があります。

例:

var capsule = new Capsule(footPos, headPos, 0.3f);
if (lccManager.IntersectsCapsule(capsule, out Vector3 delta))
{
    characterController.Move(delta);
}

ビジュアルエフェクト

TriggerVFX

public void TriggerVFX(Vector3 vfxOriginW, int vfxid = 0)

指定したワールド座標でビジュアルエフェクトを発動し、その座標から外向きに広がります。

パラメータ型説明
vfxOriginWVector3エフェクトのワールド座標原点
vfxidintエフェクト ID。デフォルト 0

注:

  • LCC シーンの読み込み完了後に呼び出す必要があります。

例:

lccManager.TriggerVFX(hitPoint, 0);

インスタンスクエリ

GetAllRenderers

// 戻り値: List<Renderer>。登録済み Renderer インスタンスすべてのコピー
public List<Renderer> GetAllRenderers()

現在登録されているすべての Renderer インスタンスのリストを取得します(コピーを返します)。

例:

var renderers = lccManager.GetAllRenderers();
foreach (var r in renderers) { /* ... */ }