Blender Mirror Modifier로 좌우 대칭 의자 만들기: 입문 10강

왼쪽 프레임만 만들고 원점을 의자 중앙에 두면, Mirror가 오른쪽 프레임을 대칭으로 만듭니다. 중앙 가로대는 맞닿는 끝면을 먼저 제거하고, Modifier를 Mirror → Bevel 순서로 놓아야 중앙에 불필요한 내부 면이나 잘록한 이음새가 남지 않습니다.

이 강좌는 Blender 5.2 공식 자료를 바탕으로 구성했습니다. 부품 배치·원점 이동·중앙 접합부·Clipping은 Codex가 별도 Blender 5.2.0 LTS 초기 장면에서 Python으로 재현했습니다. 필자의 직접 실습 기록은 아니며, 실제 키보드·Outliner 클릭·렌더링까지 시험한 결과로 소개하지 않습니다.

완성할 모형과 시작 조건

좌판과 등받이는 별도 오브젝트로 만들고, 앞다리·뒤기둥·옆 가로대·앞 가로대 반쪽만 합쳐 Mirror를 넣습니다. 최종 Mesh 오브젝트는 Seat, Backrest, Chair_Left_Half_Frame 세 개입니다. Camera와 Light는 이 개수에서 제외합니다.

좌우 대칭 의자의 형태와 재질 디자인 참고
기존 의자 디자인 참고입니다. 재질·조명과 중앙 이음새 표현은 아래에서 보완한 실습 결과와 다릅니다. 중앙 가로대는 끝면 제거와 Mirror → Bevel 순서로 개선합니다.

기존 작업을 저장한 뒤 새 General 파일에서 시작합니다. Object Mode, Global, Rotation 0, 0, 0을 유지하세요. 숫자는 Blender 연습용 단위입니다. 기본 None에서는 숫자만 입력하고, Metric·Unit Scale 1이면 같은 숫자가 미터로 표시됩니다. 실제 의자의 제작 치수는 아닙니다.

새 실습은 blender-lesson-10-chair.blend처럼 구분되는 이름으로 저장합니다. 아래 크기는 Scale 칸이 아닌 N Sidebar → Item → Dimensions에 넣습니다. 매 부품의 크기를 정한 뒤 Object Mode에서 Ctrl + A → Scale을 적용해 Scale을 1·1·1로 맞춥니다.

1. 좌판과 등받이 만들기

부품Location X / Y / ZDimensions X / Y / Z
Seat0 / 0 / 2.182.6 / 2.4 / 0.28
Backrest0 / 1.05 / 3.282.6 / 0.28 / 1.35
  1. 기본 Cube를 Seat로 이름 바꾸고 표의 크기와 위치를 입력합니다. Ctrl + A → Scale을 적용합니다.
  2. Seat에서 Shift + D를 누른 뒤 오른쪽 클릭으로 이동만 취소합니다. 복제본은 남습니다.
  3. 복제본 이름을 Backrest로 바꾸고 표의 크기·위치를 입력합니다. 다시 Ctrl + A → Scale을 적용합니다.
Blender 좌판과 등받이의 Location과 Dimensions 입력 위치 강조 화면
좌판의 Location Z 2.18, Dimensions 2.6·2.4·0.28, Scale 1을 확인하는 참고입니다. 그림에는 등받이와 모서리 다듬기가 이미 포함돼 있습니다.

이 강의의 앞쪽은 -Y, 뒤쪽은 +Y입니다. Front는 숫자패드 1 또는 View → Viewpoint → Front, Top은 숫자패드 7 또는 같은 메뉴의 Top으로 확인합니다. 아직 좌판·등받이에 Bevel을 넣지 않았다면 배치를 마친 뒤 아래 6단계에서 추가합니다.

2. 왼쪽 프레임 네 부품 만들기

Object Mode에서 Shift + A → Mesh → Cube로 부품마다 새 큐브를 추가합니다. 새 부품 하나만 선택한 상태에서 이름·Dimensions·Location을 맞추고 Scale을 적용하세요. 이 네 부품에는 아직 Bevel을 추가하지 않습니다.

