분포

상수값, 일정 범위 내 난수값, 곡선을 따라 보간되는 값, 파라미터로 구동되는 값 등의 유연성이 제공되는 데이터 유형입니다.

Windows
MacOS
Linux

분포(distribution)란 상수 값, 범위 내 임의의 값, 커브를 따라 보간되는 값, 파라미터에 물려주는 값 등 데이터 유연함을 더해주는 유형 그룹을 말합니다. 보통 파티클 시스템과 사운드큐에서 노드의 프로퍼티에 사용됩니다.

에디터에서는 구역이 알파벳 순으로 나열되어 있지만, 여기서는 분포 개념에 익숙치 않은 분들의 이해를 돕기 위해 복잡도 순으로 하겠습니다.

분포 굽기

어떤 분포를 사용하든지 간에 항상 그 아래 굽기 가능 (Can be Baked) 옵션이 보입니다. 분포의 수치 결과를 룩업 테이블로 구워내는 옵션인데, 값을 룩업 테이블 형태로 구워낼 수 있다면 즉석에서 커브 보간이나 임의의 값을 계산하는 것보다 훨씬 효율적입니다. 그런 이유로 이 옵션은 기본으로 켜져 있습니다.

가끔 룩업 테이블로 인해 중요한 정보가 손실되는 경우가 발생한다면, 시스템이 매 틱마다 실제 값을 검사할 수 있도록 이 옵션 체크를 해제해 주면 됩니다. 당연히 효율은 떨어지겠지만, 룩업 테이블로는 모양이 나지 않는 희귀한 경우에라면 고려할 만한 가치가 있는 옵션입니다.

CanBeBaked.png

분포 유형

대부분의 파티클 프로퍼티는 파티클 시스템을 만들때의 유연성을 최대한 높이기 위해 DistributionFloat 나 DistributionVector 형을 활용합니다. 분포 유형에서 사용할 수 있는 옵션은 여러가지 있으나, 다음 섹션에서 자세히 설명하겠습니다.

참고로 그 값의 실제 용도는 이를 사용하는 프로퍼티에 따라 달라집니다. 예를 들어 파티클의 Initial Size (초기 크기)는 파티클 스폰 시점에서 결정됩니다. 그 프로퍼티에 대한 분포 종류가 상수 커브로 설정되어 있다면, 스폰시의 이미터 시간을 사용하여 커브에서 바라는 값을 구합니다.

플로트 분포

플로트 (Float) 분포는 아티스트에 의해 제어되는 스칼라 프로퍼티가 있을 때 이용됩니다. 예제로는 파티클의 수명이나 이미터의 스폰 속도가 되겠습니다.

DistributionFloatConstant (플로트 상수)

상수인 프로퍼티에 값을 주는 데 사용되는 유형입니다. 아래는 이 값을 수치선 상에 그래프로 나타내 본 것입니다.

FloatConstant_Graph.png

  1. 변하지 않는 상수 플로트 값

이 유형을 선택하면 값의 수정을 위해 다음과 같은 창이 뜹니다:

FloatConstant.png

DistributionFloatConstant 프로퍼티

항목

설명

Constant

상수 - 주어진 프로퍼티에 대해 고정적이고 변하지 않는 수치입니다.

DistributionFloatUniform (플로트 균등)

프로퍼티에 범위값을 주기 위해 사용되는 분포 유형입니다. 계산시 반환되는 값은 선택된 범위 내에서 임의로 설정됩니다.

FloatUniform_Graph.png

  1. 최소값

  2. 최대값

  3. 임의값을 선택할 범위

이 유형을 선택하면 값의 수정을 위해 다음과 같은 창이 뜹니다:

FloatUniform.png

DistributionFloatUniform 프로퍼티

항목

설명

Min

최소 - 임의 계산에서의 최소값입니다.

Max

최대 - 임의 계산에서의 최대값입니다.

DistributionFloatConstantCurve (플로트 상수 커브)

