이번 튜토리얼에서는 Adobe Stock에서 다운로드한 3D 모델을 Blender에 가져오고 설정하는 방법을 알아보겠습니다.
영상 자막 텍스트
안녕하세요! 이번 튜토리얼에서는 Adobe Stock에서 다운로드한 3D 모델을 Blender에 가져오고 설정하는 방법을 알아보겠습니다.
Adobe Stock 웹사이트에는 수천 개의 3D 모델이 있습니다. 각 3D 모델은 OBJ 형식으로 제공되며, PBR Textures가 함께 포함되어 있어서 Unity, Unreal, Blender, 3D Studio MAX 등 거의 모든 3D 그래픽 소프트웨어와 게임 엔진에서 사용할 수 있습니다.
이 3D 모델을 선택한 이유는, OBJ 파일을 씬에 가져오고 PBR Textures를 하위 머티리얼에 빠르게 연결하는 방법뿐만 아니라, 다양한 파트를 분리하고 Origin을 설정하고 부모 관계를 설정하여 나중에 필요할 경우 수정할 수 있는 방법도 함께 살펴볼 수 있기 때문입니다.

OBJ 파일은 Blender의 모든 버전에서 씬으로 가져올 수 있습니다. 여기서 사용하는 머티리얼은 주로 Cycles 렌더링 엔진에 사용되는 Principled BSDF입니다.
사실 여기서 보여드릴 작업들은 Adobe Stock에서 가져온 3D 모델뿐 아니라, 어떤 출처의 모델이든지 활용할 수 있는 유용한 방법들입니다.
이번 튜토리얼에서는 다음과 같은 10가지 작업을 다룹니다.
Adobe Stock에서 다운로드한 OBJ 파일을 Blender 씬에 가져오는 방법.
가져온 모델의 회전과 스케일 변환을 적용하는 방법.
Node Wrangler 애드온을 사용하여 PBR Textures를 빠르게 설정하는 방법.
망원경 렌즈에 투명한 머티리얼을 설정하는 방법.
Normals이 올바르게 설정되어 있는지 확인하는 방법.
불필요할 경우 가져온 모델에서 Sharp 마크를 제거하는 방법.
원래의 UV seams를 복원하는 방법.
사용된 서브 머티리얼을 기준으로 지오메트리의 다양한 파트를 분리하는 방법.
분리된 모든 파트에 올바른 Origin과 회전을 설정하는 방법.
다양한 오브젝트 간에 부모-자식 관계를 설정하는 방법.
Blender에 OBJ 파일을 가져오기 전에, 먼저 Adobe Stock에서 다운로드한 ZIP 파일의 내용을 살펴보겠습니다. ZIP 패키지에 포함된 파일들을 새 폴더에 압축 해제합니다.

확장자가 OBJ, MTL, MDL인 세 개의 파일이 있을 것입니다. OBJ 파일은 지오메트리를 포함하고 있으며, MTL과 MDL 파일은 머티리얼과 그것의 지오메트리상 매핑을 정의하는 데 사용됩니다.
모델에 사용할 Texture 이미지들이 포함된 폴더도 함께 있을 것입니다.

모델의 각 서브 머티리얼마다 투명도가 적용된 PNG 형식의 Texture 이미지가 최소 6개 포함되어 있습니다. 투명한 서브 머티리얼의 경우, Adobe는 Translucency 채널용 추가 텍스처도 제공합니다.
그러나 이번 사례에서는 Glow, Opacity, Translucency 채널용 Texture는 필요하지 않습니다. 빛을 내는 머티리얼이나 반투명 머티리얼이 없기 때문에, 나중에 보게 될 Cycles의 Principled BSDF 머티리얼에서는 텍스처 없이 투명도를 처리할 수 있습니다.
따라서 불필요한 파일은 폴더에서 삭제해도 됩니다.
최종적으로는 각 서브 머티리얼마다 네 개의 Texture만 남게 됩니다. 이후에 각 서브 머티리얼의 네 개 Texture를 Principled BSDF의 주요 네 채널, 즉 Base Color, Metallic, Normal, Roughness에 어떻게 연결하는지 살펴보겠습니다.

좋아요, 이제 본격적으로 시작해 보겠습니다!
OBJ 파일을 가져오는 방법을 살펴보겠습니다.
Blender 씬에 OBJ 파일을 가져오려면 File 메뉴에서 Import, 그리고 OBJ를 선택한 후 디스크에서 파일을 선택하면 됩니다.