부품 이름Location X / Y / ZDimensions X / Y / Z
Leg_Front_Left
앞다리
-1.05 / -0.95 / 1.050.25 / 0.25 / 2.10
Post_Back_Left
뒤기둥
-1.05 / 0.95 / 2.050.25 / 0.25 / 4.10
Rail_Side_Left
옆 가로대
-1.05 / 0 / 1.720.25 / 2.15 / 0.20
Rail_Front_Half
앞 가로대 반쪽
-0.525 / -0.95 / 1.621.05 / 0.20 / 0.20

왼쪽은 -X, Mirror가 만들 오른쪽은 +X입니다. 앞 가로대 반쪽의 오른쪽 끝은 -0.525 + 1.05 ÷ 2 = 0으로 중앙에 닿습니다. 앞다리의 바닥은 Z=0, 위쪽은 2.10이며 좌판 아래 2.04와 0.06 겹칩니다.

3. 앞 가로대의 중앙 끝면 한 장만 제거하기

이 단계가 빠지면 점을 Merge해도 가운데 내부 면이 남습니다. Rail_Front_Half를 선택한 상태에서 아래 순서로 진행합니다.

  1. Tab으로 Edit Mode에 들어가고 키보드 위쪽 3으로 Face Select를 켭니다. Alt + A로 선택을 해제합니다.
  2. 숫자패드 3 또는 View → Viewpoint → Right로 +X 쪽 끝을 봅니다. 필요하면 다른 부품과 구분되는 시점에서 확인합니다.
  3. 월드 X=0에 있는 오른쪽 끝면 한 장만 선택합니다. 길게 뻗은 옆면이나 왼쪽 끝면이 아닙니다.
  4. X → Only Faces로 면만 삭제합니다. 끝의 점과 모서리는 남겨두고, 중앙 쪽이 열린 반쪽 가로대로 만듭니다.
  5. Tab으로 Object Mode에 돌아옵니다.

삭제 전 이 면의 Local Median X는 약 0.525입니다. 아직 오브젝트 원점이 X=-0.525에 있으므로 월드 위치가 0인 것입니다. Local X가 0이라는 이유로 가운데 면을 고르지 마세요. 뒤에서 프레임 원점을 월드 0으로 옮긴 다음에는 Local·World 기준이 맞아집니다.

4. 네 부품 Join하고 원점을 월드 중앙에 놓기

  1. Outliner에서 Rail_Front_Half를 클릭합니다. Ctrl을 누른 채 Rail_Side_Left, Post_Back_Left, Leg_Front_Left를 하나씩 추가 선택합니다. 마지막 앞다리가 활성 오브젝트가 되도록 합니다.
  2. 선택된 행이 프레임 네 부품뿐인지 확인합니다. Seat·Backrest·Camera·Light는 선택하지 않습니다. Outliner의 Shift 클릭은 범위 선택이므로 다른 행이 끼어들 수 있습니다.
  3. 3D Viewport 위에서 Ctrl + J를 눌러 합칩니다. 이름을 Chair_Left_Half_Frame으로 바꿉니다.
  4. Shift + S → Cursor to World Origin으로 3D Cursor를 월드 0에 놓습니다.
  5. Object → Set Origin → Origin to 3D Cursor를 선택합니다.
  6. 프레임 Location 0, 0, 0, Rotation 0, 0, 0, Scale 1, 1, 1을 확인합니다. 프레임의 실제 모양은 왼쪽에 그대로 있어야 합니다.
의자 왼쪽 프레임 네 부품과 Join 대상을 강조한 Blender 화면
합친 왼쪽 프레임과 원점 위치 참고입니다. 그림은 원점을 이미 중앙으로 옮긴 상태이며, Bevel도 표시돼 있습니다. 본문에서는 중앙 끝면 제거 후 Mirror부터 추가합니다.

Join은 부품을 하나의 Mesh 오브젝트로 묶습니다. 부품끼리 겹친 곳을 자동 용접하거나 Boolean으로 합치는 기능은 아닙니다. 다른 부품의 Modifier도 모두 합쳐지는 것은 아니므로, 프레임 Modifier는 Join 뒤에 추가합니다.