시간에 따라 그래프 에디터에 그려지는 프로퍼티 값을 주는 데 사용되는 유형입니다. 시간이 (이미터의 수명에 걸쳐) 절대적인지 (개별 파티클의 수명에 걸쳐) 상대적인지는, 분포를 활용하는 모듈에 달려 있습니다.

floatConstantCurve_Graph.png

  1. 키프레임 점

  2. 보간 커브 - 최종 값은 일정 시간에서의 이 커브 값에 따라 뽑아냅니다.

  3. 탄젠트 핸들 - 키프레임으로 들어오고 나가는 커브의 흐름을 방식을 정의합니다.

이 유형을 선택하면 값의 수정을 위해 다음과 같은 창이 뜹니다:

FloatConstantCurve.png

참고로 모든 필드를 손수 수정할 수는 있지만, 커브 에디터 창을 활용하는 방법을 추천합니다.

DistributionFloatConstantCurve 프로퍼티

항목

설명

Points

점 - 커브 내 모든 점이 들어있는 배열 프로퍼티입니다. 여기서 AddPoint_button.png 버튼으로 점을 만들 수는 있지만, 보통은 그래프 에디터에서 점을 추가하는 편이 훨씬 쉽고 직관적입니다.

Point 프로퍼티

InVal

입력 값 - 그래프의 가로 축 상의 점 위치로, 보통 시간으로 계산됩니다.

OutVal

출력 값 - 그래프의 세로 축 상의 점 위치로, 보통 프로퍼티 값으로 계산됩니다.

ArriveTangent

들어오는 탄젠트 - 이 점에 들어오는 탄젠트 각도입니다. 값의 유효 범위는 약 -150 에서 150 까지입니다.

LeaveTangent

나가는 탄젠트 - 이 점을 나가는 탄젠트 각도입니다. 값의 유효 범위는 약 -150 에서 150 까지입니다.

InterpMode

보간 모드 - 사용자가 커브의 다양한 보간 모드를 선택할 수 있습니다. 자세한 내용은 커브 에디터 사용 안내서 를 참고하시기 바랍니다.

DistributionFloatUniformCurve (플로트 균등 커브)

이간에 따라 그래프 에디터에 그려지는 프로퍼티 값의 범위를 주기 위해 사용되는 유형입니다. 시간 내 각 점에서마다 커브 최소 최대 범위 내 임의값이 선택됩니다.

FloatUniformCurve_graph.png

  1. 최소 커브 - 시간에 따라 변하는 최소값입니다.

  2. 최대 커브 - 시간에 따라 변하는 최대값입니다.

  3. 그에 따른 범위 - 시간 내 각 점에서마다 최종값이 선택되는 그래프 영역입니다.

이 유형을 선택하면 값의 수정을 위해 다음과 같은 창이 뜹니다:

FloatUniformCurve.png

상수 커브 유형과 마찬가지로, 이 분포 유형도 커브 에디터를 통해 수정하는 것이 좋습니다.

DistributionFloatUniformCurve 프로퍼티

항목

설명

Points

점 - 커브 내 모든 점이 들어있는 배열 프로퍼티입니다. 여기서 AddPoint_button.png 버튼으로 점을 만들 수는 있지만, 보통 그래프 에디터에서 추가하는 편이 더욱 쉽고 직관적입니다.

Point 프로퍼티

InVal

입력 값 - 그래프의 가로 축 상의 점 위치로, 보통 시간으로 계산됩니다.

OutVal

출력 값 - 그래프의 세로 축 상의 점 위치로, 보통 프로퍼티 값으로 계산됩니다. Uniform 커브 의 경우 이 프로퍼티에는 출력의 Min / Max 를 나타내는 X / Y 값이 들어 있습니다.

ArriveTangent

들어오는 탄젠트 - X / Y (최소 / 최대) 점에 들어오는 탄젠트 각도입니다. 값의 유효 범위는 약 -150 에서 150 까지입니다.

LeaveTangent

나가는 탄젠트 - X / Y (최소 / 최대) 점을 나가는 탄젠트 각도입니다. 값의 유효 범위는 약 -150 에서 150 까지입니다.

InterpMode

보간 모드 - 사용자가 커브의 다양한 보간 모드를 선택할 수 있습니다. 자세한 내용은 커브 에디터 사용 안내서 를 참고하시기 바랍니다.

DistributionFloatParticleParam (플로트 파티클 파라미터)

이미터의 파라미터를 단순한 게임 코드 세팅이 가능하도록 하여, 코드, 블루프린트, 마티네를 통해 조작할 수 있도록 해 주는 유형입니다. 일정 범위의 입력 값을 다른 범위로 매핑시키는 기능이 있어, 게임플레이 코드를 업데이트하지 않고도 "캐스케이드 공간"에서 파라미터를 조정할 수 있습니다. 게임플레이 코더가 Input 범위를 확정하고 나면, 아티스트는 Output 매핑을 통해 자유로이 프로퍼티를 조절할 수 있습니다.

이 유형을 선택하면 값의 수정을 위해 다음과 같은 창이 뜹니다:

FloatParticleParam.jpg

Input(입력)에서 Output(출력)은 선형으로 리매핑됩니다. 따라서 MinInput=0, MaxInput=5 이고, MinOutput=0, MaxOutput=100 인 상태에서 입력에 2 가 전달되면, 출력은 40 이 됩니다.

이 기능은 단순한 0-1 범위 입력을 여러가지 출력으로 매핑시키기에 좋습니다. 파티클 파라미터 변수를 이름으로 공유할 수 있기 때문입니다. 예를 들면 SpawnRate 를 파티클 파라미터 Foo 로 돌리도록 구성한 다음, 0-1 범위의 입력이 20-200 범위의 출력이 되도록 설정할 수 있습니다. 그리고서 같은 입력의 Foo 를 InitialSize 에다가는 10-20 의 출력으로 사용할 수 있는 것입니다.

프로그래머가 작성하는 코드는 다음과 같습니다:

ParticleComponent->SetFloatParameter('MyParameter', CurrentParameter);

DistributionFloatParticleParameter 프로퍼티

항목

설명

Parameter Name

파라미터 이름 - 코드나 블루프린트 스크립트에서 레퍼런스할 때 사용되는 파라미터 이름입니다.

Min Input

최소 입력 - 보통 게임 코드를 통해 분포에 전해줄 수 있는 최소값입니다.

Max Input

최대 입력 - 보통 게임 코드를 통해 분포에 전해줄 수 있는 최대값입니다.

Min Output

최소 출력 - 입력 범위에 매핑시켜 캐스케이드로 출력할 수 있는 최소값입니다.

Max Output

최대 출력 - 입력 범위에 매핑시켜 캐스케이드로 출력할 수 있는 최대값입니다.

Param Mode

파람 모드 - 입력값 사용 방식을 조절합니다. 아래 Param Mode Flag 참고.

Constant

상수 - 입력값이 없을 때 시스템이 사용할 기본값입니다.

ParamMode Flag

설명

DPM_Normal

입력 값을 놔둡니다.

DPM_Abs

리매핑 전 입력값 절대치를 사용합니다.

DPM_Direct

입력값을 (리매핑 없이) 직접 사용합니다.

벡터 분포

벡터 분포는 아티스트가 제어하는 벡터 기반 프로퍼티가 있을 때 활용되는 분포입니다. 파티클의 크기나 속도를 예로 들 수 있습니다.

DistributionVectorConstant (벡터 상수)

상수인 프로퍼티 값을 주는 데 사용되는 유형입니다.

VectorConstant_Graph.png

  1. X-축 값

  2. Y-축 값

  3. Z-축 값

이 유형을 선택하면 값의 수정을 위해 다음과 같은 창이 뜹니다:

VectorConstant.png

LockedAxes 플래그로 한 축의 값을 다른 축의 값에 고정할 수 있습니다. 지원되는 플래그는 다음과 같습니다:

DistributionVectorConstant 프로퍼티

항목

설명

Constant

상수 - 주어진 프로퍼티에 대해 고정적이고 변하지 않는 수치입니다. 벡터의 경우 X, Y, Z 값이 들어갑니다.

Locked Axes

고정 축 - 세 축 중 하나를 다른 축에 고정시켜 분포를 단순화시킵니다. 아래 Locked Axes Flag 참고.

Locked Axes Flag

설명

EDVLF_None

어떤 축도 다른 축에 고정되지 않습니다.

EDVLF_XY

Y-축이 X-축 값에 고정됩니다.

EDVLF_XZ

Z-축이 X-축 값에 고정됩니다.

EDVLF_YZ

Z-축이 Y-축 값에 고정됩니다.

EDVLF_XYZ

YZ-축이 X-축 값에 고정됩니다.

참고: 고정 플래그를 켜면 프로퍼티 창 세팅에 값이 반영되지 않습니다. 즉 LockedAxes 플래그가 EDVLF_XY 로 설정되어 있으면, Y 값은 X 내용을 표시하지 않습니다. 분포에서 값을 (코드로) 구해올 때만 고정 축 값이 적용됩니다.

DistributionVectorUniform (균등 벡터)

프로퍼티에 범위 값을 주는 데 사용되는 유형입니다. 계산시 반환되는 값은 선택된 범위 내 임의의 값으로 설정됩니다.

VectorUniform_Graph.png

  1. X-축 최소 값

  2. X-축 최대 값

  3. X-축 임의 범위

  4. Y-축 최소 값

  5. Y-축 최대 값

  6. Y-축 임의 범위

  7. Z-축 최소 값

  8. Z-축 최대 값

  9. Z-축 임의 범위

이 유형을 선택하면 값의 수정을 위해 다음과 같은 창이 뜹니다:

VectorUniform.png

DistributionVectorUniform 프로퍼티

항목

설명

Min

최소 - 임의 계산에서의 최소값입니다. Vector Uniform 의 경우 X, Y, Z 값이 들어갑니다.

Max

최대 - 임의 계산에서의 최대값입니다. Vector Uniform 의 경우 X, Y, Z 값이 들어갑니다.

Use Extremes

극단 사용 - Min / Max 사이값이 아니라 그 양 극단값 중 하나가 선택됨을 나타냅니다.

Locked Axes Flag

설명

EDVLF_None

어떤 축도 다른 축에 고정되지 않습니다.

EDVLF_XY

Y-축이 X-축 값에 고정됩니다.

EDVLF_XZ

Z-축이 X-축 값에 고정됩니다.

EDVLF_YZ

Z-축이 Y-축 값에 고정됩니다.

EDVLF_XYZ

YZ-축이 X-축 값에 고정됩니다.

Mirror Flags 로 각 성분의 Min/Max 값 미러링이 가능합니다. 미러링에 지원되는 플래그는 다음과 같습니다:

MirrorFlags

설명

EDVMF_Same

Min 에도 Max 값을 사용합니다.

EDVMF_Different

각각의 값을 세트로 사용합니다.

EDVMF_Mirror

Min 값은 Max 의 반전값 (Max * -1) 이 됩니다.

Mirror Flags 프로퍼티 바로 아래의 0, 1, 2 는 각각 X, Y, Z 축을 나타냅니다.

DistributionVectorConstantCurve (벡터 상수 커브)

일정 기간에 걸쳐 그래프 에디터에 그려지는 프로퍼티 값을 주는 데 사용되는 유형입니다. 시간이 (이미터 수명에 걸쳐) 절대적인지 (개별 파티클의 수명에 걸쳐) 상대적인지는, 분포를 활용하는 모듈에 달려있습니다.

VectorConstantCurve_Graph.png

  1. X-축 커브 점 0

  2. X-축 커브 점 1

  3. X-축 보간 커브

  4. Y-축 커브 점 0

  5. Y-축 커브 점 1

  6. Y-축 보간 커브

  7. Z-축 커브 점 0

  8. Z-축 커브 점 1

  9. Z-축 보간 커브

이 유형을 선택하면 값의 수정을 위해 다음과 같은 창이 뜹니다:

VectorConstantCurve.png

플로트 상수 커브 유형과 마찬가지로, 이 분포 유형도 커브 에디터를 통해 수정하는 것이 좋습니다.

주: 상수 커브 분포에 대해 LockedAxes 플래그가 EDVLF_None 이외의 것으로 설정되어 있으면, 커브 에디터에는 혼동을 피하기 위해 고정 축이 표시되지 않습니다. 예를 들어 플래그가 EDVLF_XY 로 설정되면, 커브 에디터에는 X 와 Z 곡선만 표시됩니다.

DistributionFloatConstantCurve 프로퍼티

항목

설명

Points

점 - 커브 내 모든 점이 들어있는 배열 프로퍼티입니다. 여기서 AddPoint_button.png 버튼으로 점을 만들 수는 있지만, 보통 그래프 에디터에서 추가하는 편이 더욱 쉽고 직관적입니다.

Point 프로퍼티

InVal

입력 값 - 그래프의 가로 축 상의 점 위치로, 보통 시간으로 계산됩니다.

OutVal

출력 값 - 그래프의 세로 축 상의 점 위치로, 보통 프로퍼티 값으로 계산됩니다.

ArriveTangent

들어오는 탄젠트 - 점에 들어오는 탄젠트 각도입니다. 값의 유효 범위는 약 -150 에서 150 까지입니다.

LeaveTangent

나가는 탄젠트 - 점을 나가는 탄젠트 각도입니다. 값의 유효 범위는 약 -150 에서 150 까지입니다.

InterpMode

보간 모드 - 사용자가 커브의 다양한 보간 모드를 선택할 수 있습니다. 자세한 내용은 커브 에디터 사용 안내서 를 참고하시기 바랍니다.

고정축 플래그

설명

EDVLF_None

어떤 축도 다른 축에 고정되지 않습니다.

EDVLF_XY

Y-축이 X-축 값에 고정됩니다.

EDVLF_XZ

Z-축이 X-축 값에 고정됩니다.

EDVLF_YZ

Z-축이 Y-축 값에 고정됩니다.

EDVLF_XYZ

YZ-축이 X-축 값에 고정됩니다.

DistributionVectorUniformCurve (벡터 균등 커브)

일정 기간에 따라 그래프 에디터에 그려지는 프로퍼티 값 범위를 주는 데 사용되는 유형입니다. The final 값 will be chosen at random from between the Min and Max 커브s for each axis.

VectorUniformCurve_graph.png

  1. X-축 최소 커브

  2. X-축 최대 커브

  3. X-축 임의 보간 범위

  4. Y-축 최소 커브

  5. Y-축 최대 커브

  6. Y-축 임의 보간 범위

  7. Z-축 최소 커브

  8. Z-축 최대 커브

  9. Z-축 임의 보간 범위

이 유형을 선택하면 값의 수정을 위해 다음과 같은 창이 뜹니다:

VectorUniformCurve.png

DistributionVectorUniformCurve 프로퍼티

항목

설명

Points

점 - 커브 내 모든 점이 들어있는 배열 프로퍼티입니다. 여기서 AddPoint_button.png 버튼으로 점을 만들 수는 있지만, 보통 그래프 에디터에서 추가하는 편이 더욱 쉽고 직관적입니다.

Point 프로퍼티

InVal

입력 값 - 그래프의 가로 축 상의 점 위치로, 보통 시간으로 계산됩니다.

OutVal

출력 값 - 그래프의 세로 축 상의 점 위치로, 보통 프로퍼티 값으로 계산됩니다. Vector Uniform 커브 의 경우 이 프로퍼티에는 출력의 Min / Max 를 나타내는 V1 / V2 값이 들어 있습니다. 그 값 각각에는 X, Y, Z 축 값이 들어갑니다.

ArriveTangent