Blender는 자동으로 MTL 파일을 사용합니다. 이 파일은 서브 머티리얼과 그것들이 오브젝트의 각 파트에 어떻게 연결되어 있는지를 정의합니다. 현재 이 오브젝트는 하나의 메시로 되어 있습니다.

모델의 각 파트는 서로 다른 색상을 가지고 있을 수 있지만, 이 색상들은 모두 적절한 Texture로 교체할 것입니다.
먼저 이 3D 모델의 이름을 Telescope으로 바꿔줍니다.
이제 모델에 Rotation과 Scale 변환을 적용하는 방법을 살펴보겠습니다.
그 전에 먼저 씬 안에서 모델의 크기를 확인하여, 다른 요소들과의 크기 비율이 적절한지 확인합니다. 만약 잘 맞지 않는다면 모델의 크기를 조정해 줍니다.
그런 다음, 새로 가져온 3D 모델의 Rotation과 Scale 속성을 확인합니다. Rotation 값은 모두 0, Scale 값은 모두 1로 설정되어 있어야 합니다.

값이 일치하지 않는 경우, CTRL A 키를 눌러 나타나는 Apply 메뉴에서 Rotation And Scale 옵션을 선택하여 회전과 스케일 변환을 적용합니다.

Adobe Stock에서 다운로드한 대부분의 모델은 적어도 초기 Rotation을 리셋할 필요가 있으므로, 이 작업은 거의 항상 필요합니다.
이제 Node Wrangler 애드온을 사용하여 텍스처를 빠르게 설정하는 방법을 살펴보겠습니다.
Shading 워크스페이스로 전환하여 모델에 포함된 서브 머티리얼 목록을 보고, 동시에 각 서브 머티리얼의 노드 구조도 확인합니다.
처음에는 각 서브 머티리얼에 Principled BSDF 노드 하나만 Material Output에 연결되어 있어야 합니다. 다른 노드가 있다면 삭제합니다.

각 서브 머티리얼에 네 개의 Texture 이미지를 빠르게 불러오고 연결하려면, Blender에 기본으로 포함되어 있는 Node Wrangler 애드온을 사용합니다.
이 애드온은 따로 찾아서 다운로드할 필요 없이, Preferences 창에서 활성화만 하면 됩니다.

이 애드온은 다음과 같이 작동합니다.
각 서브 머티리얼마다 Principled BSDF 노드를 선택해야 합니다.
그런 다음, CTRL SHIFT T 키를 누릅니다.
그러면 선택한 서브 머티리얼에 해당하는 네 개의 이미지를 선택할 수 있는 창이 나타납니다.


Texture 선택 창에서는 찾고 있는 Texture의 이름 일부를 입력하여 결과를 필터링하고 원하는 텍스처를 더 빠르게 선택할 수 있습니다. 기본적으로 Adobe에서 다운로드한 오브젝트의 경우, Texture 이름은 해당 머티리얼 이름과 동일한 접두사를 사용하며, 끝에 mat 접미사만 제외되어 있습니다. 따라서 CTRL SHIFT T 키를 누르기 전에 머티리얼 이름을 복사해 두었다가 필터로 사용하는 것이 좋은 방법일 수 있습니다.
이 작업은 모델에 포함된 모든 서브 머티리얼에 대해 반복해야 합니다. 매번 해당 서브 머티리얼의 Principled BSDF 노드를 선택하는 것을 잊지 마세요. 그렇지 않으면 애드온이 작동하지 않습니다.
이제 Cycles에서 망원경 렌즈에 투명한 머티리얼을 설정하는 방법을 살펴보겠습니다.
망원경에는 완전히 투명한 머티리얼을 설정해야 하는 서브 머티리얼이 세 가지 있습니다. Optics Lenses, Finder Lenses, 그리고 Telescope Main Lenses입니다.
이 세 가지 머티리얼에 대해 Alpha 값이 1로 설정되어 있는지 확인해야 합니다. 기본적으로는 1로 설정되어 있어야 합니다.
그런 다음, 해당 서브 머티리얼의 Transmission 값을 1로 설정해야 합니다.

