블루프린트와 렌더 타깃을 사용하여 텍스처 만들기

Windows
MacOS
Linux

Creating_Textures_Header_00.png

언리얼 엔진 4 (UE4) 프로젝트에 쓸 텍스처를 만들 때, 일반적으로 Adobe Photoshop 이나 GIMP 같은 외부 2D 프로그램을 사용해야 할 것입니다. 이런 방식의 콘텐츠 저작이 뛰어난 결과물을 내기에는 좋지만, UE4 안에서 이와 같은 콘텐츠를 만들 수 있다면 도움이 될 수 있는 경우도 있습니다. 여기서는 블루프린트와 렌더 타깃을 사용하여 UE4 프로젝트에 사용할 텍스처를 만드는 방법을 살펴보겠습니다. 먼저 UE4 프로젝트에서 새 기본 레벨을 만든 뒤, 사용할 렌더 타깃을 생성하고 구성하는 것입니다.

1 - 프로젝트 구성

여기서는 프로젝트에서 사용할 레벨을 새로 만드는 법을 알아보겠습니다.

새 기본 레벨 생성

텍스처 생성 블루프린트를 넣을 기본 레벨 을 새로 만들어 두면, 다른 것이 텍스처 생성 프로세스에 영향을 주지 않도록 하여 관리가 쉬워집니다. UE4 에서 기본 레벨을 새로 생성하는 방법은 다음과 같습니다:

  1. 메인 툴바 에서 파일 > 새 레벨 로 이동합니다.

    New_Level_01.png

  2. 표시되는 새 레벨 창에서, 기본 레벨 옵션을 선택합니다.

    New_Level_02.png

  3. 기본 레벨 옵션을 클릭하고나면, UE4 는 아무것도 들어있지 않은 새 레벨을 로드합니다. 그 작업이 완료되면, 메인 툴바의 저장 버튼을 클릭하여 레벨을 저장하고, 이름을 BlueprintTextureCreation 라 합니다.

    New_Level_03.png

레벨을 생성하고 저장했으니, 다음에는 필수 애셋 생성 및 구성에 대해 알아보겠습니다.

2 - 필수 애셋 생성 & 구성

여기서는 블루프린트와 렌더 타깃을 사용하여 텍스처를 생성하는 데 필요한 애셋을 생성하고 구성하는 방법을 알아보겠습니다.

머티리얼 생성 & 구성

  1. 콘텐츠 브라우저에 우클릭한 뒤 기본 애셋 생성 부분에서 머티리얼 옵션을 선택하여 새 머티리얼을 만듭니다.

    Create_RTT_Material_01.jpg

  2. 머티리얼 이름을 RT_Material_00 로 하고 머티리얼에 더블클릭하여 머티리얼 에디터 에서 엽니다.

    Create_RTT_Material_02.jpg

  3. 머티리얼 에디터에서 RT_Material_00 을 연 채로, 다음 머티리얼 표현식 노드를 머티리얼 그래프 에 추가합니다.

    • Texture Coordinate

    • Constant

    • Append

    • Noise
      Create_RTT_Material_03.jpg

  4. 필수 머티리얼 표현식 노드를 머티리얼 그래프에 추가했으면, 아래 그림처럼 노드를 연결하고, 적용 버튼을 눌러 머티리얼 컴파일을 완료합니다.
    Create_RTT_Material_05.jpg

3 - 렌더 타깃 생성 & 구성

  1. UE4 에디터를 열고 콘텐츠 브라우저 안에 우클릭합니다. 표시되는 컨텍스트 메뉴에서 고급 애셋 생성 섹션을 찾습니다.

    Create_RTT_01.jpg

  2. 고급 애셋 생성 메뉴에서 머티리얼 & 텍스처 섹션에 커서를 올리고 표시되는 애셋 목록에서 렌더 타깃 옵션을 선택합니다.

    Create_RTT_02.jpg

  3. 새로 생성되는 렌더 타깃 이름을 RT_00 라 합니다. 콘텐츠 브라우저가 다음 그림과 같아 보일 것입니다:

    Create_RTT_03.jpg

4 - 블루프린트 구성

렌더 타깃과 필수 머티리얼 구성을 마치고 사용할 준비가 되었으면, 모든 것을 블루프린트에 모을 차례입니다. 여기서는 하이트 필드 페인터 블루프린트의 다양한 부분을 구성해 보도록 하겠습니다.

블루프린트 생성 & 구성