Location에 0을 직접 입력하는 것으로 원점을 옮기지는 마세요. 그러면 프레임 자체가 이동합니다. Origin to 3D Cursor는 보이는 Mesh를 유지하면서 원점만 옮깁니다.

원점 X가 마이너스 1.05미터여서 Mirror가 겹치는 잘못된 예시
원점 X가 -1.05인 잘못된 대칭 예시입니다. 이 실습의 회전 0 조건에서 X 대칭면이 의자 중앙에서 벗어나 오른쪽 복제본도 왼쪽으로 치우칩니다.

5. Mirror를 먼저 추가하기

프레임을 선택하고 Properties의 렌치 탭에서 Add Modifier → Generate → Mirror를 추가합니다. 아래 조건을 맞춥니다.

  • Axis: X만 켜기 — Y와 Z는 끕니다.
  • Mirror Object: 비워두기 — 프레임 자체의 원점과 로컬 축을 사용합니다.
  • Bisect: 끄기 — 이미 왼쪽 반만 만들었으므로 추가 절단은 쓰지 않습니다.
  • Merge 켜기, Merge Distance 0.001
  • Clipping 켜기
Blender Mirror Modifier의 X축 Clipping Merge 설정 강조 화면
X·Clipping·Merge 설정 위치 참고입니다. 그림의 Bevel → Mirror 순서는 이전 방식입니다. 본문에서는 Mirror를 위, Bevel을 아래에 놓습니다.

Mirror는 원점을 지나는 로컬 X=0 평면을 대칭면으로 사용합니다. 이 파일은 Rotation 0·Scale 1·원점 0이므로 그 면이 월드 X=0과 일치합니다. 원점 위치만 맞더라도 축이 회전했거나 Mirror Object가 지정됐다면 결과가 달라질 수 있습니다.

Merge는 원본 점과 대칭 점을 거리 조건에 따라 합칩니다. 면이나 다른 부품 전체를 자동 정리하는 기능은 아닙니다. 이 실습에서는 가로대 끝점을 정확히 X=0에 두고 작은 0.001 값을 사용합니다.

Clipping은 Edit Mode 변형 중 대칭면을 통과하는 것을 막습니다. 중앙에 닿아 붙은 점은 반대쪽뿐 아니라 원래 쪽으로도 떨어져 나가지 못합니다. 멀리 떨어진 점을 모두 자동으로 중앙까지 당기는 기능은 아닙니다.

6. Mirror 아래에 Bevel 넣기

프레임의 Mirror 다음에 Bevel Modifier를 추가합니다. 목록 위에서 아래로 Mirror → Bevel이어야 합니다. 이전에 만든 Bevel이 위에 있다면 순서를 옮깁니다.

프레임은 Edges, Offset, Amount 0.035, Segments 3, Angle 30°, Profile Superellipse·Shape 0.5, Clamp Overlap 켜기로 설정합니다. 먼저 중앙을 연결하고 그 결과의 모서리를 다듬는 순서입니다.

Seat와 Backrest에는 각각 Bevel을 추가해 같은 조건에서 Amount를 0.07로 사용합니다. 좌판·등받이는 프레임과 별도이므로 Mirror를 넣지 않습니다. 재질·조명은 이번 기본 모델링과 구분합니다.

중앙 접합부를 별도로 비교한 결과

앞 가로대 반쪽 크기 1.05·0.20·0.20, 중앙 X=0, Bevel Offset 0.035·Segments 3·Angle 30°, Mirror X·Merge 0.001 조건에서 계산한 Mesh를 비교했습니다. 중앙 단면 폭은 X=0에서 Mesh 모서리와 교차하는 점들의 Y 범위로 측정했습니다.

조건중앙 Y 폭중앙 면
끝면 유지, Bevel → Mirror0.13불필요한 내부 면 1개 남음
끝면 유지, Mirror → Bevel0.20내부 면은 여전히 남음
끝면 제거, Mirror → Bevel0.20내부 면 없음

순서만 바꾸면 잘록한 모양은 줄일 수 있어도 내부 면까지 없어지지는 않았습니다. 중앙 끝면 제거와 Modifier 순서 보완을 함께 해야 합니다. 이 비교는 이번 큐브 가로대 조건의 재현이며 모든 모델에서 같은 수치가 나온다는 뜻은 아닙니다.