결과는 3D Viewport 창에서 Rendered 미리보기 모드로 전환하면 바로 확인할 수 있습니다.
이제 Normals이 올바르게 설정되어 있는지 확인하는 방법을 살펴보겠습니다.
이 시점에서 할 수 있는 또 다른 작업은 면의 Normals이 올바르게, 즉 외부를 향해 있는지 확인하는 것입니다.
Adobe에서 다운로드한 3D 모델은 모두 두께가 있으며, Adobe 팀이 오브젝트의 모든 파트에 대해 Normals 방향을 올바르게 설정했어야 하므로, 이 단계는 대부분의 경우 불필요할 수 있습니다.
그러나 확인하고 싶다면, Edit Mode로 전환한 다음 3D Viewport의 Viewport Overlays 메뉴를 열고, 면의 Normals 표시 옵션을 활성화하면 됩니다.

문제가 있는 경우, Edit Mode에서 오브젝트의 일부 또는 전체를 선택하고, Blender Toolbox를 열어 Recalculate Outside 연산자를 실행하면 됩니다.

이제 가져온 모델에서 Sharp Edges를 제거해 보겠습니다.
Edit Mode로 전환하면 일부 엣지가 Sharp로 표시되어 있는 것을 볼 수 있습니다. Mark Sharp 도구는 Normals 속성에 영향을 주며, 따라서 Edge Split이나 Autosmooth 같은 Normals 기반 도구의 작동 방식도 변경됩니다. 또한 Sharp로 지정된 엣지는 해당 면의 최종 셰이딩에도 영향을 줍니다.

Sharp가 있는 것이 반드시 문제는 아니지만, 제거하고 싶다면 A 키로 모든 지오메트리를 선택한 다음, CTRL E 키를 눌러 Edges 메뉴를 열고 Clear Sharp 옵션을 선택하면 됩니다.

이제 원래의 UV seams를 복원해 보겠습니다.
Edit Mode에서 지오메트리를 보면 UV 언랩 정보가 없는 것처럼 보입니다. Seams로 표시된 엣지는 원래 빨간색으로 보여야 하지만, 여기에는 표시되지 않습니다.
하지만 특정 서브 머티리얼에 해당하는 지오메트리를 선택하고 UV Editing 창에서 보면, UV islands는 실제로 존재합니다. 실제로 텍스처의 UV 매핑은 제대로 적용되어 있으므로, UV 언랩은 원래 있던 것이며, 단지 OBJ 형식의 모델은 Seams와 같은 정보를 저장하지 않기 때문에 Blender에서는 그런 방식으로 표시되지 않을 뿐입니다.

UV 언랩 정보를 복구하여 수정하거나 UV islands에 대해 다른 작업을 수행하려면 다음과 같이 하면 됩니다.
Edit Mode에서 모든 지오메트리를 선택합니다.
UV Editor 창으로 전환합니다.
거기서도 모든 지오메트리를 선택합니다.
UV 메뉴를 열고 Seams from Island 옵션을 선택합니다.

이제 UV islands의 경계가 올바르게 Seams로 표시됩니다.

이제 사용된 서브 머티리얼을 기준으로 지오메트리의 다양한 파트를 분리하는 방법을 살펴보겠습니다.
현재 상태의 모델은 이미 렌더링에 사용할 수 있는 상태입니다. 실제로, 제가 만든 커버 이미지는 이 시점까지 준비된 모델을 Blender 씬에 배치하고, 바닥과 뒷면 역할을 하는 Plane 하나, 광원들, 그리고 배경용 HDR 이미지만 추가해서 만든 것입니다.

하지만 현재 망원경은 하나의 오브젝트로 되어 있습니다. 이 모델뿐만 아니라 다른 많은 모델에서도, 다양한 파트를 분리하고 서로 부모-자식 관계를 설정하는 것이 유용할 수 있습니다.
망원경의 경우, 삼각대, 포크, 그리고 망원경 본체를 쉽게 구분할 수 있습니다. 왜냐하면 망원경은 포크 축을 중심으로도, 수평 축을 중심으로도 회전할 수 있어야 하기 때문입니다.
원래 오브젝트에서 일부 지오메트리를 분리하려면, Edit Mode에서 P 키를 눌러 Separate 도구를 사용할 수 있습니다. 먼저 분리할 지오메트리를 선택한 후에 사용해야 합니다.
파트 수가 적거나 식별하기 쉬운 구조의 오브젝트인 경우에는 다음과 같은 방법으로 진행할 수 있습니다.
Edit Mode로 전환합니다.
모든 지오메트리 선택을 해제합니다.
서브 머티리얼의 슬롯 중 하나를 선택합니다.
Select 버튼을 클릭합니다.
P 키를 누르고 Separate 옵션을 선택합니다.

