데칼은 색상 텍스처, 법선 맵 및 방사 색상 효과를 수준의 메시에 투영합니다.
데칼을 사용해 다양한 효과를 얻을 수 있습니다. 예:
위의 이미지는 벽돌 텍스처를 위한 법선 맵, 두 가지 반투명 색상 채우기, 알파 투명도가 적용된 색상 텍스처 및 색상 및 일반 정보를 추가하는 총알 자국과 같은 여러 데칼을 통해 수준에서 향상된 흰색 벽을 보여줍니다.
데칼은 일반적으로 핵심 리소스 폴더(core/stingray_renderer/helper_units/decals/decal_box)에서 Stingray와 함께 제공되는 데칼 프로젝터 유닛을 사용해 투영됩니다.
수준에서 새 데칼 프로젝터를 만드는 방법:
Create 패널을 엽니다.
Rendering 범주에서 Decal Projector 아이콘을 선택해 Place 도구를 활성화합니다.
수준에서 위치를 클릭하여 새 프로젝터 볼륨을 배치합니다. Place 도구가 활성 상태이면 필요한 볼륨을 얼마든지 추가할 수 있습니다.
완료하면 Decal Projector 아이콘을 다시 클릭하거나 다른 뷰포트 상호작용 도구로 전환하십시오.
각각의 새 데칼 프로젝터는 Stingray 핵심 리소스에서 제공되는 기본 재질을 사용합니다. 이 자리 표시자는 누락된 텍스처를 위한 디버그 텍스처(노란색 배경의 물음표)를 투영합니다. 데칼을 위한 새 재질을 생성하려는 경우 고유한 텍스처를 투영하도록 설정할 수 있습니다.
Asset Browser에서 새 재질을 저장하려는 폴더로 이동합니다.
Asset Browser에서 폴더를 마우스 오른쪽 버튼으로 클릭합니다. 상황별 메뉴에서 Create > Material (Empty) 또는 Create > Material (Standard)을 선택합니다.
새 재질의 이름을 입력하고 OK를 클릭합니다.
Asset Browser에서 재질을 선택하고 Property Editor를 열어 특성을 표시합니다.
Parent Material 그룹에서 기본 데칼 재질 core/stingray_renderer/helper_units/decals/decal을 가리키도록 Name 필드를 설정합니다.
그러면 이 재질이 적용되는 모든 메시가 일반적으로 조명이 비춰진 메시 대신 데칼 프로젝터로 음영 처리되도록 재질이 설정됩니다.
상위 재질을 설정하면 Property Editor에 새 Color Map 특성이 표시됩니다. 이 설정을 사용하면 적용하려는 데칼 이미지로 기본 물음표 색상 텍스처를 바꿀 수 있습니다. 투영된 텍스처의 색상 및 알파 값은 여기서 설정한 텍스처에서 가져옵니다.
법선 맵 또는 방사 텍스처를 투영하려는 경우 재질의 셰이더 그래프를 수정해야 합니다. 아래를 참조하십시오.
수준에서 프로젝터를 선택하고 Property Editor를 열어 특성을 표시합니다.
Shared Materials 그룹에서 새 재질을 가리키도록 프로젝터의 decal 재질 슬롯을 설정합니다.
프로젝터는 데칼을 프로젝터의 볼륨과 교차하는 메시에만 적용합니다. 투영하려는 메시와 교차하도록 프로젝터 유닛을 이동하고 배율을 조정하여 어떤 메시에 투영이 적용될지 제어할 수 있습니다.
텍스처는 항상 텍스처의 상단이 프로젝터 상자의 위쪽 로컬 축(파란색 화살표)에 정렬된 상태로 프로젝터 상자의 앞쪽 로컬 축(아래 기즈모의 녹색 화살표)을 따라 직각으로 투영됩니다. 앞쪽 축 주위로 프로젝터를 회전하여 투영을 옆으로 또는 거꾸로 회전할 수 있습니다.
또한 텍스처는 앞쪽 축의 반대 방향을 따라 투영되지만 수평으로 반전됩니다. 교차하는 메시 쪽 반대 방향으로 향하도록 프로젝터를 돌려 텍스처를 반전할 수 있습니다.
투영된 텍스처는 오른쪽 및 위쪽 로컬 축을 따라 프로젝터 유닛의 치수에 맞춰 배율이 조정됩니다. 이러한 축을 따라 프로젝터 상자의 배율을 조작하여 투영되는 텍스처의 너비와 높이 비율을 변경할 수 있습니다.
프로젝터를 회전해 프로젝터와 프로젝터가 투영되는 메시 사이의 입사각을 변경하면 투영의 "왜곡"을 제어할 수 있습니다.
법선 텍스처 또는 방사 텍스처를 투영하거나 색상 텍스처 입력이 해석되는 방식을 변경하려는 경우 재질의 셰이더 그래프를 수정할 수 있습니다.
Asset Browser에서 재질을 선택하고 Property Editor를 열어 특성을 표시합니다.
Property Editor에서 Make Unique 버튼을 클릭합니다. 그러면 상위 재질에서 재질을 분리해 편집할 수 있습니다.
Open Shader Graph 버튼을 클릭하거나 Asset Browser에서 재질을 클릭합니다.
그러면 재질의 그래프가 로드된 상태로 Shader Graph Editor가 열립니다. 필요에 따라 재질 노드를 다시 와이어링할 수 있습니다. 예를 들어, 다음 그래프는 Property Editor를 통해 재질의 법선 맵과 맵 불투명도를 설정할 수 있는 기능을 추가합니다. 평평한 영역이 다른 데칼에서 추가한 표면 법선과 충돌하지 않도록 Decal Base 노드의 Mask 입력으로 법선 맵의 알파 채널이 전달됩니다.
셰이더 그래프가 Decal Base 출력 노드를 사용하는 재질을 사용하도록 유닛을 설정하여 유닛을 데칼 프로젝터로 만들 수 있습니다. Create 패널에서 배치한 핵심 리소스의 데칼 프로젝터 유닛은 단순히 데칼 재질을 사용하기 위한 입방체 메시 사전 설정입니다. 그 외에 특별한 점은 없습니다.
일반적으로 여러 위치에서 동일한 텍스처를 투영해야 하는 경우 기본 유닛을 사용하는 대신 사용자 정의 데칼 도우미 유닛을 설정하는 것이 더 편할 수 있습니다.
Unit Editor에서 기본 데칼 상자를 열고 다른 리소스 이름으로 다시 저장하면 사용자 정의 데칼 도우미 유닛을 쉽게 설정할 수 있습니다. 투영하려는 재질을 사용하도록 유닛을 사전 설정할 수 있으므로 수준에서 유닛을 생성할 때 이와 같이 설정하기 위해 미세 조정 작업을 많이 수행할 필요가 없습니다.
데칼 프로젝터는 기본적으로 유닛일 뿐이므로 다른 종류의 유닛을 생성 및 생성 취소하는 것과 완전히 동일한 방식으로 흐름 또는 Lua에서 게임 내 런타임 시 데칼 프로젝터를 동적으로 생성 및 생성 취소할 수 있습니다. 원하는 메시에 투영되도록 유닛을 배치하고 크기를 조정해야 하고 올바른 재질을 투영하도록 유닛을 설정해야 합니다.
예:
-- spawn the unit local my_projector = stingray.World.spawn_unit(SimpleProject.world, "core/stingray_renderer/helper_units/decals/decal_box") -- set a new material for the decal slot stingray.Unit.set_material(my_projector, "decal", "content/materials/my_texture") -- move, scale, resize stingray.Unit.set_local_position(my_projector, 1, wanted_position) stingray.Unit.set_local_rotation(my_projector, 1, wanted_rotation) stingray.Unit.set_local_scale(my_projector, 1, wanted scale) ... -- unspawn the unit stingray.World.destroy_unit(SimpleProject.world, my_projector)