이 튜토리얼에서는 Blender 버전 3.3을 사용하여 혈관 내부를 이동하는 몇 개의 적혈구 애니메이션을 만드는 방법을 살펴보겠습니다.


이 튜토리얼의 동영상 버전은 현재 이 언어로 제공되지 않습니다. 영어 동영상은 다음 링크에서 확인할 수 있습니다:


영상 자막 텍스트

안녕하세요 여러분!

이 튜토리얼에서는 Blender 버전 3.3을 사용하여 혈관 내부를 이동하는 몇 개의 적혈구 애니메이션을 만드는 방법을 살펴보겠습니다.

이 튜토리얼에서는 혈관과 적혈구를 모델링하는 방법, Emitter 타입 파티클 시스템을 사용해 적혈구를 생성하는 방법, 그리고 Force Field를 사용해 적혈구가 혈관의 경로를 따라 이동하도록 만드는 방법을 배우게 됩니다.

완전히 비어 있는 씬에서 혈관 모델링부터 시작하겠습니다.

먼저, Top 뷰에서 가능하면 직교 뷰로 Bezier curve를 추가한 다음, Edit Mode에서 몇 개의 컨트롤 포인트를 추가하고 이동시키며 형태를 잡습니다.

이 커브는 혈관의 경로를 나타내며, 이번 작업에서는 2D 평면에 유지해도 됩니다. 그래서 위에서 내려다보는 직교 뷰로 씬을 프레이밍하고 있습니다.

경로 모델링이 끝나면 Object Mode로 돌아가서 Bezier Circle을 씬에 추가합니다. 이것은 경로의 프로파일을 나타내며, 원형으로 유지할 것입니다. 내부 벽면은 나중에 Displace modifier로 변형할 예정입니다.

Bezier Circle을 Bezier Curve의 프로파일로 설정하려면, 먼저 Bezier Curve를 선택하고 이해를 돕기 위해 이름을 Vessel Path로 변경합니다. 그런 다음 Properties editor에서 Object Data 탭을 열고 Geometry - Bevel - Object 섹션으로 이동해, 방금 만든 Bezier Circle을 Bevel object로 지정합니다.

프로파일이 너무 크거나 작아 보인다면 Bezier Circle을 스케일링하기만 하면 됩니다. 앞서 말했듯이, 원형 프로파일은 충분히 잘 작동하므로 Edit Mode에서 Bezier Circle의 형태를 수정할 필요는 없습니다.

제 경우에는 혈관 내부에서 보았을 때 오브젝트가 보이지 않는데, 이는 Viewport Shading 메뉴에서 Backface Culling 옵션이 활성화되어 있기 때문입니다.

이 옵션은 노멀이 뷰어를 향하지 않는 면을 숨기는데, 어떤 경우에는 유용하지만 이번 작업에는 필요하지 않으므로 비활성화합니다.

이제 경로를 하나 복사합니다. SHIFT+D를 누르고 Enter를 눌러 복사한 뒤, 예를 들어 Path Copy라는 이름을 붙이고 잠시 숨겨 둡니다. 이 복사본은 두 가지 이유로 유용합니다. 하나는 곧 Curve를 Mesh로 변환할 예정이기 때문에 원본 경로를 안전하게 보관하기 위함이고, 다른 하나는 나중에 적혈구가 따라갈 경로로 원래 커브를 사용하기 위함입니다.

경로는 Mesh로 변환해야 합니다. 그래야 Displace modifier를 적용해 혈관 벽을 변형하고 시각적으로 더 흥미롭게 만들 수 있기 때문입니다.

변환은 오브젝트를 우클릭한 후 Convert To Mesh를 선택하면 되지만, 여기서 한 가지 짚고 넘어가고 싶습니다. 제 경우에는 원형 프로파일의 버텍스 밀도가 경로를 구성하는 세그먼트보다 훨씬 높습니다.

저는 가능한 한 정사각형에 가까운 면을 선호하기 때문에, 변환 작업을 되돌립니다. Object Mode에서 CTRL+Z를 눌러 Undo한 다음, 원래 컨트롤 포인트 사이의 거리가 너무 멀고 핸들이 너무 길어 직사각형 면이 생성되는 구간에 중간 컨트롤 포인트를 추가합니다.

그런 다음 앞서 언급했듯이 오브젝트를 우클릭하고 Convert To Mesh를 선택해 Mesh로 변환합니다.