렌더 타깃과 머티리얼 작업이 가능한 블루프린트를 생성하는 방법은 다음과 같습니다.

  1. 콘텐츠 브라우저 의 우클릭 컨텍스트 메뉴에서 기본 애셋 생성 부분의 블루프린트 옵션을 선택하여 블루프린트를 새로 만듭니다.

    Create_Blueprint_01.png

  2. 부모 클래스 선택 창에서 Actor 클래스를 선택한 뒤 블루프린트 이름을 BP_Texture_Creator 로 설정합니다.

    Create_Blueprint_02.png

  3. BP_Texture_Creator 블루프린트를 더블클릭하고 열리면, 이벤트 그래프 탭을 클릭하여 이벤트 그래프를 엽니다.

    Create_Blueprint_03.png

  4. 이벤트 그래프에 다음 블루프린트 노드를 추가합니다:

    • Custom Event

    • Draw Material to Render Target

    Create_Blueprint_04.png

  5. Custom Event 노드를 선택하고 F2 키를 눌러 Custom Event 노드 이름을 Bake 로 변경합니다. 그런 다음 그 출력을 Draw Material to Render Target 노드 입력에 연결합니다.

    Create_Blueprint_05.png

  6. 다음 Draw Material to Render Target 노드에서 이전에 생성한 렌더 타깃을 Texture Render Target 슬롯에 로드합니다. Select Asset (애셋 선택) 옆의 작은 흰색 삼각형을 클릭한 뒤 목록에서 RT_00 렌더 타깃을 찾아 클릭하여 선택하면 됩니다. 완료되면 Material 섹션에 대해서도 RT_Material_00 를 선택하여 같은 작업을 해 줍니다.

    Create_Blueprint_06.png

  7. 이제 컨스트럭션 스크립트 탭을 클릭하고 컨스트럭션 스크립트 노드를 끌어 놓아 Executable actions (실행가능 액션) 메뉴를 띄웁니다.

    Create_Blueprint_09.png

    참고로 DrawMaterialToRenderTarget 는 UE4 에디터 외부의 컨스트럭션 스크립트에서는 작동하지 않습니다. 즉 실행시간에 이 작업을 해도 작동하지 않는다는 뜻입니다.

  8. 이 메뉴에서 검색창에 Bake 라 입력하여 기존 생성한 Bake 이벤트를 찾은 후, 클릭하여 그래프에 추가한 뒤, 컨스트럭션 스크립트의 출력을 Bake 노드의 입력에 연결합니다.

    Create_Blueprint_07.png

  9. 마지막으로 컴파일, 저장 버튼을 눌러 블루프린트를 컴파일하고 저장합니다.

    Create_Blueprint_08.png

블루프린트 구성이 완료되었으니, 다음 단계에서는 텍스처를 캡처하고 저장하여 머티리얼에서 무엇이 생성되었는지 표시하도록 하는 방법을 살펴보겠습니다.

5 - 텍스처 생성 & 최종 결과

여기서는 지금까지의 모든 부속을 한 데 모아 생성된 머티리얼에 따라 텍스처 애셋을 생성하고 저장하는 법을 살펴보겠습니다.

텍스처 생성

필수 부속에 대한 생성 및 구성 작업이 완료되었으니, 만들어진 텍스처를 생성하고 저장하는 방법을 살펴보겠습니다.

  1. 콘텐츠 브라우저에서 BP_Texture_Creator 블루프린트를 찾아, 레벨에 끌어 놓습니다.

    Create_Textures_01.png

  2. 콘텐츠 브라우저에서 RT_Material_00 머티리얼을 찾아 더블클릭하여 엽니다. 열리면 Noise 머티리얼 표현식 노드를 선택합니다.

    Create_Textures_02.png

  3. Noise 머티리얼 표현식을 선택한 채 디테일 패널로 이동하여 다음 각 파라미터에 다음과 같은 값을 입력합니다. 완료되면 적용 버튼을 눌러 머티리얼을 컴파일합니다.

    Create_Textures_03.png

    • Scale: 2.0

    • Levels: 8.0

    • Output Min: -0.01

    • Level Scale: 3.0

  1. 레벨에 배치된 BP_Texture_Creator 블루프린트를 선택하고 아무 방향으로나 살짝 움직여 콘텐츠 브라우저에 있는 RT_00 렌더 타깃을 업데이트합니다. 이 작업을 하면, RT_00 렌더 타깃이 업데이트되어 RT_Material_00 에 정확히 무엇이 있는지 표시됩니다.

    Create_Textures_04.png

    머티리얼에 가해진 변경사항을 확인하거나 업데이트할 필요가 있을 때마다, 블루프린트를 살짝 움직여 줘야 합니다.

  1. 콘텐츠 브라우저에서 RT_00 렌더 타깃에 우클릭하고 메뉴의 렌더 타깃 액션 부분에서 Create Static Texture (스태틱 텍스처 생성) 옵션을 선택하여 RT_Material_00 출력을 표시하는 텍스처 애셋을 새로 만듭니다.

    Create_Textures_05.png

최종 결과

완료되면 RT_Material_00 콘텐츠를 표시하는 2D 텍스처가 새로 생길 것입니다. 이제 이것을 원하는 다른 머티리얼 어디서나 사용할 수 있습니다.

Create_Textures_06.png

변경사항을 확인하기 위해서는 머티리얼을 컴파일하고 블루프린트를 살짝 움직여 줘야 변경사항이 렌더 타깃에 전파된다는 점, 기억해 주시기 바랍니다.

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

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

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

네이버 카페
공식 포럼