프로시저럴 콘텐츠 생성(Procedural Content Generation, PCG) 프레임워크는 프로시저럴 노드 그래프를 활용하여 에디터와 런타임 모두에서 프로시저럴 콘텐츠를 생성합니다. 머티리얼 에디터와 유사한 형식을 사용하여 공간 데이터가 레벨의 PCG 컴포넌트에서 그래프로 유입되어 포인트 생성에 사용됩니다. 포인트는 아래에 나열된 일련의 노드를 통해 필터 적용 및 수정됩니다.
블루프린트
노드 | 설명 |
---|---|
Execute Blueprint | 지정된 커스텀 블루프린트 클래스를 실행합니다. |
컬러
노드 | 설명 |
---|---|
Set Point Color | 포인트 클라우드의 모든 포인트에 고정된 컬러 값을 설정합니다. Execute Blueprint 노드의 작동 예시입니다. |
컨트롤 플로
노드 | 설명 |
---|---|
Branch | 부울 어트리뷰트를 기반으로 두 출력 중 하나를 선택합니다. |
Select | 부울 어트리뷰트를 기반으로 두 입력 중 하나를 선택하여 단일 출력에 전달합니다. |
디버그
노드 | 설명 |
---|---|
Debug | 그래프의 이전 노드를 디버그하지만 일시적이지 않습니다. |
Sanity Check Point Data | 입력 데이터 포인트에 주어진 범위의 값이 있는지 검사합니다. 범위를 벗어나면 이 노드가 오류 로그를 작성하고 생성을 취소합니다. |
밀도
노드 | 설명 |
---|---|
Curve Remap Density | 포인트 데이터에 있는 각 포인트의 밀도를 제공된 커브에 따라 다른 밀도 값으로 리매핑합니다. 최종 밀도 = 커브 리매핑(입력 밀도) |
Density Remap | 선형 트랜스폼을 포인트 밀도에 적용합니다. 입력 범위를 벗어나는 값에 영향을 미치지 않도록 설정할 수 있습니다. D' = (Out_Max - Out_Min) * (D - In_min) / (In_max - In_min) + Out_Min |
Distance to Density | 레퍼런스 포인트에서 각 포인트의 거리에 따라 포인트 밀도를 설정합니다. |
Distance to Neighbors | 포인트 사이의 거리와 주어진 범위에 있는 이웃의 평균을 계산합니다. 이웃 대비 상대적 위치를 파생하는 데 사용할 수 있습니다. |
필터
노드 | 설명 |
---|---|
Density Filter | 밀도와 제공된 필터 범위를 기반으로 포인트에 필터를 적용합니다. |
Discard Points on Irregular Surface | 주어진 소스 포인트 주변의 여러 포인트를 테스트하여 같은 평면에 있는지 확인합니다. 다음은 PCG 서브그래프 사용의 예시로 Electric Dreams 데모에서 사용됩니다. |
Filter - Any | 지정된 타깃 유형을 따르는 입력 데이터만 통과시킵니다. 일반 필터 노드. |
Filter By Tag | 태그 에 따라 데이터에서 엘리먼트를 유지하거나 제거합니다. 필터를 적용할 태그의 쉼표로 구분된 목록을 지정할 수 있습니다. |
Intersect with Tagged Actor Geo | 지오메트리 스크립트 함수를 사용하여 포인트가 태그 지정된 액터의 스태틱 메시 내에 있는지 여부를 테스트합니다. Procedural Generation Framework (PCG) Geometry Script Interop 플러그인이 필요합니다. |
Point Filter | In 포인트 데이터에 포인트별 필터를 적용합니다. 필터는 상수, 공간 데이터(같은 포인트 또는 ToPoint 버전에서 샘플링하는 것처럼 필터를 적용할 수 있음) 또는 어트리뷰트 세트일 수 있습니다. |
Point Filter Range | 포인트 데이터에 범위 기반 필터를 적용합니다. |
Self Pruning | 같은 포인트 데이터의 포인트 간 교차점을 제거하여 세팅(Large to Small 등)을 기반으로 데이터 우선순위를 지정합니다. 반경이 비슷한 포인트는 무작위 정리를 사용하여 무작위로 선택되어 패턴 발생을 방지합니다. |
계층형 생성
노드 | 설명 |
---|---|
Grid Size | 어떤 그리드 크기에서 다운스트림 노드를 실행할지 지정합니다. 계층형 생성에 사용됩니다. |
입력 출력
노드 | 설명 |
---|---|
Load Data Table | UDataTable을 PCG 포인트 데이터로 로드합니다. |
Load Alembic File | Alembic 파일을 PCG 포인트 데이터로 로드합니다. Procedural Content Generation (PCG) External Data Interop 플러그인이 필요합니다. |
메타데이터
노드 | 설명 |
---|---|
Add Attribute | 포인트 데이터 또는 어트리뷰트 세트에 어트리뷰트를 추가합니다. |
Append Attribute Set | 여러 어트리뷰트 세트를 단일 어트리뷰트 세트에 병합합니다. |
Attribute Noise | 포인트 데이터 세트의 각 포인트에 대한 타깃 어트리뷰트의 새 값을 계산합니다. 값은 선택한 입력 어트리뷰트인 Mode, Noise Min, 및 Noise Max 에 따라 다릅니다. |
Attribute Partition | 주어진 어트리뷰트의 값을 기반으로 입력 포인트 데이터를 분할합니다. 주어진 값의 모든 포인트는 같은 포인트 데이터의 출력이 되며, 모두 출력 데이터 컬렉션에 표시됩니다. |
Attribute Reduce | 주어진 어트리뷰트의 Average, Max 또는 Min 을 계산합니다. 어트리뷰트는 숫자여야 하고 평균에 대해 연속적이어야 합니다. |
Attribute Rename | 기존 어트리뷰트의 이름을 변경합니다. |
Attribute Select | 선택한 축 의 Min, Max 또는 Median 을 계산합니다. 축이 있는 내적 계산과 유사합니다. |
Attribute String Op | 스트링 관련 어트리뷰트 작업(예: 스트링 덧붙이기)을 수행합니다. |
Break Transform Attribute | Transform 어트리뷰트를 Translation, Rotation 및 Scale 컴포넌트로 분류합니다. |
Break Vector Attribute | Vector 어트리뷰트를 X, Y, Z 및 W 컴포넌트로 분류합니다. |
Copy Attribute | 어트리뷰트(Attribute) 핀 또는 입력 자체에서 새 포인트 데이터로 어트리뷰트를 복사합니다. |
Create Attribute | 단일 어트리뷰트가 포함된 어트리뷰트 세트를 생성합니다. |
Data Table Row to Attribute Set | 데이터 테이블에서 어트리뷰트 세트로 단일 행을 추출합니다. |
Filter Attribute | 어트리뷰트 세트 또는 공간 데이터에서 쉼표로 구분된 어트리뷰트에 필터를 적용(유지 또는 제거)합니다. |
Get Attribute from Point Index | 별도의 어트리뷰트 세트에 있는 포인트와 그 어트리뷰트에서 단일 포인트를 가져옵니다. |
Make Transform Attribute | 세 가지 어트리뷰트인 Translation, Rotation 및 Scale 에서 Transform 어트리뷰트를 생성합니다. |
Make Vector Attribute | Output Type 을 기반으로 2~4개의 어트리뷰트에서 Vector 어트리뷰트를 생성합니다. |
Point Match and Set | 타입 일치 및 설정(Match And Set Type) 옵션을 사용하여 선택 기준을 기반으로 각 포인트의 일치를 찾은 다음, 값을 어트리뷰트에 적용합니다. 일반적인 사용 사례는 어트리뷰트 기준(By Attribute) 선택 툴이 있는 Static Mesh Spawner 노드 에서 다운스트림으로 사용되는 메시를 선택하는 것입니다. |
Transfer Attribute | 데이터 세트 크기가 같은 동일한 유형(공간-공간 또는 포인트-포인트)에서 어트리뷰트를 설정합니다. |
어트리뷰트 비트와이즈 연산
노드 | 설명 |
---|---|
And | 두 어트리뷰트 사이의 비트와이즈 AND의 결과를 계산합니다. |
Not | 두 어트리뷰트 사이의 비트와이즈 NOT의 결과를 계산합니다. |
Or | 두 어트리뷰트 사이의 비트와이즈 OR의 결과를 계산합니다. |
Xor | 두 어트리뷰트 사이의 비트와이즈 XOR(배타적 OR)의 결과를 계산합니다. |
어트리뷰트 부울 연산
노드 | 설명 |
---|---|
And | 두 어트리뷰트 사이의 부울 AND의 결과를 계산합니다. |
Not | 두 어트리뷰트 사이의 부울 NOT의 결과를 계산합니다. |
Or | 두 어트리뷰트 사이의 부울 OR의 결과를 계산합니다. |
Xor | 두 어트리뷰트 사이의 부울 XOR(배타적 OR)의 결과를 계산합니다. |
어트리뷰트 비교 연산
노드 | 설명 |
---|---|
Equal | 두 어트리뷰트 사이의 비교 Equal To 결과를 부울 어트리뷰트에 기록합니다. |
Greater | 두 어트리뷰트 사이의 비교 Greater Than 결과를 부울 어트리뷰트에 기록합니다. |
Greater or Equal | 두 어트리뷰트 사이의 비교 Greater Than Or Equal To 결과를 부울 어트리뷰트에 기록합니다. |
Less | 두 어트리뷰트 사이의 비교 Less Than 결과를 부울 어트리뷰트에 기록합니다. |
Less or Equal | 두 어트리뷰트 사이의 비교 Less Than or Equal To 결과를 부울 어트리뷰트에 기록합니다. |
Not Equal | 두 어트리뷰트 사이의 비교 Not Equal 결과를 부울 어트리뷰트에 기록합니다. |
어트리뷰트 수학 연산
노드 | 설명 |
---|---|
Abs | Absolute Value 수학 연산의 값을 계산합니다. 입력 어트리뷰트 값을 양수 값으로 변환하고 결과를 어트리뷰트에 기록합니다. |
Add | Add 수학 연산의 값을 계산합니다. 2개의 입력 값을 가져와 더하고, 결과를 어트리뷰트에 기록합니다. |
Ceil | Ceiling 수학 연산의 값을 계산합니다. 입력 값을 가져와 다음 정수로 올립니다. |
Clamp | Clamp 수학 연산의 값을 계산합니다. 입력 값을 가져와 특정 범위로 제한합니다. |
Clamp Max | Clamp 수학 연산의 최댓값을 제공합니다. |
Clamp Min | Clamp 수학 연산의 최솟값을 제공합니다. |
Divide | Divide 수학 연산의 값을 계산합니다. 2개의 입력을 가져와 첫 번째 입력을 두 번째 입력으로 나누고, 결과를 어트리뷰트에 기록합니다. |
Floor | Floor 수학 연산의 값을 계산합니다. 두 입력 값을 가져와 가장 가까운 정수로 내리고, 결과를 어트리뷰트에 기록합니다. |
Frac | Frac 수학 연산의 값을 계산합니다. 입력 값을 가져와 이 값의 소수점 부분을 반환합니다. 예를 들어 입력 값 X의 경우 결과는 X에서 X의 Floor를 뺀 값입니다. 출력 값의 범위는 0~1이고, 하한을 포함하되 상한을 배제합니다. |
Lerp | Linear Interpolate 수학 연산의 값을 계산합니다. 이 표현식은 두 포인트 사이에 선을 긋고 세 번째 Ratio 값을 사용하여 그 선을 따르는 포인트의 값을 결정합니다. 그런 다음 이 값을 어트리뷰트에 기록합니다. |
Max | 어트리뷰트에서 Max 수학 연산의 값을 계산하고 결과를 어트리뷰트에 기록합니다. 이 연산은 2개의 입력 값을 가져와 더 높은 값을 출력합니다. |
Min | 어트리뷰트에서 Min 수학 연산의 값을 계산하고 결과를 어트리뷰트에 기록합니다. 이 연산은 2개의 입력 값을 가져와 더 낮은 값을 출력합니다. |
Modulo | Modulo 수학 연산의 값을 계산합니다. 2개의 입력 값을 가져와 첫 번째 값을 두 번째 값으로 나눕니다. 이후 나머지를 반환하고 이를 어트리뷰트로 기록합니다. |
Multiply | Multiply 수학 연산의 값을 계산합니다. 2개의 입력 값을 가져와 곱하고, 결과를 어트리뷰트에 기록합니다. |
One Minus | 어트리뷰트에서 One Minus 수학 연산의 값을 계산하고 결과를 어트리뷰트에 기록합니다. 이 표현식은 입력 값 X를 가져와 1-X를 출력하고 결과를 어트리뷰트로 기록합니다. |
Pow | Power 수학 연산의 값을 계산합니다. 이 표현식은 밑과 지수 값 2개를 가져옵니다. 밑 값을 지수로 거듭제곱하고 결과를 어트리뷰트로 기록합니다. |
Round | Round 수학 연산의 값을 계산하고 결과를 어트리뷰트에 기록합니다. 이 표현식은 입력 값을 가져와 가장 가까운 정수로 반올림합니다. |
Set | 출력 어트리뷰트를 제공된 어트리뷰트의 값으로 설정합니다. |
Sign | Sign 수학 연산의 값을 계산하고 결과를 어트리뷰트에 기록합니다. 입력 값을 평가하고 양수, 음수 또는 정확히 0인지 여부를 나타냅니다.
|
Sqrt | Square Root 수학 연산의 값을 계산하고 결과를 어트리뷰트에 기록합니다. |
Subtract | Subtract 수학 연산의 값을 계산합니다. 이 표현식은 2개의 입력을 가져와 첫 번째 값에서 두 번째 값을 뺍니다. |
Truncate | Truncate 수학 연산의 값을 계산하고 결과를 어트리뷰트에 기록합니다. 이 표현식은 정수는 그대로 두고 소수점 부분을 버려 값을 자릅니다. 예를 들어 1.4는 1로 잘립니다. |
어트리뷰트 로테이터 연산
노드 | 설명 |
---|---|
Combine | 두 회전 값을 결합하고 결과를 어트리뷰트로 기록합니다(처음에 A, 그리고 B로 결합). |
Inverse Transform Rotation | 제공된 트랜스폼의 반전으로 로테이터를 트랜스폼합니다. |
Invert | 제공된 로테이터의 반전을 찾고 결과를 어트리뷰트로 기록합니다. |
Lerp | Ratio 를 기반으로 2개의 로테이터 입력 A 와 B 사이를 선형보간합니다. Ratio가 0이면 A의 100%를 적용하고 Ratio가 1이면 B의 100%를 적용합니다. |
Normalize | 각도를 -180~180 범위로 제한하고 결과를 어트리뷰트로 기록합니다. |
Transform Rotation | 주어진 트랜스폼에 따라 회전을 트랜스폼합니다. 이 노드는 회전을 입력으로 가져오고 주어진 트랜스폼을 적용합니다. |
어트리뷰트 트랜스폼 연산
노드 | 설명 |
---|---|
Compose | 2개의 트랜스폼을 다음 순서로 구성합니다. A B. 순서는 트랜스폼 구성 시 중요합니다. A B는 우선 A를, 그리고 B를 모든 후속 트랜스폼에 적용하는 트랜스폼을 만듭니다. 결과는 어트리뷰트에 기록됩니다. |
Invert | 입력 트랜스폼을 반전시키고 새 트랜스폼을 어트리뷰트로 기록합니다. |
Lerp | Ratio 를 기반으로 2개의 트랜스폼 입력 A 와 B 사이를 선형보간합니다. Ratio가 0이면 A의 100%를 적용하고 Ratio가 1이면 B의 100%를 적용합니다. |
어트리뷰트 삼각함수 연산
노드 | 설명 |
---|---|
Acos | 입력의 역코사인(arccos)을 반환하고 결과를 어트리뷰트에 기록합니다. |
Asin | 입력의 역사인(arcsin)을 반환하고 결과를 어트리뷰트에 기록합니다. |
Atan | 입력의 역탄젠트(arctan)를 반환하고 결과를 어트리뷰트에 기록합니다. |
Atan 2 | 2개 입력(B/A)의 역탄젠트(arctan2)를 반환하고 결과를 어트리뷰트에 기록합니다. |
Cos | 입력의 코사인(cos)을 반환하고 결과를 어트리뷰트에 기록합니다. |
Deg to Rad | 입력(각도)을 기반으로 라디안 값을 반환하고 결과를 어트리뷰트에 기록합니다. |
Rad to Deg | 입력(라디안)을 기반으로 각도 값을 반환하고 결과를 어트리뷰트에 기록합니다. |
Sin | 입력의 사인(sin)을 반환하고 결과를 어트리뷰트에 기록합니다. |
Tan | 입력의 탄젠트(tan)를 반환하고 결과를 어트리뷰트에 기록합니다. |
어트리뷰트 벡터 연산
노드 | 설명 |
---|---|
Cross | 입력 벡터 2개의 외적을 출력합니다. |
Distance | 입력 벡터 2개 사이의 거리를 계산합니다. |
Dot | 입력 벡터 2개의 내적을 반환합니다. |
Inverse Transform Direction | 입력 트랜스폼의 반전으로 방향 벡터를 트랜스폼하지만 길이를 바꾸지는 않습니다. 결과는 어트리뷰트에 기록됩니다. |
Inverse Transform Location | 입력 트랜스폼의 반전으로 위치를 트랜스폼합니다. 결과는 어트리뷰트에 기록됩니다. |
Length | 입력 벡터에 저장된 벡터의 길이를 반환합니다. |
Normalize | 길이 기반 정규화가 가능하도록 벡터의 정규화된 복사본을 출력합니다. 벡터 길이가 안전하게 정규화하기에 너무 짧은 경우 0 벡터를 반환합니다. |
Rotate Around Axis | 축의 각도를 따라 회전한 벡터 A 결과를 계산 및 반환합니다. |
Transform Direction | 제공된 트랜스폼으로 입력 방향 벡터를 트랜스폼합니다. 길이를 변경하지 않습니다. 결과는 어트리뷰트에 기록됩니다. |
Transform Rotation | 입력 트랜스폼에 따라 로테이터 또는 쿼터니언을 트랜스폼합니다. 결과는 어트리뷰트에 기록됩니다. |
어트리뷰트 로테이터 연산
노드 | 설명 |
---|---|
Make Rot from Angles | 입력 Roll, Pitch 및 Yaw 값을 사용하여 생성된 로테이터 어트리뷰트를 반환합니다. |
Make Rot from Axis | Forward, Right 및 Up 축에서 생성된 레퍼런스 프레임을 사용하여 로테이터를 반환합니다. |
Make Rot from X | X 축만을 사용하여 생성된 로테이터 어트리뷰트를 반환합니다. Y와 Z 축은 지정되지 않지만 직교합니다. |
Make Rot from XY | X 및 Y 축을 사용하여 생성된 로테이터 어트리뷰트를 반환합니다. X 축은 고정된 상태가 유지되고 Y 축은 직교를 위해 최소한으로 변경될 수 있습니다. 또한 Z 값을 계산합니다. |
Make Rot from XZ | X 및 Z 축을 사용하여 생성된 로테이터 어트리뷰트를 반환합니다. X 축은 고정된 상태가 유지되고 Z 축은 직교를 위해 최소한으로 변경될 수 있습니다. 또한 Y 값을 계산합니다. |
Make Rot from Y | Y 축만을 사용하여 생성된 로테이터 어트리뷰트를 반환합니다. X와 Z 축은 지정되지 않지만 직교합니다. |
Make Rot from YX | Y 및 X 축을 사용하여 생성된 로테이터 어트리뷰트를 반환합니다. Y 축은 고정된 상태가 유지되고 X 축은 직교를 위해 최소한으로 변경될 수 있습니다. 또한 Z 값을 계산합니다. |
Make Rot from YZ | Y 및 Z 축을 사용하여 생성된 로테이터 어트리뷰트를 반환합니다. Y 축은 고정된 상태가 유지되고 Z 축은 직교를 위해 최소한으로 변경될 수 있습니다. 또한 X 값을 계산합니다. |
Make Rot from Z | Z 축만을 사용하여 생성된 로테이터 어트리뷰트를 반환합니다. X와 Y 축은 지정되지 않지만 직교합니다. |
Make Rot from ZX | Z 및 X 축을 사용하여 생성된 로테이터 어트리뷰트를 반환합니다. Z 축은 고정된 상태가 유지되고 X 축은 직교를 위해 최소한으로 변경될 수 있습니다. 또한 Y 값을 계산합니다. |
Make Rot from ZY | Z 및 Y 축을 사용하여 생성된 로테이터 어트리뷰트를 반환합니다. Z 축은 고정된 상태가 유지되고 Y 축은 직교를 위해 최소한으로 변경될 수 있습니다. 또한 X 값을 계산합니다. |
파라미터
노드 | 설명 |
---|---|
Get Actor Property | PCG 컴포넌트를 보유한(또는 오브젝트 계층구조에서 높은 위치에 있는) 액터에서 프로퍼티를 가져옵니다. 기본적으로 액터 레벨 프로퍼티를 조회하지만(블루프린트 변수에 유용함) 컴포넌트 선택(Selected Component) 옵션을 사용하여 컴포넌트 프로퍼티를 조회할 수 있습니다. |
Data Count | 입력 핀으로 전달된 데이터 수가 포함된 어트리뷰트 세트를 반환합니다. 빈 포인트 데이터를 무시하지 않습니다. |
샘플러
노드 | 설명 |
---|---|
Copy Points | 타깃의 포인트당 소스(Source per point in the Target) 입력에 있는 모든 포인트의 인스턴스를 복사합니다. 공간 프로퍼티 상속에 사용할 옵션은 여러 개지만 이 노드의 퍼포먼스에 가장 큰 영향을 미치는 것은 어트리뷰트 상속(Attribute Inheritance) 입니다. |
Mesh Sampler | 지정된 스태틱 메시에서 포인트를 샘플링합니다. 이 작업은 비용이 많이 듭니다. PCG Geometry Script Interop 플러그인과 Geometry Script 플러그인이 필요합니다. |
Spline Sampler | 소스 머티리얼로 스플라인을 사용하여 포인트를 샘플링합니다. 스플라인에서 샘플링하면 스플라인 커브에 직접 샘플링하게 되고, 수평(Horizontal), 수직(Vertical) 및 볼륨(Volume) 옵션을 사용하면 (Y/Z 축의 컨트롤 포인트 반경에 따라) 스플라인 볼륨에 샘플링하게 됩니다. 스플라인 내부에서 샘플링하려면 스플라인이 닫혀 있어야 합니다. |
Surface Sampler | 일반 그리드 패턴으로 서피스 데이터에 포인트를 샘플링합니다. 이 노드에는 다음과 같은 옵션이 있습니다.
|
Volume Sampler | 제공된 공간 데이터를 일반 3D 그리드에 샘플링합니다. '복셀과 유사한' 동작을 보여주고 대용량 데이터 또는 높은 밀도에서는 비용이 커질 수 있습니다. |
공간
노드 | 설명 |
---|---|
Bounds Modifier | 제공된 데이터 포인트에서 포인트의 바운드 프로퍼티를 수정합니다. |
Create Spline | 입력 포인트 데이터에서 스플라인을 생성합니다. 다음을 생성하는 옵션이 포함되어 있습니다.
|
Difference | 소스의 집합에 대한 각 소스의 차이 결과를 출력합니다. 이 노드에는 다음과 같은 옵션이 있습니다. 밀도 함수(Density Function): 연산 완료 이후 사용되는 밀도 함수를 제어합니다. 다음과 같은 옵션이 있습니다.
모드(Mode): 구체적 공간 데이터가 있는 경우 연속 데이터(분포 함수와 유사한 기타 유형)와의 차이 동작을 제어합니다. 구체적 엘리먼트를 선택하고자 하는 경우 별개(Discrete)로 설정해야 하고, 그 외에는 그에 따른 밀도 함수가 평평할 수 없습니다. 다음과 같은 옵션이 있습니다.
|
Distance | 첫 입력의 각 포인트에 대해 두 번째 입력의 가장 가까운 포인트까지의 거리를 계산하고 한 포인트 데이터 세트에서 같은 포인트 데이터 세트로의 거리를 계산할 때 자기 자신은 자동으로 무시합니다. 또는 거리 벡터를 어트리뷰트로 출력할 수 있습니다. |
Extents Modifier | 바운드를 조작하여 포인트 데이터에서 각 포인트의 규모를 수정합니다. |
Gather | 모든 입력을 가져와서 모든 입력 데이터를 보유한 단일 컬렉션을 생성합니다. 주로 정리 용도로 사용됩니다. 중요한 경우 시퀀스 실행에 대한 Dependency Only 핀이 포함됩니다(예: World Ray Hit Query 대 주어진 그래프에서 스폰된 콘텐츠). 이 핀에 제공된 모든 데이터가 출력으로 전달되는 것은 아닙니다. |
Get Actor Data | Get … Data 노드의 일반 버전. 액터 필터(Actor Filter) 및 모드(Mode)를 사용하여 액터에서 데이터를 읽습니다. 다음과 같은 옵션이 있습니다. 액터 필터(Actor Filter): 액터 데이터를 가져올 때 어떤 액터를 고려할지 결정합니다. 자손 포함(Include Children): 입력의 자손 액터를 고려할지 여부를 결정합니다. 모드(Mode): 다음과 같은 옵션이 있습니다.
|
Get Landscape Data | Get Actor Data 노드의 공간화로 적절하게 입력 및 구성된 랜드스케이프 데이터를 반환합니다. |
Get Number of Points | 포인트 데이터 내 포인트 수를 반환합니다. |
Get Primitive Data | Get Actor Data 노드의 공간화로 적절하게 입력 및 필터 적용된 프리미티브 데이터를 반환합니다. |
Get Spline Data | Get Actor Data 노드의 공간화로 적절하게 입력 및 필터 적용된 스플라인 데이터를 반환합니다. |
Get Texture Data | 서피스 데이터로 텍스처를 로드합니다. 대부분의 압축된 텍스처 유형에 대해 GPU가 실행되어야 합니다. |
Get Volume Data | Get Actor Data 노드의 공간화로 적절하게 입력 및 필터 적용된 볼륨 데이터를 반환합니다. |
Inner Intersection | 핀과 무관하게 노드에 제공된 모든 데이터 사이의 내부 교차점을 계산합니다. 예시: 입력 1에 [A, B] 포함 입력 2에 [C] 포함 결과: A ∩ B ∩ C |
Intersection | Primary Source 핀에 제공된 각 데이터의 외부 교차점을 계산합니다. 여기에서 결과는 각 Source 핀의 결합 데이터에 대한 프라이머리 소스의 데이터당 1개의 교차점입니다. 예시: Primary Source에 [A, B] 포함 Source 1에 [C, D] 포함 Source 2에 [E] 포함. 결과: A ∩ (C ∪ D) ∩ E, B ∩ (C ∪ D) ∩ E |
Merge | 여러 입력 포인트 데이터를 단일 포인트 데이터로 결합합니다. 어트리뷰트가 병합되고 공통적이지 않은 어트리뷰트는 기본적으로 필요합니다. |
Normal To Density | 포인트 노멀과 내적과 유사하지만 유연성이 더해져 제공된 세팅(노멀(Normal), 오프셋(Offset), 강도(Strength), 밀도 모드(Density Mode)) 을 기반으로 포인트 데이터를 계산합니다. |
Point From Mesh | 제공된 스태틱 메시의 바운드와 해당 메시의 레퍼런스가 포함된 하나의 포인트가 있는 포인트 데이터를 빌드합니다. |
Projection | 소스 데이터에서 타깃으로 투영할 투영 데이터를 생성합니다. 해당 소스 데이터에서 해당 타깃 데이터로의 특수 투영 표현이 없는 경우 데이터를 포인트로 변환합니다. |
Spatial Noise | 공간상 일관적인 노이즈 패턴(예: 펄린 노이즈)을 구성하고 이를 지정된 어트리뷰트에 기록합니다. |
To Point | 이미 있는 경우 포인트 데이터로 데이터를 보내거나 공간 데이터를 포인트 데이터로 구분합니다. |
Transform Points | 기본 무작위 규칙을 사용하여 포인트 트랜스폼을 변경합니다(고정되거나 어트리뷰트에 적용(Apply to Attribute) 을 사용하여 어트리뷰트로). 트랜스폼(이동, 회전, 스케일)의 각 컴포넌트는 더 구체적인 컨트롤이 가능하도록 상대(Relative) 대신 절대(Absolute)로 설정될 수 있습니다. 다음과 같은 옵션이 있습니다. 균등 스케일(Uniform Scale): 동일한 X, Y, Z 비율로 포인트 데이터를 스케일 조절합니다. 시드 재계산(Recompute Seed): 새 월드 포지션에 따라 포인트 시드 업데이트를 강제합니다. 예시: Absolute Rotation과 회전 Z가 0인 Transform Points 노드를 사용하면 포인트가 Z를 가리키게 됩니다. 이를 통해 랜드스케이프에서 샘플링된 이후 포인트가 위를 향합니다. |
Union | 배포 함수 관점에서 데이터 간의 논리적 결합을 생성합니다. 선택한 밀도 함수 옵션에 따라 결과가 다릅니다. 밀도 함수(Density Function): 연산 완료 이후 사용되는 밀도 함수를 제어합니다. 다음과 같은 옵션이 있습니다.
|
World Ray Hit Query | 피직스 월드에 레이 캐스트를 수행하는 서피스와 같은 데이터를 생성합니다. 서피스 데이터가 필요한 모든 노드로 데이터를 전달할 수 있습니다. 기본적으로 레이의 크기와 방향은 소스 컴포넌트의 액터 프로퍼티(대체로 볼륨)에 따라 달라지지만 레이 프로퍼티는 오버라이드가 가능합니다. 다음과 같은 옵션이 있습니다. 랜드스케이프에서 메타데이터 적용(Apply Metadata From Landscape): 레이캐스트가 랜드스케이프에 히트하는 경우 랜드스케이프 레이어 값을 구합니다. 이때 약간의 퍼포먼스 비용이 발생합니다. PCG 히트 무시(Ignore PCG Hits): 모든 PCG 생성 에셋을 무시합니다. 월드에서 강제 또는 기타 노드(또는 기타 그래프)의 데이터 생성 순서가 없는 경우 유용합니다. 선택에 따라 피지컬 머티리얼과 액터 히트를 반환할 수 있습니다. 필터링 엘리먼트가 미세 제어에 사용되어 히트를 무시하거나 일부 히트만 유지합니다. |
World Volumetric Query | 현실에서 포인트를 수집하는 볼륨과 같은 데이터를 생성합니다. 서피스 데이터가 필요한 모든 노드로 데이터를 전달할 수 있습니다. 중복 검색 확인을 통해 중복이 포인트로 반환되는지 또는 중복되지 않는 쿼리(필터링 대상)만 반환되는지 여부를 제어합니다. 볼륨에서 '찾은' 액터만 반환할 수도 있습니다. |
스포너
노드 | 설명 |
---|---|
Create Points | 포인트의 정적 설명에 있는 포인트가 포함된 포인트 데이터를 생성합니다. |
Create Points Grid | 세팅에 의해 정의된 간단한 포인트 그리드가 포함된 포인트 데이터를 생성합니다. |
Create Target Actor | 스태틱 메시 스포너 등에 PCG 아티팩트를 기록하는 대상으로 사용할 수 있는 템플릿에서 빈 액터를 생성합니다. |
Mesh Sockets to Points | 스태틱 메시 에디터에서 정의된 스태틱 메시 소켓에서 포인트를 생성합니다. 소켓은 태그로 필터 적용이 가능합니다. |
Point from Player Pawn | 현재 플레이어 폰 위치에서 포인트를 생성합니다. 런타임 생성 도중 사용됩니다. |
Spawn Actor | 제공된 입력 데이터에서 액터의 콘텐츠 또는 포인트당 액터를 스폰합니다. 액터는 템플릿 액터 클래스나 인스턴스화된 템플릿 액터 또는 세팅의 어트리뷰트에 따라 달라집니다. 다음과 같은 옵션이 있습니다. 템플릿 액터 클래스(Template Actor Class): 프로젝트에서 사용 가능한 액터 목록입니다. 옵션(Option):
|
Static Mesh Spawner | 제공된 포인트 데이터의 포인트당 1개의 스태틱 메시를 스폰합니다. 스태틱 메시 옵션이 메시 항목 어레이에 추가되고 각 항목의 가중치 를 사용하여 선택됩니다. 이는 모든 가중치 값의 합산을 구하고 이를 각 항목의 퍼센티지로 변환하면서 이루어집니다. 예를 들어 배열에 4개의 항목이 있고 각각의 값이 1인 경우 합산 값은 4입니다. 이후 각 항목의 가중치를 합산으로 나누고 퍼센티지로 변환합니다. 따라서 각 항목의 스폰 확률은 25%입니다. 스태틱 메시의 선택은 선택한 메시 선택 툴 타입(Mesh Selector Type) 옵션을 기반으로 하는 변수를 사용하여 이루어집니다. 다음과 같은 옵션이 있습니다.
|
서브그래프
노드 | 설명 |
---|---|
Loop | 다른 그래프를 서브그래프로 루프 핀의 데이터당 한 번 실행합니다. 루프가 아닌 핀은 그대로 전달됩니다. |
Subgraph | 다른 그래프를 서브그래프로 실행합니다. |
트랜스폼
노드 | 설명 |
---|---|
Apply Scale to Bounds | 바운드와 스케일을 곱하고 스케일을 포인트 데이터의 모든 포인트에 대한 단위 벡터로 재설정합니다. |