전체 프레임의 계산 결과 X 범위는 -1.175~1.175로 좌우가 같았습니다. 원점을 X=-1.05에 놓은 비교에서는 -2.10~0으로 왼쪽에 치우쳤습니다. 원점 이동 전후 원본 Mesh의 월드 위치가 유지되는 것도 확인했습니다.

Clipping 확인과 수정 가능한 상태로 저장하기

별도 재현에서 중앙 끝점에 Edit Mode 이동 +X 0.2와 -X 0.2를 각각 시도했습니다. Clipping을 켜면 두 경우 모두 X=0에 남았고, 끈 상태에서 +X 0.2를 주면 중앙을 넘어갔습니다. 이는 Blender 변형 연산으로 확인한 값이며 실제 키를 눌러 시험한 기록은 아닙니다.

직접 확인할 때는 프레임 Edit Mode에서 중앙 끝점만 선택하고, 비례 편집을 끈 상태로 살펴보세요. 시험 결과를 확정했다면 Edit → Undo로 되돌립니다. 확인 없이 다른 점까지 함께 움직이지 않습니다.

File → Save는 작업을 저장하는 동작이고 Modifier의 Apply는 효과를 실제 Mesh로 확정하는 동작입니다. 이번에는 Mirror와 Bevel을 Apply하지 않고 유지합니다. 그러면 원본 왼쪽을 수정할 때 대칭 결과도 갱신됩니다.

결과가 다를 때 확인할 곳

복제본이 겹치거나 오른쪽에 나타나지 않습니다

프레임을 선택했는지, Mirror 화면 표시·X 축·Mirror Object·회전 상태를 확인합니다. 원점이 틀렸다면 Object Mode에서 Cursor to World Origin → Origin to 3D Cursor 순서로 고칩니다. Location 0을 직접 덮어쓰는 것으로 복구하지 않습니다.

가로대 가운데가 갈라지거나 잘록합니다

중앙 끝면이 남았는지와 Mirror → Bevel 순서를 먼저 확인합니다. 그다음 중앙 끝점 X=0, Merge·Clipping과 거리 값을 대조하세요. 점을 정확히 정렬하지 않은 채 Merge Distance만 크게 올리지 않습니다.

Join 뒤 좌판이나 등받이까지 프레임에 들어갔습니다

Join을 Undo로 되돌리고 네 부품만 다시 선택합니다. Ctrl 추가 선택과 Shift 범위 선택을 구분하세요. 잘못 합친 상태에서 Mirror를 더 넣으면 원하지 않은 부품까지 대칭으로 복제됩니다.

10강 완료 기준과 응용

  • Mesh 오브젝트가 Seat, Backrest, Chair_Left_Half_Frame 세 개로 구분됩니다.
  • 프레임 원점 0·0·0, Rotation 0·0·0, Scale 1·1·1이며 좌우 위치가 대칭입니다.
  • 중앙 끝면이 제거됐고 Merge·Clipping이 켜져 있습니다.
  • 프레임 Modifier 순서는 Mirror → Bevel이며 Apply하지 않았습니다.
  • 구분되는 실습 파일에 저장했습니다.

응용은 복사한 실습 파일에서 Backrest 폭을 2.3으로 바꿔봅니다. 프레임은 별도이므로 대칭 기준이 유지돼야 합니다. 다리 바깥 면만 움직이는 것은 두께를 바꾸는 작업이기도 합니다. 다리 간격과 두께의 변화를 같은 것으로 보지 마세요.

다음 11강

11강에서는 책장 한 칸을 Array Modifier로 반복 배치하고 Count·Offset·Apply Scale의 관계를 확인합니다.

공식 자료와 재현 범위

공식 자료 확인·별도 재현: 2026년 10월 13일. Codex가 초기 장면에서 Python/bmesh로 부품·Join·Origin·Modifier 계산과 Edit Mode 변형을 확인했습니다. 기존 프로젝트와 환경설정은 바꾸지 않았습니다. 기존 그림은 입력란·형태·설정 참고이며 이번 재현에서 새로 촬영한 화면은 아닙니다.