그런 다음 Object Mode로 돌아가서, 원래 오브젝트를 다시 선택하고 나머지 서브 머티리얼에 대해서도 동일한 작업을 반복합니다.
Separate 메뉴에는 By Loose Parts 기능도 있습니다. 이 기능을 사용하면 서로 연결되지 않은 지오메트리마다 각각 하나의 새로운 오브젝트로 분리할 수 있습니다. 하지만 이 경우 망원경에는 서로 연결되지 않은 작은 디테일이 많기 때문에, 수백 개의 오브젝트가 불필요하게 생성되어 버릴 수 있습니다.
우리는 망원경을 세 개의 파트로만 분리하고 싶기 때문에, Separate 기능을 수동으로 사용하는 것이 유혹적일 수 있지만, 이 방법도 이 경우에는 여러 가지 단점이 있습니다.
오브젝트의 파트를 선택하는 방법은 여러 가지가 있지만, 망원경은 디테일이 많아서 개별 선택 방식으로 진행하다 보면 일부를 놓칠 위험이 있습니다.
반대로 Border나 Circle Select 같은 넓은 범위 선택 도구를 사용하면, 원하지 않는 파트까지 선택할 수 있는 위험이 있습니다.
하지만 망원경이 아홉 개의 서브 머티리얼로 구성되어 있다는 점은 좋은 아이디어를 떠올리게 합니다. 각 서브 머티리얼에 연결된 지오메트리를 개별적으로 선택하고, Separate By Materials 기능을 사용하여 분리할 수 있습니다.
이 방법을 사용하면 오브젝트가 아홉 개로 분리되지만, 그다음에 Join 연산자를 사용하여 필요한 것들만 합칠 수 있습니다.
그럼 이 방법으로 진행해 보겠습니다.
먼저 망원경을 선택한 다음, Edit Mode로 전환합니다.
A 키를 눌러 모든 지오메트리를 선택합니다.
P 키를 누르고 By Material 옵션을 선택합니다.

마지막 단계에서는 몇 개의 오브젝트를 서로 병합할 수 있습니다. 예를 들어, Finder 오브젝트의 렌즈를 Finder 본체에 병합하고, 이후 Finder 본체를 망원경의 본체에 병합할 수 있습니다.

망원경의 렌즈, 광학 부품, 그리고 망원경 본체도 모두 하나로 병합할 수 있습니다.
삼각대 위에 놓인 하단 베이스는 일반적으로 관측 장소의 위도에 따라 한 번 회전하지만, 관측 중에는 회전하지 않기 때문에 삼각대와 병합해도 괜찮습니다.
이렇게 해서 원하는 대로 세 개의 주요 오브젝트를 만들 수 있었습니다. 다음 단계로 진행하기 전에 각각의 오브젝트에 의미 있는 이름을 지정하는 것이 좋습니다.

이제 분리된 모든 파트의 Origin과 회전을 올바르게 설정하는 방법을 살펴보겠습니다.
오브젝트는 분리되었지만, Origin 위치와 초기 방향은 올바르지 않습니다. 특히 망원경 본체나 포크를 회전시켜 보면 이 점이 분명해집니다.
삼각대부터 시작해 보겠습니다. 삼각대는 가장 간단한데, Origin을 가상 우주의 중심에 맞추고 방향을 0으로 초기화하면 됩니다.
모든 오브젝트를 선택한 뒤, XY 평면상에서 이동시켜 삼각대의 중심 축이 전역 Z 축과 일치하도록 맞춥니다.
그런 다음 삼각대만 선택하고 CTRL A 키를 누른 뒤, 화면에 나타나는 메뉴에서 Location Rotation Scale 옵션을 선택하면, Origin이 가상 우주의 중심에 위치하게 되고, 회전과 스케일 정보가 초기화됩니다.

이제 포크와 망원경 본체를 올바르게 조정하려면, 먼저 포크의 Origin을 올바르게 설정해야 합니다. 그래야 회전이 정확하게 적용됩니다.
먼저 삼각대를 H 키로 눌러 일시적으로 숨깁니다.
포크를 선택하고 Edit Mode로 전환한 뒤, 이 오브젝트 바닥에 있는 엣지 하나를 선택합니다.
SHIFT S 키를 누르고, Cursor to Selected 옵션을 선택합니다.

Object Mode로 돌아가서 포크를 우클릭한 후, Set Origin to 3D Cursor 옵션을 선택합니다.

포크의 회전 축을 올바르게 설정하려면, 먼저 포크를 수평으로 정렬한 후 Rotation 값을 초기화해야 합니다.
측면 정사각 투시 뷰에서 포크를 회전시켜 수평으로 맞춥니다.
Rotation Y 필드를 보면, 포크를 수평으로 정렬하는 데 60도 회전이 필요했던 것을 확인할 수 있습니다.

