언어:
페이지 정보
태그:
엔진 버전:
언리얼 엔진

랜덤 스트림

언리얼 엔진

RandomStream (랜덤 스트림)이란 블루프린트나 레벨 블루프린트는 물론 애니메이션용 Anim Blueprint 에서도 사용할 수 있는 반복형 난수를 생성하는 것입니다. 오브젝트를 흩어놓거나 환경을 절차적 생성할 때, 즉 임의성이 필요는 하되 그래프를 계산할 때마다 매번 일관된 분포가 필요할 때 아주 좋습니다. 이전엔 랜덤 값을 사용하면 그래프를 계산할 때마다 분포가 달라지곤 했습니다. 즉 블루프린트를 옮기거나 어떤 작업을 하거나 해서 그래프가 다시 계산되면 이펙트가 완전히 달라지는 것입니다. 랜덤 스트림 으로는, 시드 값에 따라 이펙트를 수정하여 원하는 결과를 낸 다음, 전체적인 이펙트를 유지한 채 다른 수정을 가하는 것이 가능합니다.

RandomStream 변수

RandomStream 은 블루프린트에서 특수한 유형의 구조체 변수로 사용 가능합니다. 다른 변수와 마찬가지로 그래프 모드에서 내 블루프린트 탭을 통해 생성하여 추가시킬 수 있습니다.

RandomStream Variable

블루프린트 클래스레벨 블루프린트 안에서 새 변수를 추가하는 법에 대한 상세 정보는 블루프린트 변수 문서를 참고하시기 바랍니다.

RandomStream 함수

RandomStream 변수를 활용하기 위해서, RandomStream 을 입력으로 받아 함수에 따라 여러가지 유형의 난수를 출력하는 함수 세트가 있습니다.

Random Stream Context Menu

함수

설명

Random Bool from Stream

임의로 0 또는 1 을 출력합니다.

Random Float from Stream

(0.0, 1.0) 범위의 Float 난수를 출력합니다.

Random Float in Range from Stream

(Min, Max) 범위의 Float 난수를 출력합니다.

Random Integer From Stream

(0, Max - 1) 범위까지 균등 분포되는 Integer 난수를 출력합니다.

Random Integer In Range From Stream

(Min, Max) 범위의 Integer 난수를 출력합니다.

Random Rotator From Stream

임의의 Rotator 값을 출력합니다.

Random Unit Vector From Stream

임의 유닛 길이의 Vector 값을 출력합니다.

위의 함수 중 하나를 선택하면 RandomStream 변수에 연결된 그래프에 놓입니다.

Random Stream Function

랜덤 스트림을 사용하여 블루프린트에 속하는 컴포넌트를 임의로 놓고 돌리는 함수 예제는 다음과 같습니다:

Random Stream Functions Example

보시듯이 랜덤 부울, 플로트, 인티저, 벡터, 로테이터 모두 같은 스트림에서 뽑아낼 수 있습니다.

Initial Seed

Initial Seed (초기 시드) 프로퍼티는 난수 스트림 계산에 사용됩니다. 같은 시드에서의 난수 발생 순서는 계산될 때마다 매번 같기 때문에, 앞서 말한 일관성을 얻을 수 있는 것입니다. 시드가 달라지면 값의 순서도 달라집니다.

즉 RandomStream 의 Initial Seed 를 변경하면 난수 발생 순서를 바꿀 수 있습니다. 이런 식으로 순서나 분포가 입맛에 맞을 때까지 랜덤 이펙트를 수정할 수 있고요. Initial Seed 는 블루프린트 인스턴스마다 새로 생성됩니다. 즉 블루프린트 인스턴스를 월드에 놓거나 기존 인스턴스를 복제할 때마다, 그 블루프린트에 속하는 각 RandomStream 변수에는 새로운 Initial Seed 값이 주어집니다. 즉 각 인스턴스는 별개의 것으로, 수정하여 정확히 원하는 결과를 만들어낼 수 있습니다.

Initial Seed 변경하기

변수에 Initial Seed 프로퍼티를 직접 설정하기 위해서는 RandomStream 변수를 편집용으로 노출시켜야 합니다. 노출시키고 나면 블루프린트의 인스턴스가 선택되었을 때 디테일 탭에 Initial Seed 프로퍼티가 나타납니다.

Exposed Initial Seed Property

블루프린트 그래프 안에서 Initial Seed 를 특정한 값이나 새로운 임의의 값으로 설정할 수도 있습니다.

Set Random Stream Seed 노드는 풀잎이나 돌처럼 하나의 블루프린트로 여러 오브젝트를 놓을 때, 테스팅이나 기타 목적으로 항상 같은 식으로 놓고자 할 때 좋습니다. 레벨에 블루프린트 를 놓을 때 Initial Seed 가 임의 설정되도록 덮어쓰게 됩니다.

태그