이어서 오브젝트에 Displace modifier를 추가하고, 많은 왜곡을 주기 위해 Scale 값이 낮은 Clouds 텍스처를 설정합니다.

하지만 결과는 만족스럽지 않습니다. 이는 변환으로 얻어진 메쉬가 충분히 “촘촘하지” 않기 때문으로, 즉 변형할 수 있는 버텍스와 면의 수가 적기 때문입니다. 이 문제를 해결하기 위해 Subdivision Surface modifier를 추가하고, Subdivisions 값을 최소 2로 설정합니다.

Subdivision Surface modifier는 Displace modifier보다 위에 위치해야 합니다. 순서가 중요한데, 먼저 Subdivision Surface로 메쉬를 세분화한 다음 Displace로 변형이 적용되어야 하기 때문입니다.

이제 Texture의 Size 값과 Displace modifier의 Strength 값을 조정해 마음에 드는 결과가 나올 때까지 수정합니다. 필요하다면 Displace에 다른 텍스처를 시도해 볼 수도 있고, 모디파이어 스택의 마지막에 Smooth modifier를 추가해 왜곡을 조금 부드럽게 하여 혈관 모델링 단계를 마무리할 수도 있습니다.

이 작업이 끝나면 혈관에 머티리얼을 할당합니다. 제 경우에는 튜토리얼 미리보기에서 본 느낌을 얻기 위해 빨간색 Velvet 머티리얼을 사용합니다. 이 머티리얼은 빛을 독특한 방식으로 반사하며, 이번 결과는 포토리얼리즘이 필요하지 않기 때문에 다소 부드럽고 흐릿한 느낌도 괜찮습니다.

하지만 결과를 미리 보기 위해서는 먼저 두 가지 작업을 해야 합니다.

  • World - Background - RGB Color에서 가상 환경의 배경을 검은색으로 설정하고,

  • 혈관 내부에 최소 두 개의 Point Light 광원을 추가합니다.

Point Light는 Top Ortho 뷰에서 쉽게 배치할 수 있습니다. 광원은 커브 근처에 두는 것이 좋으며, 처음에는 하나만 생성한 뒤 ALT+D를 사용해 링크된 복사본을 만드는 것을 권장합니다. 이렇게 하면 첫 번째 광원의 파라미터가 그대로 복사되므로, 초기에 적절한 광원 세기를 알기 어려워 여러 번 실험해야 할 때 하나의 광원만 수정해도 링크된 복사본들에 동일한 설정이 적용되어 편리합니다.

혈관 입구에도 광원의 링크된 복사본을 하나 배치합니다. 그렇지 않으면 적혈구가 시작 부분에서 너무 어둡게 보이게 됩니다.

3D Viewport에서 Z - Rendered를 사용해 렌더 미리보기를 확인하면서, 원하는 결과가 나올 때까지 조명 파라미터를 조정할 수 있습니다.

이 단계에서는 나중에 렌더링에 사용할 카메라도 추가하고 배치할 수 있습니다. 구체적으로, Object Mode에서 SHIFT+A와 Camera를 사용해 씬에 Camera 오브젝트를 추가한 다음, 3D Viewport에서 시퀀스의 초기 프레이밍을 정하기 위해 원하는 위치로 이동합니다. 그 후 Blender의 검색 창을 열어(제 경우에는 스페이스바로 열 수 있습니다) Align Camera to View 옵션을 찾습니다. 이 기능의 단축키는 CTRL ALT NUMPAD 0입니다.

카메라의 위치를 조정하고, 필요하다면 Object Data 탭에서 초점 거리도 변경합니다. 예를 들어 값을 낮추면 더 넓은 와이드 앵글 프레이밍을 얻을 수 있습니다.

머티리얼, 조명, 카메라 설정이 모두 완료되면 3D 씬의 Solid 뷰 모드로 돌아가 빈 공간으로 이동해 적혈구 프로토타입을 모델링합니다.

이 오브젝트를 모델링하는 방법은 여러 가지가 있으며 선택의 폭도 넓습니다. 제 경우에는 UV Sphere를 생성한 뒤 극 부분을 평평하게 만들고, 극의 버텍스를 삭제한 다음 Edit Mode에서 GRID FILL을 사용해 생긴 빈 링을 채웁니다.

이러한 작업을 하는 이유는 적혈구에도 Displace modifier를 적용할 예정이기 때문입니다. 하지만 그 전에 Object Mode에서 셰이딩을 Shaded로 변경합니다. 기본 Flat 셰이딩은 너무 각져 보이기 때문입니다.

