Bir LCC sahnesinin bir bölümünü kutu veya küre hacmiyle kırpan kırpma hacmi Actor'ı.
| Modül | LCC4UnrealRuntime |
| Header | Tools/LCCClippingVolume.h |
| Üst sınıf | AVolume |
| Panelde görünen ad | LCC Clipping Volume |
#include "Tools/LCCClippingVolume.h"
Kullanım adımları, bir gösterim ve özellik paneli açıklaması için Sahne Düzenleme - Clipping Volumes sayfasına bakın. Bu sayfada yalnızca arayüzler listelenir.
Özellikler
| Özellik | Tür | Açıklama |
|---|---|---|
bEnabled | bool | Kırpmaya katılıp katılmadığı |
Mode | EClipType | Inside hacmin içini kırpar, Outside hacmin dışını kırpar |
VolumeType | EClipVolumeType | Kutu için Box, küre için Sphere kullanılır |
Değerlerin anlamı için EClipType ve EClipVolumeType sayfalarına bakın.
Üç özelliğin hiçbirinde Setter yoktur; doğrudan atama yapın. Çalışma zamanında bir özellikte veya dönüşümde yapılan değişiklik sonraki karede etkili olur, görüntüleme tarafını elle bilgilendirmeniz gerekmez.
Metotlar
SetUpdateComponent / Refresh (kullanımdan kaldırıldı)
UFUNCTION(BlueprintCallable, Category = "XGrids", meta = (DeprecatedFunction))
void SetUpdateComponent(ULCCComponentBase* Component);
UFUNCTION(BlueprintCallable, Category = "XGrids", meta = (DeprecatedFunction))
void Refresh();
Her iki yöntem de kullanımdan kaldırılmıştır ve boş işlem (no-op) olarak uygulanmıştır; çağrılmaları hiçbir etki yapmaz ve hata oluşturmaz.
Kırpma verisi artık her karede okunur; bu nedenle özellik ve dönüşüm değişiklikleri görüntüye sonraki karede yansır. Önce SetUpdateComponent ile bağlama yapıp her değişiklikten sonra Refresh() çağırmaya dayanan eski akış artık gerekli değildir.
Mevcut çağrılar doğrudan kaldırılabilir. Blueprint'te bu iki düğüm kullanımdan kaldırma uyarısı gösterir; çözüm düğümü silmektir.
Çalışma Zamanında Oluşturma
#include "Tools/LCCClippingVolume.h"
#include "LCCComponentBase.h"
ALCCClippingVolume* AMyTool::CreateBoxClip(
ULCCComponentBase* Component, const FVector& Location, const FVector& Extent)
{
ALCCClippingVolume* Volume = GetWorld()->SpawnActor<ALCCClippingVolume>(
ALCCClippingVolume::StaticClass(), Location, FRotator::ZeroRotator);
if (!Volume)
{
return nullptr;
}
Volume->VolumeType = EClipVolumeType::Box;
Volume->Mode = EClipType::Inside;
Volume->bEnabled = true;
// the size of an AVolume is controlled through scaling
Volume->SetActorScale3D(Extent / 100.0f);
Component->AddClippingVolume(Volume);
return Volume;
}
Kırpma efektini geçici olarak açıp kapatmak için dizi öğelerini eklemeyin ve kaldırmayın; bEnabled değerini değiştirmek daha hafiftir:
for (ALCCClippingVolume* Volume : MyVolumes)
{
if (Volume)
{
Volume->bEnabled = bEnable;
}
}
Bir animasyon için kırpma hacmini çalışma zamanında hareket ettirmek yalnızca dönüşümün değiştirilmesini gerektirir:
// sweep the clipping volume across the scene
FVector Loc = ClipVolume->GetActorLocation();
Loc.X += 200.0f * DeltaTime;
ClipVolume->SetActorLocation(Loc);
Blueprint düğümleri için Sahne Düzenleme - Blueprint Methods sayfasına bakın.
Notlar
- Kırpma yalnızca görüntülemeyi etkiler, çarpışmayı etkilemez. Kırpılan bir alana yine de ışın çarpabilir ve alan bir karakteri yine de engeller.
- Aynı anda etkili olan birden fazla kırpma hacmi birbirinden bağımsız olarak değerlendirilir ve etkileri üst üste biner.
InsideileOutsidedeğerlerini karıştırmak kolayca beklenmedik sonuçlar doğurur. - Aynı anda etkili olabilecek kırpma hacmi sayısı sınırlıdır; lisans olmadan sınır 50'dir. Fazla olanlar görüntülemeye katılmaz ve günlüğe bir uyarı yazılır. Kırpma hacimleri ve kesit düzlemleri bu kotayı paylaşır. Lisanslama için Sürümler ve Lisanslama sayfasına bakın.
- Bir kırpma hacmini yok etmek yalnızca tek bir görüntü güncellemesini tetikler ve öğeyi Component'in
ClippingVolumesdizisinden kaldırmaz; dizide eskimiş bir işaretçi kalır (görüntüleme sırasında otomatik olarak atlanır). Diziyi temiz tutmak için yok etmeden önceRemoveClippingVolumeçağırın.
Ayrıca Bakın
- Sahne Düzenleme: kullanımın tam açıklaması
- ALCCSectionPlane: bir düzlemle kesit alma
- ULCCComponentBase:
AddClippingVolumeveRemoveClippingVolume
Bu bölüm XGRIDS'in resmî kullanım kılavuzundan Türkçeye çevrildi; ekran görüntüleri ve arayüz adları özgün haliyle İngilizcedir. İngilizce aslı (yeni sekmede açılır) · Güncelleme:

