Choose your operating system:
Windows
macOS
Linux
언리얼 엔진 4 (UE4) 프로젝트에 쓸 텍스처를 만들 때, 일반적으로 Adobe Photoshop 이나 GIMP 같은 외부 2D 프로그램을 사용해야 할 것입니다. 이런 방식의 콘텐츠 저작이 뛰어난 결과물을 내기에는 좋지만, UE4 안에서 이와 같은 콘텐츠를 만들 수 있다면 도움이 될 수 있는 경우도 있습니다. 여기서는 블루프린트와 렌더 타깃을 사용하여 UE4 프로젝트에 사용할 텍스처를 만드는 방법을 살펴보겠습니다. 먼저 UE4 프로젝트에서 새 기본 레벨을 만든 뒤, 사용할 렌더 타깃을 생성하고 구성하는 것입니다.
1 - 프로젝트 구성
여기서는 프로젝트에서 사용할 레벨을 새로 만드는 법을 알아보겠습니다.
새 기본 레벨 생성
텍스처 생성 블루프린트를 넣을 기본 레벨 을 새로 만들어 두면, 다른 것이 텍스처 생성 프로세스에 영향을 주지 않도록 하여 관리가 쉬워집니다. UE4 에서 기본 레벨을 새로 생성하는 방법은 다음과 같습니다:
-
메인 툴바 에서 파일 > 새 레벨 로 이동합니다.
-
표시되는 새 레벨 창에서, 기본 레벨 옵션을 선택합니다.
-
기본 레벨 옵션을 클릭하고나면, UE4 는 아무것도 들어있지 않은 새 레벨을 로드합니다. 그 작업이 완료되면, 메인 툴바의 저장 버튼을 클릭하여 레벨을 저장하고, 이름을
BlueprintTextureCreation
라 합니다.
레벨을 생성하고 저장했으니, 다음에는 필수 애셋 생성 및 구성에 대해 알아보겠습니다.
2 - 필수 애셋 생성 & 구성
여기서는 블루프린트와 렌더 타깃을 사용하여 텍스처를 생성하는 데 필요한 애셋을 생성하고 구성하는 방법을 알아보겠습니다.
머티리얼 생성 & 구성
-
콘텐츠 브라우저에 우클릭한 뒤 기본 애셋 생성 부분에서 머티리얼 옵션을 선택하여 새 머티리얼을 만듭니다.
-
머티리얼 이름을 RT_Material_00 로 하고 머티리얼에 더블클릭하여 머티리얼 에디터 에서 엽니다.
-
머티리얼 에디터에서 RT_Material_00 을 연 채로, 다음 머티리얼 표현식 노드를 머티리얼 그래프 에 추가합니다.
-
Texture Coordinate
-
Constant
-
Append
-
Noise
-
-
필수 머티리얼 표현식 노드를 머티리얼 그래프에 추가했으면, 아래 그림처럼 노드를 연결하고, 적용 버튼을 눌러 머티리얼 컴파일을 완료합니다.
3 - 렌더 타깃 생성 & 구성
-
UE4 에디터를 열고 콘텐츠 브라우저 안에 우클릭합니다. 표시되는 컨텍스트 메뉴에서 고급 애셋 생성 섹션을 찾습니다.
-
고급 애셋 생성 메뉴에서 머티리얼 & 텍스처 섹션에 커서를 올리고 표시되는 애셋 목록에서 렌더 타깃 옵션을 선택합니다.
-
새로 생성되는 렌더 타깃 이름을 RT_00 라 합니다. 콘텐츠 브라우저가 다음 그림과 같아 보일 것입니다:
4 - 블루프린트 구성
렌더 타깃과 필수 머티리얼 구성을 마치고 사용할 준비가 되었으면, 모든 것을 블루프린트에 모을 차례입니다. 여기서는 하이트 필드 페인터 블루프린트의 다양한 부분을 구성해 보도록 하겠습니다.
블루프린트 생성 & 구성
렌더 타깃과 머티리얼 작업이 가능한 블루프린트를 생성하는 방법은 다음과 같습니다.
-
콘텐츠 브라우저 의 우클릭 컨텍스트 메뉴에서 기본 애셋 생성 부분의 블루프린트 옵션을 선택하여 블루프린트를 새로 만듭니다.
-
부모 클래스 선택 창에서 Actor 클래스를 선택한 뒤 블루프린트 이름을
BP_Texture_Creator
로 설정합니다. -
BP_Texture_Creator
블루프린트를 더블클릭하고 열리면, 이벤트 그래프 탭을 클릭하여 이벤트 그래프를 엽니다. -
이벤트 그래프에 다음 블루프린트 노드를 추가합니다:
-
Custom Event
-
Draw Material to Render Target
-
-
Custom Event 노드를 선택하고 F2 키를 눌러 Custom Event 노드 이름을
Bake
로 변경합니다. 그런 다음 그 출력을 Draw Material to Render Target 노드 입력에 연결합니다. -
다음 Draw Material to Render Target 노드에서 이전에 생성한 렌더 타깃을 Texture Render Target 슬롯에 로드합니다. Select Asset (애셋 선택) 옆의 작은 흰색 삼각형을 클릭한 뒤 목록에서
RT_00
렌더 타깃을 찾아 클릭하여 선택하면 됩니다. 완료되면 Material 섹션에 대해서도RT_Material_00
를 선택하여 같은 작업을 해 줍니다. -
이제 컨스트럭션 스크립트 탭을 클릭하고 컨스트럭션 스크립트 노드를 끌어 놓아 Executable actions (실행가능 액션) 메뉴를 띄웁니다.
참고로 DrawMaterialToRenderTarget 는 UE4 에디터 외부의 컨스트럭션 스크립트에서는 작동하지 않습니다. 즉 실행시간에 이 작업을 해도 작동하지 않는다는 뜻입니다.
-
이 메뉴에서 검색창에 Bake 라 입력하여 기존 생성한 Bake 이벤트를 찾은 후, 클릭하여 그래프에 추가한 뒤, 컨스트럭션 스크립트의 출력을 Bake 노드의 입력에 연결합니다.
-
마지막으로 컴파일 , 저장 버튼을 눌러 블루프린트를 컴파일하고 저장합니다.
블루프린트 구성이 완료되었으니, 다음 단계에서는 텍스처를 캡처하고 저장하여 머티리얼에서 무엇이 생성되었는지 표시하도록 하는 방법을 살펴보겠습니다.
5 - 텍스처 생성 & 최종 결과
여기서는 지금까지의 모든 부속을 한 데 모아 생성된 머티리얼에 따라 텍스처 애셋을 생성하고 저장하는 법을 살펴보겠습니다.
텍스처 생성
필수 부속에 대한 생성 및 구성 작업이 완료되었으니, 만들어진 텍스처를 생성하고 저장하는 방법을 살펴보겠습니다.
-
콘텐츠 브라우저에서
BP_Texture_Creator
블루프린트를 찾아, 레벨에 끌어 놓습니다. -
콘텐츠 브라우저에서
RT_Material_00
머티리얼을 찾아 더블클릭하여 엽니다. 열리면 Noise 머티리얼 표현식 노드를 선택합니다. -
Noise 머티리얼 표현식을 선택한 채 디테일 패널로 이동하여 다음 각 파라미터에 다음과 같은 값을 입력합니다. 완료되면 적용 버튼을 눌러 머티리얼을 컴파일합니다.
-
Scale: 2.0
-
Levels: 8.0
-
Output Min: -0.01
-
Level Scale: 3.0
-
-
레벨에 배치된
BP_Texture_Creator
블루프린트를 선택하고 아무 방향으로나 살짝 움직여 콘텐츠 브라우저에 있는RT_00
렌더 타깃을 업데이트합니다. 이 작업을 하면,RT_00
렌더 타깃이 업데이트되어RT_Material_00
에 정확히 무엇이 있는지 표시됩니다.머티리얼에 가해진 변경사항을 확인하거나 업데이트할 필요가 있을 때마다, 블루프린트를 살짝 움직여 줘야 합니다.
-
콘텐츠 브라우저에서
RT_00
렌더 타깃에 우클릭하고 메뉴의 렌더 타깃 액션 부분에서 Create Static Texture (스태틱 텍스처 생성) 옵션을 선택하여RT_Material_00
출력을 표시하는 텍스처 애셋을 새로 만듭니다.
최종 결과
완료되면
RT_Material_00
콘텐츠를 표시하는 2D 텍스처가 새로 생길 것입니다. 이제 이것을 원하는 다른 머티리얼 어디서나 사용할 수 있습니다.
변경사항을 확인하기 위해서는 머티리얼을 컴파일하고 블루프린트를 살짝 움직여 줘야 변경사항이 렌더 타깃에 전파된다는 점, 기억해 주시기 바랍니다.