이어서 적혈구를 더 다듬어 극 근처를 평평하게 만듭니다. 모델링하고 싶은 버텍스를 선택한 뒤 Z축 방향으로 이동하거나 스케일링하여 원하는 형태가 나올 때까지 조정합니다.

지오메트리 왜곡에 대해서는 혈관에서 했던 것과 같은 작업을 수행합니다. 즉, Subdivision Surface와 Displace modifier를 추가하고 설정합니다. 다만 이번에는 Subdivision Surface의 subdivision이 하나만 있어도 충분할 가능성이 큽니다.

Displace로 인한 변형이 잘 보이지 않거나, 반대로 Texture의 Size 값을 크게 바꿔도 너무 강하게 나타난다면, 특히 오브젝트를 리사이즈한 경우 CTRL+A를 눌러 Apply Scale을 적용해 보세요. 이 점은 혈관에도 동일하게 적용됩니다.

모델링 단계가 완료되면 이 적혈구 프로토타입에 머티리얼을 할당합니다. 이 단계에서는 최종 효과를 미리 보기 위해 적혈구를 잠시 혈관 내부의 조명이 잘 비치는 위치로 옮긴 뒤 Rendered 뷰 모드에서 확인합니다.

이번에는 Principled BSDF 머티리얼을 선택하고, 약간 어두운 빨간색과 Roughness 값을 약 0.6으로 설정해 오브젝트에 은은한 스페큘러 반사를 줍니다.

이 단계가 끝나면 적혈구를 다시 혈관 밖으로 이동시키고 Solid 뷰 모드로 돌아가, 적혈구를 방출할 파티클 시스템 생성에 집중합니다.

클 시스템의 파티클로 적혈구를 방출하려면 먼저 emitter 오브젝트가 필요합니다.

우리의 경우에는 Plane 하나면 충분하므로 씬에 Plane을 추가합니다. 가장 중요한 점은 Plane의 윗면이 혈관의 입구를 향하도록 방향을 맞추는 것입니다. 그 방향으로 적혈구를 방출하고 싶기 때문입니다.

새로 생성한 Plane에 파티클 시스템을 연결하려면, 해당 오브젝트의 Particle Properties 탭을 열고 “+” 버튼을 클릭합니다.

기본적으로 새로 생성된 파티클 시스템은 Emitter 타입으로 설정되며, 이것이 우리가 필요한 설정입니다.

우리는 너무 많은 파티클을 만들고 싶지는 않지만, 적혈구 프로토타입의 복사본이어야 하고, 무작위 회전을 가지며, 애니메이션 전체 길이에 걸쳐 방출되고, 애니메이션 끝까지 존재하길 원합니다.
마지막 조건은 설명이 필요합니다. 곧 보겠지만, 파티클에는 수명이 있으며 이를 적절히 설정해야 하기 때문입니다.

파티클 개수에 대해서는 애니메이션을 확인하면서 테스트할 예정이지만, 일단은 파티클 시스템 탭의 Number 필드에 100을 설정합니다.

애니메이션 길이에 대해서는 Blender 기본값인 250 프레임을 그대로 사용하겠습니다. 이는 초당 25프레임 기준으로 10초에 해당합니다. 따라서 다음과 같이 설정할 수 있습니다.

  • Frame Start 0

  • End Frame 250

  • Lifetime 250

새로 생성되는 파티클을 적혈구 프로토타입의 인스턴스로 만들기 위해, 파티클 시스템의 Render 탭을 열고 Render As 항목을 Halo에서 Object로 변경한 다음, 아래쪽에서 Instance Object로 적혈구 오브젝트를 지정합니다.

이제 애니메이션을 재생해 보면, 생성된 파티클에 대해 수정해야 할 몇 가지 문제가 보일 것입니다.

  • 크기가 적절하지 않고,

  • 아래로 떨어지며,

  • 모두 같은 방향을 향하고 있고,

  • 혈관을 향해 방출되지 않습니다.

이 문제들을 하나씩 해결해 보겠습니다. 가장 간단한 것부터 시작하는데, 바로 중력을 제거하는 것입니다.

파티클 시스템의 Field Weights 탭을 열고 Gravity 값을 0.0으로 설정합니다. 이제 Timeline을 프레임 1로 이동한 뒤 애니메이션을 다시 재생해 보면, 파티클이 더 이상 아래로 떨어지지 않는 것을 확인할 수 있습니다.