들어오는 탄젠트 - 각각 X, Y, Z 값이 들어가는 V1 / V2 (최소 / 최대) 점에 들어오는 탄젠트 각도입니다. 값의 유효 범위는 약 -150 에서 150 까지입니다. Vector Uniform 커브의 경우 이 프로퍼티에는 출력의 Min / Max 를 나타내는 V1 / V2 값이 들어갑니다. 그 각각에는 X, Y, Z 축 값이 들어갑니다.

LeaveTangent

나가는 탄젠트 - X / Y (최소 / 최대) 점을 나가는 탄젠트 각도입니다. 값의 유효 범위는 약 -150 에서 150 까지입니다. Vector Uniform 커브의 경우 이 프로퍼티에는 출력의 Min / Max 를 나타내는 V1 / V2 값이 들어갑니다. 그 각각에는 X, Y, Z 축 값이 들어갑니다.

InterpMode

보간 모드 - 사용자가 커브의 다양한 보간 모드를 선택할 수 있습니다. 자세한 내용은 커브 에디터 사용 안내서 를 참고하시기 바랍니다.

Use Extremes

극단 사용 - Min / Max 사이값이 아니라 그 양 극단값 중 하나가 선택됨을 나타냅니다.

Locked Axes Flag

설명

EDVLF_None

어떤 축도 다른 축에 고정되지 않습니다.

EDVLF_XY

Y-축이 X-축 값에 고정됩니다.

EDVLF_XZ

Z-축이 X-축 값에 고정됩니다.

EDVLF_YZ

Z-축이 Y-축 값에 고정됩니다.

EDVLF_XYZ

YZ-축이 X-축 값에 고정됩니다.

Mirror Flags 는 값의 각 컴포넌트에 대한 최소/최대값 미러링이 가능합니다. 미러링에 지원되는 플래그는 다음과 같습니다:

미러 플래그

설명

EDVMF_Same

최소값에도 최대값을 사용합니다.

EDVMF_Different

각기 다른 설정값을 사용합니다.

EDVMF_Mirror

최소값은 Max 의 역(Max * -1)이 됩니다.

다른 커브 유형과 마찬가지로, 이 분포 유형은 커브 에디터를 통해 수정하는 것이 좋습니다.

DistributionVectorParticleParam (벡터 파티클 파라미터)

위에서 설명한 FloatParticleParam 유형의 벡터 버전입니다. 코드, 블루프린트, 마티네를 통한 값의 조작이 가능합니다.

이 유형을 선택하면 값의 수정을 위해 다음과 같은 창이 뜹니다:

VectorParticleParam.png

DistributionFloatParticleParameter 프로퍼티

항목

설명

Parameter Name

파라미터 이름 - 코드나 블루프린트 스크립트에서 레퍼런스할 때 사용되는 파라미터 이름입니다.

Min Input

최소 입력 - 보통 게임 코드를 통해 분포에 전해줄 수 있는 최소값입니다.

Max Input

최대 입력 - 보통 게임 코드를 통해 분포에 전해줄 수 있는 최대값입니다.

Min Output

최소 출력 - 입력 범위에 매핑시켜 캐스케이드로 출력할 수 있는 최소값입니다.

Max Output

최대 출력 - 입력 범위에 매핑시켜 캐스케이드로 출력할 수 있는 최대값입니다.

Param Mode

파람 모드 - 입력값 사용 방식을 조절합니다. 아래 Param Mode Flag 참고.

Constant

상수 - 입력값이 없을 때 시스템이 사용할 기본값입니다.

Locked Axes Flag

설명

EDVLF_None

어떤 축도 다른 축에 고정되지 않습니다.

EDVLF_XY

Y-축이 X-축 값에 고정됩니다.

EDVLF_XZ

Z-축이 X-축 값에 고정됩니다.

EDVLF_YZ

Z-축이 Y-축 값에 고정됩니다.

EDVLF_XYZ

YZ-축이 X-축 값에 고정됩니다.

ParamMode Flag

설명

DPM_Normal

입력 값을 놔둡니다.

DPM_Abs

리매핑 전 입력값 절대치를 사용합니다.

DPM_Direct

입력값을 (리매핑 없이) 직접 사용합니다.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