네이티브 1인칭 렌더링은 1인칭 카메라 시점을 사용하여 경험을 제작할 때 종종 필요한 함수 기능을 지원합니다. 씬의 다른 부분 렌더링과는 필드 오브 뷰가 다른 특정 오브젝트만 렌더링할 수 있는 기능이 그 예입니다. 예를 들어, 캐릭터의 손과 팔 또는 무기와 같은 사물의 렌더링은 1인칭 렌더링에 적합한데, 벽에 가까이 다가갈 때 벽을 클리핑하여 뚫고 지나가지 않기 때문입니다.
1인칭 렌더링은 다음과 같은 기능을 제공합니다.
커스텀 필드 오브 뷰(Field of View, FOV)로 1인칭 프리미티브를 렌더링합니다.
1인칭 프리미티브에 스케일 조절 인수를 적용하여 카메라에 더 가깝게 효과적으로 축소함으로써, 흔히 클리핑이라고 하는 1인칭 지오메트리가 씬과 교차하는 현상을 대부분 방지할 수 있습니다. 이를 통해 항상 씬 위에 1인칭 프리미티브가 렌더링되게 할 수 있습니다.
여기에는 1인칭 지오메트리가 씬 섀도를 받아 스스로 섀도를 캐스팅하고, 플레이어는 자신의 섀도가 씬에 캐스트되는 것을 볼 수 있는 완벽한 섀도잉 솔루션이 포함되어 있습니다.
플레이어가 씬에 비친 자신의 모습을 볼 수 있고 레이 트레이스된 섀도를 캐스팅할 수 있는 하드웨어 레이 트레이싱(Hardware Ray Tracing, HWRT)과 통합되어 있습니다.
머티리얼과 통합:
1인칭 이펙트를 버텍스별로 제어합니다. 이 옵션 출력을 사용하면 월드 스페이스와 1인칭 스페이스로 간주되는 스페이스 간에 보간할 수 있습니다. 캐릭터의 발이 지면에 있는 것처럼 지오메트리의 일부가 월드와 연결되어 있기 위해 월드 스페이스에 있어야 할 때 유용합니다.
머티리얼 그래프를 사용하여 1인칭 렌더링 파라미터를 쿼리하고, 월드 스페이스에서 임의의 위치를 1인칭 스페이스로 변환합니다.
이는 대부분의 프리미티브 타입에서 작동합니다. 여기에는 스태틱 메시, 스킨을 입힌 메시, 나이아가라 파티클 이펙트(Niagara Particle Effects)가 포함됩니다.
1인칭 렌더링 구현
1인칭 게임을 개발할 때는 일반적으로 플레이어 카메라가 커스텀 필드 오브 뷰를 가지고 월드와 교차하지 않는 방식으로 1인칭 지오메트리를 렌더링해야 합니다. 언리얼 엔진에서 1인칭 렌더링을 구현하는 것은 원하는 커스텀 필드 오브 뷰 이펙트를 달성하고 클리핑 방지 행동을 하는 방식으로 1인칭 지오메트리를 모핑한다고 생각하면 됩니다. 이 모핑은 월드 포지션 오프셋(World Position Offset)이 적용된 후 버텍스가 클립 스페이스에 투영되기 전에 발생합니다.
따라서 그 지오메트리는 기술적으로는 월드 스페이스에 존재하지만, 대부분은 다른 프로젝션 매트릭스로 렌더링된 것처럼 보입니다. 이제 여기서 주의할 점은 이 지오메트리가 매우 작고 약간 기울어져 있다는 것입니다. 카메라 시점에서는 좋게 보이겠지만, 다른 시점에서는 적합하게 보이지 않습니다. 따라서 씬에 섀도를 캐스팅하거나 하드웨어 레이 트레이싱 리플렉션에 표시되면 안 되므로, 설계상 방지되어 있습니다.
이러한 방식으로 1인칭 렌더링을 구현하면 1인칭 프리미티브를 다른 프리미티브와 동일한 패스로 렌더링할 수 있으므로, 메모리와 퍼포먼스에 영향을 미치는 추가 렌더링 패스의 필요성이나 복잡성을 피할 수 있다는 장점이 있습니다.
1인칭 프리미티브 세팅
컴포넌트에는 1인칭 프리미티브 타입(First Person Primitive Type)이 1인칭(First Person) 또는 월드 스페이스 표현(World Space Representation)으로 설정된 경우 1인칭 카메라가 렌더링하는 방식을 결정하는 세팅이 포함되어 있습니다.
이 설정에는 다음과 같은 선택 항목이 포함되어 있습니다.
없음(None): 프리미티브가 1인칭 렌더링과 상호작용하지 않습니다.
1인칭(First Person): 이 프리미티브는 1인칭으로 렌더링되며 1인칭 필드 오브 뷰(First Person Field of View) 및 1인칭 스케일(First Person Scale)에 대한 카메라의 1인칭 프로퍼티의 영향을 받아 다른 필드 오브 뷰와 더 작은 뎁스 범위로 컴포넌트를 렌더링하여 씬과의 클리핑을 피할 수 있도록 합니다. 프리미티브는 씬에 섀도를 캐스트하지 않으며 레이 트레이싱 월드에도 표시되지 않습니다.
월드 스페이스 표현(World Space Representation): 이 프리미티브는 월드 스페이스에서 1인칭 프리미티브를 나타냅니다. 이 프리미티브는 다른 플레이어가 볼 수 있는 프리미티브로, 다른 기능과 함께 지면에 섀도를 캐스팅하고 하드웨어 레이 트레이싱을 통해 리플렉션하는 데 사용됩니다. 보유한 1인칭 카메라에는 보이지 않습니다. 이렇게 하면 내부적으로 숨겨진 섀도 캐스팅하기(Cast Hidden Shadow)를 false로, 오너에게 보이지 않음(Owner No See)을 true로 설정하는데, 이 설정은 버추얼 섀도 맵에서 1인칭 섀도가 올바르게 작동하는 데 필요합니다.
1인칭 섀도
1인칭 렌더링을 사용하여 플레이어 캐릭터를 구성할 때는 섀도잉에 대해 두 가지 부분을 고려해야 합니다.
라이트가 섀도를 캐스팅하도록 활성화합니다. 그래야 1인칭으로 설정된 프리미티브가 자신에게 섀도를 캐스팅할 수 있습니다.
씬 섀도와 리플렉션에 쓸, 1인칭 프리미티브의 월드 스페이스 표현인 컴포넌트를 구성합니다.
1인칭 셀프 섀도
1인칭 셀프 섀도잉(First Person Self-Shadowing)은 1인칭 시점으로 렌더링되는 프리미티브에 특화된 섀도잉 솔루션입니다. 이러한 1인칭 프리미티브는 자신에게 섀도를 캐스트할 수 있습니다. 이를테면, 무기가 무기 자체와 플레이어의 팔에 섀도를 캐스트하지만, 씬에는 섀도를 캐스트하지 않는 식입니다. 이렇게 하면 1인칭 카메라 시점으로 모핑되고 왜곡된 지오메트리가 씬 섀도에 표시되지 않습니다.
현재 1인칭 셀프 섀도잉은 스크린 스페이스 트레이싱으로 구현됩니다. 이 메서드는 상당히 저렴하지만, 화면의 섀도 캐스터로만 제한됩니다. 대부분의 1인칭 설정에서는 일반적으로 모든 관련 섀도 캐스터가 화면에 표시되므로 실제로는 문제가 되지 않습니다. 단일 레이어 뎁스 버퍼(레이가 지오메트리 뒤로 이동할 수 있음)와 같은 스크린 스페이스 렌더링의 다른 일반적인 제한 사항도 1인칭 렌더링에 적용된다는 점을 명심하세요.
아래는 1인칭 셀프 섀도를 활성화한 디렉셔널 라이트가 적용된 예시입니다.
1인칭 셀프 섀도는 현재(5.6 버전 기준) 콘솔 변수로 제어됩니다. 이는 라이트가 많은 맵에서 이펙트를 더 쉽게 제어하기 위한 것입니다. 이 이펙트는 라이트가 1인칭 지오메트리와 오버랩되는 경우에만 실제로 퍼포먼스 비용이 발생하므로, 오버랩되는 라이트가 거의 없거나 전혀 없다고 가정하면 모든 로컬 라이트에 이 이펙트를 활성화해도 괜찮습니다. 그러나 향후에 이 기능을 제어하는 방식이 변경될 수도 있습니다. 1인칭 셀프 섀도를 구성하는 절차는 다음과 같습니다.
r.FirstPerson.SelfShadow를1로 설정합니다. 그러면 다음 콘솔 변수에 의해 결정되는 대로 섀도 캐스팅 라이트에 이 기능(다이내믹 섀도 캐스팅하기)을 활성화합니다.r.FirstPerson.SelfShadow.LightTypes를 다음과 같이 설정합니다.0- 디렉셔널 라이트에서만 1인칭 셀프 섀도 활성화1- 로컬 라이트에서만 1인칭 셀프 섀도 활성화2- 로컬 및 디렉셔널 라이트 모두에서 1인칭 셀프 섀도 활성화
1인칭 셀프 섀도를 활성화하면 퍼포먼스에 약간의 영향을 미칩니다. 1인칭 셀프 섀도가 활성화되 라이트가 많이 오버랩된 경우 퍼포먼스가 저하될 수 있습니다. 1인칭 셀프 섀도를 활성화할 라이트 소스를 신중하게 선택하세요. 이 기능의 제한 사항에 대한 자세한 내용은 아래의 제한 사항 섹션을 참조하세요.
1인칭 월드 스페이스 표현 섀도
1인칭 프리미티브 타입(First Person Primitive Type) 프로퍼티가 일인칭(First Person)으로 설정된 1인칭 플레이어 캐릭터가 있는 경우, 이러한 컴포넌트의 섀도는 씬에 캐스팅되지 않습니다. 섀도를 캐스팅하려면 월드와 다른 플레이어에게 보이는 메시가 있어야 하며, 그 프리미티브 타입은 월드 스페이스 표현(World Space Representation)으로 설정해야 합니다. 설정이 완료되면 이 메시가 씬에 섀도를 캐스팅하고 하드웨어 레이 트레이싱된 리플렉션에서도 이 프리미티브가 보이게 됩니다.
1인칭 카메라 구성하기
1인칭 렌더링용 카메라 구성은 제작 중인 게임이나 경험의 타입에 따라 복잡성이 달라집니다. 아래의 기본 구성에 따라 진행하면서 1인칭 플레이어 캐릭터 제작을 시작할 수 있습니다. 고급 구성에서는 월드 또는 멀티플레이어 게임에서 다른 플레이어에게 보이는 캐릭터의 일부를 구성하는 방법에 대한 지침을 제공합니다.
예를 들어, 기본 구성에서는 1인칭 시점에서 볼 수 있는 컴포넌트로만 캐릭터를 구성합니다. 무기를 든 팔만 있는 스켈레탈 메시가 여기에 해당할 것입니다. 고급 구성에서는 1인칭 시점의에서 보이는 다리와 월드에 보이는 전체 캐릭터 메시를 추가하여 섀도를 캐스팅하고 리플렉션에 나타나도록 할 수 있습니다.
1인칭 카메라의 기본 설정
1인칭 카메라 설정을 생성하는 과정은 매우 간단합니다. 프리미티브에 1인칭으로 태그를 지정하고, 씬의 나머지 렌더링과 별도로 이러한 에셋에 커스텀 필드 오브 뷰와 스케일을 적용하도록 카메라를 구성할 수 있습니다.
이렇게 카메라를 구성하는 단계는 두 가지 카테고리로 나눌 수 있습니다.
컴포넌트 및 컴포넌트의 초기 세팅 구성하기.
프리미티브와 1인칭 게임의 모양에 맞게 이러한 컴포넌트의 프로퍼티 구성하기.
카메라 및 1인칭 컴포넌트 구성하기
카메라와 1인칭 컴포넌트를 구성하는 절차는 다음과 같습니다.
새 카메라(Camera) 액터를 생성합니다.
디테일(Details) 패널에서 +추가(+Add)를 클릭하고 원하는 프리미티브 컴포넌트(스태틱 메시, 스켈레탈 메시, 파티클 시스템 등)를 선택하여 이 액터에 추가합니다.
반드시 필요한 것은 아니지만, 카메라가 1인칭 프리미티브의 오너라는 것을 보장하기 때문에 그렇게 하는 것이 좋으며, 이는 오너에게 보이지 않음(Owner No See) 및 오너에게만 보임(Only Owner See) 플래그가 필요한 고급 구성에서 중요한 프로퍼티입니다.
프리미티브 컴포넌트를 선택한 상태에서 디테일 패널을 사용하여 렌더링(Rendering) > 고급(Advanced) 프로퍼티에서 1인칭 프리미티브 타입 프로퍼티를 찾습니다. 드롭다운 선택을 사용하여 1인칭(First Person)으로 설정합니다.
디테일 패널에서 카메라 컴포넌트(Camera Component)를 클릭하고 카메라 옵션(Camera Options) 프로퍼티 아래에서 1인칭 필드 오브 뷰 활성화(Enable First Person Field Of View) 및 1인칭 스케일 활성화(Enable First Person Scale) 옆의 체크박스에 체크합니다.
카메라 컴포넌트를 선택한 상태에서 에디터 뷰포트의 오른쪽 하단에 있는 카메라 프리뷰 창에서 결과를 확인할 수 있습니다.
1인칭 필드 오브 뷰 및 스케일 세팅 환경설정하기
카메라 컴포넌트 프로퍼티에서 1인칭 필드 오브 뷰 활성화 및 1인칭 스케일 활성화를 활성화한 경우, 카메라 세팅 카테고리에서 비슷한 이름의 세팅을 사용하여 조정할 수 있습니다.
이 세팅은 1인칭 프리미티브 타입이 First Person으로 설정된 모든 프리미티브에 대해 이 카메라에 적용됩니다. 그렇지 않으면 카메라는 월드 스페이스에서 이러한 프리미티브를 봅니다. 뷰포트의 카메라 프리뷰 창을 사용하여 변경사항을 검사합니다. 에디터 뷰포트에는 여전히 일인칭 프리미티브가 변경되지 않은 상태로 표시됩니다. 이는 뷰포트에 사용된 암시적 카메라에 일인칭 프로퍼티가 구성되어 있지 않기 때문입니다.
1인칭 필드 오브 뷰 값을 조정하여 이 1인칭 카메라가 렌더링하는 프리미티브의 수평 필드 오브 뷰를 도 단위로 변경할 수 있습니다. 필드 오브 뷰 슬라이더를 조정하면 카메라 프리뷰 창에서 프리미티브의 필드 오브 뷰가 바뀌는 것을 확인할 수 있습니다.
1인칭 스케일 값을 조정하여 '1인칭' 프리미티브를 카메라 쪽으로 축소시킬 수 있습니다. 이렇게 하면 이 1인칭 카메라에서 씬과 교차하지 않을 만큼 작아집니다. 카메라의 시점에서 볼 때 그 프리미티브가 비록 작아졌더라도 완전히 동일하게 보여야 합니다. 스케일 값이 너무 작으면 프리미티브가 사라집니다. 이는 프리미티브가 근거리 클리핑 면과 교차할 정도로 작게 스케일 조절되었기 때문입니다.
카메라와 프리미티브를 적절하게 설정하기 위해 스케일을 조정할 때는 씬과 클리핑이 발생하지 않을 만큼 작으면서도 근거리 클립 면으로 인해 사라지지는 않을 만큼 큰 스케일 값을 찾아야 합니다. 실제로는 1인칭 지오메트리를 플레이어 바운드에 포함될 만큼만 축소해도 충분할 경우가 많습니다.
콘텐츠 및 설정에 따라 에디터의 근거리 클립 면의 디폴트 값을 조정해야 할 수도 있습니다. 이 값은 프로젝트 세팅의 엔진(Engine) > 일반(General) 세팅에서 근거리 클립 면(Near Clip Plane)을 사용하여 조정할 수 있지만, 이렇게 하면 전체 프로젝트에 전역적으로 조정됩니다.
1인칭 카메라 및 컴포넌트의 고급 구성은 위에서 설명한 기본 설정을 사용하여 이 뷰를 설정하는 방법과 비슷합니다. 아래의 고급 구성을 사용할 때는 멀티플레이어 게임의 월드에서 캐릭터가 표현되는 방식, 또는 하드웨어 레이 트레이싱 기능을 사용하여 게임 씬에서 캐릭터가 표현되는 방식을 고려해야 합니다. 이를 통해 월드나 주변의 다른 플레이어에게 보이는 플레이어의 모습을 일관되게 유지할 수 있습니다. 또한, 이는 플레이어가 섀도와 리플렉션에서 캐릭터를 보는 방식에도 영향을 미칩니다.
고급 1인칭 워크플로를 사용할 때는 다음 사항을 고려하세요.
월드에 섀도를 캐스트하기 위한 월드 스페이스 표현 프리미티브를 추가합니다.
1인칭에서 캐릭터의 발이 플레이어가 바닥에 캐스트된 섀도와 연결되도록 하는 것.
하드웨어 레이 트레이싱된 리플렉션을 통해 자신을 볼 때의 플레이어 리플렉션.
이러한 모든 기능에는 월드 내 1인칭 프리미티브의 적절한 표현이 필요합니다. 이 표현은 멀티플레이어 게임에서 다른 플레이어가 이 플레이어를 볼 때 보게 될 모습입니다. 아니면, 플레이어 캐릭터의 3인칭 버전이라고 생각해도 됩니다. 언리얼 엔진에서는 이를 1인칭 월드 스페이스 표현(First Person World Space Representation)이라고 합니다. 이는 씬에 섀도를 캐스트하는 데 사용되며 레이 트레이싱 씬에서 플레이어가 표현되는 방식입니다.
1인칭 지오메트리
1인칭 지오메트리에는 하체와 다리에 대한 메시가 포함되어야 합니다. 이 메시는 완전히 월드 스페이스에 있을 수도 있고, 머티리얼의 보간 그레이디언트를 사용하여 발은 월드 스페이스에, 나머지 몸은 1인칭 스페이스에 있을 수도 있습니다(아래 머티리얼과의 통합 섹션 참조).
이 구성만으로도 플레이어가 1인칭 시점으로 아래를 내려다볼 때 자신의 다리를 볼 수 있어 현실감이 향상됩니다.
1인칭 컴포넌트 및 월드 스페이스 표현 구성
1인칭 카메라의 기본 구성에서 1인칭 카메라로만 보려는 컴포넌트는 1인칭 프리미티브 타입을 1인칭(First Person)으로 설정합니다. 월드 스페이스에서 하드웨어 레이 트레이스드 리플렉션 같은 기능이나 멀티플레이어 게임의 다른 플레이어에게도 표시하려는 지오메트리의 경우, 프리미티브 타입을 월드 스페이스 표현(World Space Representation)으로 설정합니다. 그러면 월드에 섀도를 캐스트하고 레이 트레이싱된 리플렉션에서 플레이어 표현을 가질 수 있습니다.
아래 씬에서 컴포넌트를 월드 스페이스 표현으로 설정할 때 바로 알아두어야 할 두 가지 사항이 있습니다.
이 컴포넌트는 더 이상 카메라 프리뷰 창에서 1인칭 카메라에 표시되지 않습니다.
이 컴포넌트는 월드에 섀도를 캐스트합니다.
내부적으로 이 월드 스페이스 표현 옵션은 '오너에게 보이지 않음(Owner No See)' 함수 기능을 사용하여 지오메트리를 카메라에서 숨기지만, 그러려면 프리미티브를 카메라가 소유해야 하는데, 이럴 경우 프리미티브를 카메라 액터의 자손 컴포넌트로 만들면 됩니다.
1인칭 메시 프리미티브와 월드 표현 메시 프리미티브로 캐릭터를 구성한 후에는, 1인칭 메시의 발이 월드 표현과 일렬로 정렬해야 합니다. 아래에서 1인칭 프리미티브만 보이게 설정한 예시와, 1인칭과 월드 표현 프리미티브를 결합하여 씬에 섀도를 캐스트하고 캐릭터의 발밑에 섀도를 '연결'하는 구성 예시를 볼 수 있습니다.
'1인칭'으로 설정된 1인칭 메시 프리미티브만 표시됩니다. 이 메시는 씬에 섀도를 캐스트하지 않습니다. | 1인칭과 월드 스페이스 표현으로 설정된 메시 프리미티브가 모두 함께 표시됩니다. 월드 표현 메시는 1인칭 카메라에는 보이지 않지만 월드에 섀도를 캐스트합니다. 이러한 메시는 1인칭 프리미티브 메시와 함께 정렬되어야 합니다. |
월드 또는 멀티플레이어 구성의 다른 플레이어에 대해 캐릭터의 메시와 컴포넌트는 월드 스페이스 표현으로 설정되어야 합니다.
아래 데모에서는 거울 같은 표면에 비친 1인칭 캐릭터를 바라보는 '월드' 카메라를 보여줍니다. 또한, 1인칭 카메라 뷰와 월드 표현 메시가 없음(None)이나 1인칭, 월드 스페이스 표현으로 설정되었을 때 월드 표현 메시가 어떻게 보이는지, 이것이 씬에 섀도를 캐스트하거나 1인칭 카메라로 렌더링하는 기능에 어떤 영향을 미치는지도 확인할 수 있습니다.
머티리얼과 통합
머티리얼 그래프에는 1인칭 렌더링 환경설정을 지원하는 다음과 같은 노드가 포함되어 있습니다.
First Person Output 노드
First Person Output 노드는 알파 값을 사용하여 월드 스페이스와 1인칭 스페이스 사이를 보간합니다. 이때 버텍스 단위로 0~1의 값을 사용합니다. 이 노드는 1인칭 지오메트리를 씬의 나머지에 연결해야 하는 경우 매우 유용합니다. 한 가지 예로 1인칭 캐릭터 지오메트리의 발 메시가 지면과 연결되는 것을 들 수 있습니다. 다리 길이를 따라 0.0(월드 스페이스)에서 1.0(1인칭 스페이스)까지 그레이디언트를 적용하면 됩니다(1인칭 프리미티브로 설정할 경우).
또는, 머티리얼에 First Person Output 노드를 추가하지 않고도 Set Material Attributes를 사용하여 동일한 프로퍼티를 설정할 수도 있습니다. 이 방식은 머티리얼 함수에서 값을 설정하려는 경우에 유용한데, 머티리얼 함수는 커스텀 출력 노드를 사용할 수 없기 때문입니다.
Transform Position 노드
Transform Position 노드는 임의의 위치를 1인칭 스페이스로 변환하는 기능을 지원합니다. 이 노드는 1인칭으로 렌더링되었을 때 화면에서 어떤 지점이 어디에서 끝날지 계산하는 데 유용합니다.
이 노드를 선택한 상태로 디테일 패널을 사용하여 다음과 같이 설정합니다.
소스(Source): 카메라 기준 월드 스페이스(Camera Relative World Space)
변환될 위치의 소스 포맷입니다.
대상(Destination): 1인칭 스페이스(카메라 기준 월드 스페이스)(First Person Space (Camera Relative World Space))
입력 표현식에 적용될 트랜스폼 타입입니다.
(선택 사항) 1인칭 보간 알파(First Person Interpolation Alpha): 0~1
이동된 월드 스페이스와 1인칭 스페이스 사이를 보간하며, 여기서 0은 월드 스페이스, 1은 1인칭 스페이스입니다. 이 노드는 포스트 프로세스 머티리얼을 포함한 모든 머티리얼에서 사용할 수 있으며, 임의의 위치를 1인칭으로 변환할 수 있으므로 First Person Output 노드의 값을 알 수 없습니다. 해당 값은 자신의 게임에 맞게 사용자가 제공하지만, 대부분의 경우 디폴트 값을 그대로 두는 것이 좋습니다.
이 노드를 사용하는 경우의 예로는 조준경 무기의 포스트 프로세스 머티리얼과 같이 1인칭에서 조준선의 위치를 계산할 때를 들 수 있습니다. 이 경우 총과 조준경의 포인트 등, 신경 써야 하는 모든 위치가 완전히 1인칭으로 표시된다고 가정할 수 있습니다.
Is First Person 노드
Is First Person 노드를 사용하면 렌더링 중인 현재 프리미티브의 1인칭 프리미티브 타입(First Person Primitive Type)이 일인칭(First Person)으로 설정되어 있는지 여부에 따라 머티리얼에 다른 이펙트를 적용할 수 있습니다.
아래 머티리얼 그래프는 월드 스페이스(빨간색) 및 1인칭 스페이스(녹색)에서 렌더링되는 지오메트리의 색을 설정하기 위해 IsFirstPerson 노드를 사용한 간단한 구성입니다.
아래 씬에서는 Is First Person 노드가 있는 이 머티리얼이 월드 스페이스 표현 및 1인칭 뷰에서 사용되는 라이플의 색을 구동하는 데 사용되는 방식을 확인할 수 있습니다. 1인칭 라이플 프리미티브(녹색)는 플레이어 카메라(오른쪽 하단)에 표시되며 카메라의 1인칭 파라미터로 렌더링됩니다. 월드 스페이스 표현 라이플(빨간색)은 플레이어 카메라에는 보이지 않지만, 지면에 섀도를 캐스트하는 데 사용되며 레이 트레이싱 월드의 하드웨어 레이 트레이싱 리플렉션과 섀도에는 보입니다.
View Property 노드
View Property 노드를 사용하면 현재 뷰의 1인칭 필드 오브 뷰(First Person Field of View) 및 1인칭 스케일(First Person Scale)을 쿼리할 수 있습니다.
1인칭 필드 오브 뷰는 수평 및 수직 1인칭 필드 오브 뷰 각도(라디안)을 반환합니다.
First Person Scale은 씬과 교차되는 것을 방지하기 위해 1인칭 프리미티브에 적용되는 스케일 조절 인수를 반환합니다.
노드를 선택한 상태에서 디테일 패널을 사용하여 뷰 프로퍼티(View Property) 드롭다운 목록에서 쿼리하려는 뷰를 선택합니다.
Scene Texture 노드
Scene Texture 노드는 GBuffer를 샘플링하여 주어진 픽셀이 불투명 머티리얼을 사용하는 1인칭 프리미티브에 의해 그려졌는지 여부를 알려줄 수 있습니다.
노드를 선택한 상태에서 디테일 패널을 사용하여 씬 텍스처 아이디(Scene Texture Id) 드롭다운 목록에서 씬 텍스처를 IsFirstPerson으로 설정합니다.
자세한 내용은 아래의 제한 사항 섹션을 참조하세요.
제한 사항 및 참고 사항
커스텀 1인칭 필드 오브 뷰(Field of View, FOV), 클리핑 방지 스케일 조절, 버텍스별 보간 제어 및 대부분의 머티리얼 그래프 통합 기능은 모든 플랫폼과 모든 환경설정에서 작동합니다.
1인칭 GBuffer 비트
일부 고급 1인칭 렌더링 기능의 경우 1인칭 픽셀을 GBuffer에 비트로 표시해야 합니다.
첫 번째 문제는 이러한 기능이 모바일 렌더러 또는 포워드 렌더링에서 작동하지 않는다는 것입니다.
두 번째 문제는 프로젝트 세팅에서 스태틱 라이팅 허용(Allow Static Lighting)을 비활성화해야 한다는 것입니다. 프로젝트의 스태틱 라이팅을 비활성화하면 일부 GBuffer 비트를 확보하여 1인칭 렌더링에서 사용할 수 있습니다.
향후 변경될 수는 있지만, 5.6 버전에서는 절충이 필요한 사항입니다. 아니면 매우 숙련된 고급 사용자라면 언리얼 엔진 버전을 로컬에서 변경하는 대신 프로젝트에 필요하지 않은 GBuffer의 다른 기능을 희생할 수도 있습니다.
영향을 받는 기능은 다음과 같습니다.
1인칭 셀프 섀도
월드 스페이스 표현 프리미티브를 사용하여 씬에 섀도를 캐스트하는 기능.
씬에 반영된 월드 스페이스 표현 프리미티브를 확인하는 기능.
Scene Texture 노드를 사용하여 주어진 픽셀이 1인칭인지 여부를 알려주는 기능.
이러한 모든 기능에는 1인칭 GBuffer 비트를 사용할 수 없는 경우를 대비한 적절한 예비 기능이 있는데, 섀도와 리플렉션은 단순히 나타나지 않게 되며 씬 텍스처 노드는 항상 0.0(false)을 반환하는 것입니다.
일반 기능 지원
버추얼 섀도 맵(또는 레이 트레이스 섀도)이 없으면 지면에 1인칭 섀도 또한 나타나지 않습니다.
그룸 및 스트랜드 기반 헤어는 현재 지원되지 않습니다.
추가 리소스
일인칭 템플릿
1인칭 템플릿은 네이티브 1인칭 렌더링을 사용하도록 구성되어 있습니다. 1인칭 템플릿을 생성할 때 1인칭 슈팅 게임 베리언트를 살펴보고 이 기능이 실제로 작동하는 모습을 확인할 수 있습니다.
이 템플릿에 대한 자세한 내용은 일인칭 템플릿을 참조하세요.