파티클의 크기는 파티클 시스템의 Render 탭에서 Scale 파라미터를 조정해 변경할 수 있습니다. 적혈구의 크기가 서로 달라질 수 있는지는 확실하지 않기 때문에, 무작위 크기 변화를 주는 Scale Random 값은 0.0으로 그대로 둡니다.

참고로, 파티클은 적혈구 프로토타입의 인스턴스이기 때문에, Object Mode나 Edit Mode에서 프로토타입을 수정하면 그 변화가 파티클에도 그대로 반영됩니다.

파티클의 회전에 대해서는, 먼저 파티클 시스템에서 Rotation 섹션을 활성화한 다음, 이 탭 안의 Randomize 필드에 0.0보다 큰 값을 설정하면 초기 무작위 회전을 줄 수 있습니다.

Timeline의 첫 프레임으로 돌아가 애니메이션을 재생하면, 무작위 방향을 가진 파티클이 생성되는 것을 확인할 수 있습니다.

이제 마지막으로 해결해야 할 문제는 파티클을 혈관을 따라 이동시키는 것입니다.

혈관의 복사본인 Bezier Curve 타입의 Path Copy를 기억하시나요? 메쉬로 변환된 혈관과 겹쳐진 상태로 숨겨 두었던 그 오브젝트 말입니다. 이제 이 커브를 파티클이 따라갈 경로로 사용할 차례입니다.

Path Copy를 선택하고, Properties editor에서 Physics 탭을 연 다음 Force Field를 추가합니다.

Force Field의 타입을 Force에서 Curve Guide로 변경합니다. 당장은 특별한 변화가 보이지 않을 수 있는데, 이는 Path Copy가 현재 보이지 않기 때문입니다. 따라서 Path Copy를 다시 보이게 하고, 혈관 입구 근처에 점선 원이 나타나는지 확인합니다.

이 원은 파티클 시스템에 대한 영향 영역을 나타내며, 파티클은 이 영역 안에 들어왔을 때 Force Field의 영향을 받게 됩니다.

이제 Plane을 이 영역에 더 가깝게 이동시키고, 무엇보다도 생성된 파티클을 포함할 수 있도록 영역을 넓혀야 합니다. 이를 위해 Force Field 탭에서 Minimum Distance 파라미터 값을 변경합니다.

Timeline을 다시 프레임 1로 되돌린 뒤 애니메이션을 재생해 결과를 확인합니다.

만약 파티클이 커브와 다른 경로를 따라 이동한다면, 그 이유는 Bezier 커브에 시작점과 끝점이 있기 때문일 수 있습니다. 아마도 우리가 혈관의 입구라고 생각한 지점이 실제로는 커브의 끝일 가능성이 있습니다.

이 문제를 해결하려면 Edit Mode로 전환한 뒤 커브의 모든 컨트롤 포인트를 선택하고, Blender의 검색 창에서 “Switch Direction” 명령을 찾아 방향을 반대로 바꿉니다.

Object Mode로 돌아가 애니메이션의 프레임 1에 위치한 뒤 Play 버튼을 클릭해 결과를 확인합니다.

결과가 만족스럽다면 Path Copy 오브젝트를 다시 숨깁니다.

이제 가상 카메라의 시점에서 애니메이션을 미리 볼 수 있으며, 필요에 따라 파티클 시스템이 생성하는 적혈구의 수나 Displacement 효과의 강도, 크기 등의 다른 파라미터도 조정할 수 있습니다.

마지막으로 씬 안에서 가상 카메라의 움직임을 애니메이션으로 만들 수 있습니다. 이를 위해 Top Ortho 뷰에서 씬을 보면서, 원하는 연출에 맞게 혈관 내부에서 카메라의 위치와 회전에 키프레임을 삽입하고, 3D View에서 카메라 시점으로 결과를 확인하면 됩니다…

… 그런데 문제가 하나 있습니다! 만약 애니메이션 250프레임 동안 혈관의 대부분을 커버하도록 카메라를 이동시키면, 파티클은 항상 우리 뒤에 있게 되어 전혀 보이지 않게 됩니다!

이 문제를 해결하는 방법은 여러 가지가 있는데, 그중 하나는 애니메이션이 시작되기 전에 파티클을 방출하는 것입니다. 예를 들어 파티클 시스템의 Frame Start 필드에 -100을 설정할 수 있습니다. 단, 이 경우 Lifetime 값을 350으로 설정해야 합니다. 그렇지 않으면 파티클이 Timeline의 프레임 150에서 사라지게 됩니다.

