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

ALCCSectionPlane:3DGS の断面プレーン

断面プレーンの Actor で、1 枚のプレーンで LCC シーンを切り開き、プレーンの片側を残す。

モジュールLCC4UnrealRuntime
ヘッダーファイルTools/LCCSectionPlane.h
親クラスAVolume
パネルでの表示名LCC Section Plane
#include "Tools/LCCSectionPlane.h"

使用手順、デモの効果、プロパティパネルの説明は シーン編集 - 断面プレーン を参照する。このページではインターフェースのみを挙げる。

エディターではプレーンの向きを示す矢印のインジケーターコンポーネントが表示され、矢印が指す側が Upside になる。

Properties

プロパティ型説明
bEnabledbool断面に参加するか
ModeESectionTypeUpside はプレーンの上方を切り取り、Downside はプレーンの下方を切り取る

上下はプレーン自身の向きに対するものであり、ワールド座標ではない。断面プレーンを回転させれば任意の方向の断面を得られる。値の意味は ESectionType を参照する。

2 つのプロパティにはいずれも Setter がなく、実行時に代入した後は Refresh を呼ばないと反映されない。実行時にトランスフォームを変更した場合も同様である。

Methods

SetUpdateComponent

UFUNCTION(BlueprintCallable, Category = "XGrids")
void SetUpdateComponent(ULCCComponentBase* Component);

更新対象の LCC Component をバインドする。

Refresh() はこのバインドがないと効かない。内部でバインドされた Component にレンダリング状態の再構築が必要であるとマークするだけである。バインドしていない場合はレンダリングの更新をトリガーしない。

Refresh

UFUNCTION(BlueprintCallable, Category = "XGrids")
void Refresh();

断面の結果の更新を手動で 1 回トリガーする。内部でバインドされた LCC Component にレンダリング状態の再構築が必要であるとマークする。

実行時に断面プレーンを変更した後は必ず呼ぶ必要があり、そうしないと変更が反映されない。対象は次のものである。

  • プロパティの変更:bEnabled、Mode。この 2 つのプロパティには Setter がなく、直接代入してもレンダリング側に通知されない。
  • トランスフォームの変更:SetActorLocation、SetActorRotation。

自動更新はエディター内でのみ起きる。Details パネルでプロパティを変更すると PostEditChangeProperty を通り、ギズモをドラッグすると EditorApplyTranslation などの関数を通る。これらの経路はいずれも WITH_EDITOR の下にあり、実行時には存在しない。

前提として SetUpdateComponent を呼んだか、AddSectionPlane で関連付けを確立している必要がある。Component をバインドしていない場合はレンダリングの更新が一切トリガーされない。

複数の断面プレーンをまとめて変更する場合は、1 つずつプロパティを変更した後にそれぞれ Refresh() を 1 回呼ぶ。

実行時に作成する

#include "Tools/LCCSectionPlane.h"
#include "LCCComponentBase.h"

ALCCSectionPlane* AMyTool::CreateSectionPlane(
    ULCCComponentBase* Component, const FVector& Location, const FRotator& Rotation)
{
    ALCCSectionPlane* Plane = GetWorld()->SpawnActor<ALCCSectionPlane>(
        ALCCSectionPlane::StaticClass(), Location, Rotation);
    if (!Plane)
    {
        return nullptr;
    }

    Plane->Mode = ESectionType::Upside;   // プレーンの上方を切り取る
    Plane->bEnabled = true;

    Plane->SetUpdateComponent(Component);
    Component->AddSectionPlane(Plane);

    return Plane;
}

よくある設定をいくつか挙げる。

効果位置と回転Mode
見下ろして建物の内部を見る指定の高さ、FRotator::ZeroRotatorUpside
垂直に切断して立面を見るFRotator(0, 0, 90) で垂直なプレーンにするUpside
真ん中の 1 層だけを残す上下にプレーンを 1 枚ずつ置く下側の境界は Downside、上側の境界は Upside

断面プレーンを移動させれば層ごとに開いていくアニメーションを作れる。実行時はフレームごとに移動した後に Refresh() を呼ぶ必要がある。

FVector Loc = SectionPlane->GetActorLocation();
Loc.Z = FMath::FInterpTo(Loc.Z, TargetHeight, DeltaTime, 1.0f);
SectionPlane->SetActorLocation(Loc);
SectionPlane->Refresh();        // 実行時のトランスフォームは自動更新されない

プロパティを変更した場合も同様に更新する必要がある。

SectionPlane->bEnabled = false;
SectionPlane->Refresh();

Blueprint のノードは シーン編集 - Blueprint のメソッド を参照する。

Notes

  • 断面はレンダリングにのみ影響し、コリジョンには影響しない。切り取られた部分も引き続きレイキャストで当たり、キャラクターを遮る。
  • Upside と Downside はプレーン自身の向きに対するものである。回転させた後はどちら側が「上」なのかを改めて確認する。エディターで矢印を見るのがもっとも直感的である。
  • 構築時に Z 軸のスケールが 0.01(薄い板)に設定され、エディターでスケールを変更してもこの値に戻される。実行時にスケールを変更する場合はこの制約を受けないが、通常は変更する必要はない。
  • 同時に有効になる断面プレーンの数には上限があり、未ライセンスの場合は 50 個である。 超えた分はレンダリングに参加せず、警告を出力する。断面プレーンとクリッピングボリュームはこの枠を共有する。ライセンスの説明は エディションとライセンス を参照する。
  • 断面プレーンを破棄してもレンダリングの更新が 1 回トリガーされるだけで、Component の SectionPlanes 配列から要素は削除されない。配列には無効なポインターが残る(レンダリング時に自動的にスキップされる)。配列をきれいに保ちたい場合は、破棄する前に RemoveSectionPlane を呼ぶ。

See Also

  • シーン編集:完全な使用説明
  • ALCCClippingVolume:有界のボリュームでクリッピングする
  • ULCCComponentBase:AddSectionPlane と RemoveSectionPlane
前へ
ALCCClippingVolume
次へ
ULCCUtilLibrary