포크가 수평으로 정렬된 상태에서 CTRL A 키를 누르고 Rotation And Scale 옵션을 선택합니다. 주의할 점은 이번에는 Location까지 포함하지 않아야 한다는 것입니다. 그렇지 않으면 포크의 Origin이 가상 우주의 중심으로 이동하게 됩니다.
어쨌든, 포크를 원래 위치로 되돌리려면, 이번에는 Y 축을 기준으로 60도 회전시키면 충분합니다.
이제 포크의 로컬 Z 축이 올바르게 설정되어 있으므로, 그 축을 기준으로 정확하게 회전시킬 수 있습니다.

망원경의 회전은 포크의 두 핀이 지나는 축을 중심으로 이루어져야 하므로, 망원경의 Origin을 그 중간에 놓고, 적어도 하나의 전역 축이 그 지점을 통과하도록 설정해야 합니다. 그래야 회전 변환을 적용할 수 있고, 포크의 경우처럼 최소한 하나의 Local 축이 올바르게 설정됩니다.
Origin 설정은 간단합니다. 포크 핀에 있는 두 개의 링을 선택하면 되며, 이 두 링은 완벽하게 대칭이므로 3D Cursor를 그 사이에 위치시킬 수 있습니다.
그 작업이 끝나면 망원경을 선택한 후, 앞서 포크에서 사용했던 Set Origin to 3D Cursor 연산자를 다시 사용하면 됩니다.

전역 축, 예를 들어 Y 축이 망원경을 정확히 통과하도록 망원경을 정렬하는 작업은 쉽지 않습니다. 세 축 모두에 대해 회전을 적용해야 하기 때문입니다.
하지만 해결 방법이 있습니다. 망원경을 포크에 일시적으로 부모로 연결하면, 최소한 한 방향에서는 망원경을 쉽게 정렬할 수 있습니다. 따라서 먼저 망원경을 선택하고, 그다음 포크를 선택합니다.
그런 다음 CTRL P 키를 눌러 Set Parent to Object 옵션을 선택합니다.

포크를 회전시켜 정면의 직각 뷰에서 포크와 망원경 모두가 수평이 되도록 정렬합니다.
이 시점에서 망원경만 회전시켜 전역 Y 축을 기준으로 수평 정렬을 시도합니다.
하지만 망원경에 회전 변환을 적용하기 전에, 먼저 포크와의 부모 관계를 제거해야 합니다.
정렬된 망원경만 선택한 상태에서 ALT P 키를 누르고, 나타나는 메뉴에서 Clear Parent and Keep Transform 옵션을 선택합니다.

이 작업이 끝났으면, CTRL A 키를 눌러 Rotation And Scale 옵션을 선택합니다. 이때는 망원경만 선택한 상태여야 합니다.

이제 다양한 오브젝트 간에 부모-자식 관계를 설정해 보겠습니다.
3D Viewport에서 Local transformations 선택기로 전환해 보면, 망원경은 이제 로컬 Y 축을 기준으로 회전할 수 있고, 포크는 로컬 Z 축을 기준으로 회전할 수 있다는 것을 확인할 수 있습니다.
이제 세 개의 요소를 올바르게 부모-자식으로 연결하여 쉽게 이동하거나 회전할 수 있도록 하면 됩니다.
먼저 포크를 삼각대에 연결합니다. 절차는 항상 동일합니다. 여러 오브젝트를 선택할 때는 자식 오브젝트를 먼저, 부모 오브젝트를 마지막에 선택한 후 CTRL P 키를 눌러 부모-자식 관계를 설정합니다.

그런 다음 망원경과 포크를 연결합니다. 이 경우에는 포크를 마지막에 선택해야 합니다.
Outliner 창에서 계층 구조를 명확하게 확인할 수 있습니다.

이제 씬 안에서 삼각대를 쉽게 이동, 회전, 크기 조절할 수 있으며, 이런 작업이 다른 오브젝트에도 정확하게 적용되는 것을 볼 수 있습니다.
또한 포크와 망원경을 각각의 로컬 축을 기준으로 정확하게 회전시킬 수 있으므로, 망원경의 구성을 바꾸거나 애니메이션 작업을 할 때 유용합니다.

자, 이번 튜토리얼은 여기까지입니다! 도움이 되었기를 바랍니다! 곧 다시 만나요!