이 변경을 적용한 후 3D Viewport에서 애니메이션을 다시 확인해 모든 것이 제대로 작동하는지 점검합니다. 문제가 없다면, 이제 애니메이션 렌더링을 시작할 수 있습니다.

이 튜토리얼을 마치기 전에, 파티클 시스템의 캐싱과 렌더링 중 발생할 수 있는 몇 가지 문제에 대해 간단히 짚고 넘어가겠습니다. 특히 최종 애니메이션 렌더링으로 진행하기 전에, 씬의 상태를 여러 시점에서 보여 주기 위해 중간 렌더링을 여러 번 수행한 경우에 이런 문제가 생길 수 있습니다.

이런 경우, Timeline 하단에 빨간색 선이 나타나는 것을 볼 수 있는데, 이는 Blender가 해당 지점까지의 애니메이션을 계산하고 캐시에 저장했음을 의미합니다.

가장 골치 아픈 점은, 여러 번의 렌더 미리보기(3D View에서)를 거친 후 이 빨간 선이 연속되지 않고 “조각난 형태”, 즉 구간별로 보일 수 있다는 것입니다.

문제는 이런 상태에서는 Blender가 어떤 프레임은 우리가 원하는 대로 올바르게 계산해 두고, 다른 프레임은 서로 다른 방식으로 계산해 버린다는 점입니다. 그 결과, 어떤 프레임에서는 파티클이 올바른 위치에 보이지만, 다른 프레임에서는 잘못된 위치에 있거나 아예 보이지 않을 수도 있습니다.

애니메이션 렌더링을 시작하기 전에 반드시 다음 작업을 수행해야 합니다.

  • 먼저 애니메이션의 첫 프레임으로 돌아갑니다.

  • 그다음, 파티클을 방출하는 Particle System의 Cache 탭에 들어가면, 메모리에 저장된 프레임 정보가 표시됩니다.

  • 이후 “+” 기호를 클릭해 새로운 캐시를 추가합니다. 이 캐시는 처음에는 비어 있습니다.
    그 다음 “-” 기호를 클릭해 이전 캐시를 삭제합니다.

  • 마지막으로 Bake 버튼을 클릭해 전체 파티클 시뮬레이션을 올바르게 계산하고 캐시에 저장합니다.

이 작업이 끝나면, 빨간색 바가 Timeline 전체를 덮고 있는 것을 볼 수 있을 것입니다. 이는 모든 프레임이 계산되어 메모리에 정확히 저장되었음을 의미합니다.

이제 Render - Animation을 통해 애니메이션 렌더링을 시작하면, 생성되는 파일이나 파일들에서 불쾌한 놀라움을 겪을 일은 없을 것입니다…

…그리고 정말 마지막으로 한 가지 더 말씀드리자면, Render Properties 탭에서 Rendering용 Denoise를 활성화하는 것을 잊지 마세요. 이 머티리얼과 조명 조건에서는 매우 유용하며, 훨씬 적은 Samples 수로도 렌더링할 수 있게 해 줍니다. 제 경우에는 Samples를 100으로만 설정했습니다.

정리하자면, 이 튜토리얼에서는:

  • 혈관 경로와 적혈구를 모델링하는 방법을 살펴보았고,

  • 오브젝트에 기본적인 머티리얼과 간단한 조명을 설정했으며,

  • Particle System을 사용해 적혈구 인스턴스를 생성하는 방법을 알아보았고,

  • 적혈구가 혈관 내부의 경로를 따라 이동하도록 만드는 방법을 살펴보았습니다.

이 튜토리얼이 도움이 되었기를 바랍니다!
곧 다시 만나요!

🇺🇸 Sitemap - 🇮🇹 Sitemap - 🇪🇸 Mapa del sitio - 🇧🇷 Mapa do site - 🇫🇷 Plan du site - 🇩🇪 Sitemap - 🇷🇺 Карта сайта - 🇨🇳 网站地图 - 🇯🇵 サイトマップ - 🇰🇷 사이트맵


이 사이트는 제 작업 일부를 소개하기 위한 목적만을 가지고 있으며, 어떠한 홍보 목적도 포함하지 않습니다. 현재 맞춤 작업, 컨설팅 또는 기타 어떤 형태의 업무 협업에 대한 요청도 받고 있지 않으며, 이에 대해 응답하지 않으니 양해 부탁드립니다.


확장된 개인정보 및 쿠키 사용 정책