BlenderBlender 기초

Blender 파이썬 자동화: 반복 작업을 스크립트로

버튼으로 하던 일을 파이썬 몇 줄로 맡기는 법을 bpy의 세 기둥과 짧은 예시로 배웁니다.

AZTechnology16분 읽기
Blender Python API 문서의 Quickstart 페이지 (Blender 공식 사이트 화면 캡처)

기준: Blender 5.2 LTS 공식 Python API 문서와 매뉴얼(영어 화면, 기본 단축키)

Blender에서 버튼으로 바꿀 수 있는 설정은 거의 모두 파이썬(Python) 코드로도 바꿀 수 있습니다. 그래서 같은 클릭을 수십 번 반복해야 하는 일, 예를 들어 물체 50개를 줄 세우기, 여러 파일의 렌더 설정 맞추기, 밤새 렌더링 돌리기 같은 일은 짧은 스크립트(명령을 적어 둔 글)에 맡길 수 있습니다. 프로그래밍이 처음인 여러분도 따라 할 수 있게 썼습니다.

이 글을 마치면 아래를 할 수 있습니다.

  1. 스크립트를 돌리는 곳을 찾습니다.
  2. Blender 파이썬의 세 기둥(bpy.data, bpy.context, bpy.ops)을 구분합니다.
  3. 짧은 예시 세 개를 그대로 복사해 돌려 봅니다.

스크립트: 요리 레시피

손으로 작업하는 것은 요리를 매번 기억에 의존해 만드는 것과 같습니다. 스크립트는 그 과정을 레시피 카드로 적어 둔 것입니다. 한 번 적어 두면 Blender가 그 순서를 그대로, 몇 번이든, 실수 없이 따라 합니다. 재료 양(숫자)만 바꾸면 다른 결과도 쉽게 만들 수 있습니다.

스크립트로 할 수 있는 일 가운데 몇 가지는 이렇습니다.

  • 화면에서 바꿀 수 있는 모든 데이터(장면, 메시, 파티클 등) 편집
  • 도구를 원하는 설정으로 실행
  • 메뉴, 패널 같은 화면 요소 만들기
  • 새로운 도구 만들기

이 글은 첫 번째와 두 번째, 즉 이미 있는 기능을 자동으로 돌리는 것에 집중합니다.

시작 준비: 세 가지만 켜고 열기

  1. Scripting 작업 공간 열기: 화면 맨 위 탭에서 Scripting을 누르면 코드를 쓰는 텍스트 편집기(Text Editor)와 한 줄씩 시험하는 파이썬 콘솔(Python Console)이 함께 열립니다. 따로 화면을 꾸미지 말고 이 작업 공간을 쓰면 됩니다.
  2. Python Tooltips 켜기: Edit ‣ Preferences ‣ Interface에서 Developer Extras와 Python Tooltips를 켭니다. 그러면 버튼에 마우스를 올렸을 때 그 설정의 파이썬 이름이 함께 보입니다. "이 버튼은 코드로 뭐라고 부르지?"라는 질문에 Blender가 직접 답해 줍니다.
  3. Info 창 보기: 도구를 쓰면 Info 창에 그 동작이 파이썬 명령 형태로 기록됩니다. 모든 동작이 남지는 않고 일부 도구(Blender는 이를 "연산자"라고 부릅니다)만 기록됩니다. 그래도 처음 코드를 만들 때 좋은 힌트가 됩니다.

스크립트를 실행하는 곳은 두 군데입니다.

어디서어떻게좋은 점
파이썬 콘솔한 줄 입력 후 Enter바로 결과가 보임, Tab으로 자동완성
텍스트 편집기여러 줄 작성 후 Run Script(Alt+P)저장해 두고 다시 쓸 수 있음

텍스트 편집기의 Templates 메뉴에는 공식 예시 스크립트가 많이 들어 있어 참고하기 좋습니다.

Blender 파이썬의 세 기둥: data, context, ops

Blender의 파이썬 모듈 이름은 bpy입니다. 처음에는 아래 세 가지만 알면 됩니다.

앞의 레시피 비유를 이어 가겠습니다. 부엌에는 재료 창고가 있고, 지금 도마 위에 올린 재료가 있고, 칼과 냄비 같은 조리 도구가 있습니다.

이름쉬운 뜻레시피 비유예
bpy.data파일 안의 모든 데이터재료 창고bpy.data.objects["Cube"]
bpy.context지금 선택하거나 보고 있는 것지금 도마 위에 올린 재료bpy.context.object
bpy.ops버튼·메뉴에 있는 도구칼, 냄비 같은 조리 도구bpy.ops.mesh.primitive_cube_add()

아래 규칙을 함께 알아 두면 오류를 줄일 수 있습니다.

  • bpy.data의 항목은 이름(["Cube"])이나 번호([0])로 꺼낼 수 있지만, 번호는 작업 중에 바뀔 수 있습니다. 이름을 쓰는 편이 안전합니다.
  • 새 데이터는 bpy.data.meshes 같은 목록의 new()로 만들고(예: bpy.data.meshes.new("이름")), 같은 목록의 remove()로 지웁니다.
  • bpy.context는 읽기 전용입니다. bpy.context.active_object = obj는 오류가 나고, 활성 물체를 바꾸려면 bpy.context.view_layer.objects.active = obj를 씁니다.
  • bpy.ops의 도구는 알맞은 상황(모드, 창)에서만 돌아갑니다. 조건이 안 맞으면 "context is incorrect" 오류가 납니다. 이 오류가 나면 먼저 지금 모드(Object/Edit)와 마우스가 올라간 창이 맞는지 확인하세요. 코드 안에서 미리 확인하려면 도구 이름 뒤에 .poll()을 붙입니다. 예를 들어 bpy.ops.object.mode_set.poll()은 지금 모드를 바꿀 수 있으면 True, 아니면 False를 돌려줍니다.

예시 1: 한 줄로 해상도 % 바꾸기

파이썬 콘솔에 아래 한 줄을 입력해 보세요. 파이썬 콘솔에는 bpy가 미리 불러와져 있어서 import bpy 없이 바로 쓸 수 있습니다. 반면 텍스트 편집기에서 돌리는 스크립트는 예시 2처럼 첫 줄에 import bpy를 적는 것이 기본입니다.

bpy.context.scene.render.resolution_percentage = 50

속성 편집기 출력(Output) 탭의 Resolution % 칸이 50으로 바뀝니다(새 파일의 기본 1920×1080이라면 960×540으로 렌더됩니다). render.resolution_percentage는 버튼 툴팁에 보이는 이름과 같습니다. 이 설정이 무엇인지는 렌더 설정 입문에서 설명합니다.

예시 2: 상자 5개를 줄 세우고 차례로 뛰어오르게 하기

텍스트 편집기에서 New를 누르고 아래 코드를 붙여 넣은 뒤 Run Script를 누릅니다.

import bpy

# 기본 장면의 큰 Cube가 있으면 먼저 지운다 (새 상자와 겹치지 않게)
if "Cube" in bpy.data.objects:
    bpy.data.objects.remove(bpy.data.objects["Cube"])

for i in range(5):
    bpy.ops.mesh.primitive_cube_add(size=1, location=(i * 2, 0, 0))
    cube = bpy.context.object          # 방금 만든 상자
    cube.name = f"Box_{i}"
    start = 1 + i * 5                  # 상자마다 5프레임씩 늦게 시작
    cube.keyframe_insert(data_path="location", frame=start)        # 바닥
    cube.location.z = 2                                            # 2m 위로
    cube.keyframe_insert(data_path="location", frame=start + 10)   # 꼭대기
    cube.location.z = 0                                            # 다시 바닥으로
    cube.keyframe_insert(data_path="location", frame=start + 20)   # 착지

한 줄씩 풀면 이렇습니다.

  • if "Cube" in bpy.data.objects: 새 파일에 처음부터 있는 큰 Cube(한 변 2m, 원점)를 지웁니다. 이 줄이 없으면 첫 상자가 그 Cube 안에 파묻혀 상자가 네 개처럼 보입니다.
  • for i in range(5): 아래 내용을 5번 반복합니다(i는 0, 1, 2, 3, 4).
  • primitive_cube_add: 메뉴의 Add ‣ Mesh ‣ Cube와 같은 도구입니다. 한 변 1m 상자를 2m 간격으로 놓습니다.
  • keyframe_insert(data_path="location", ...): 키프레임을 넣는 함수입니다. 여기서는 위치에만 키를 넣습니다(화면에서 I를 누르면 보통 위치·회전·크기에 한꺼번에 키가 들어가는 것과 다릅니다).
  • 키는 상자마다 세 개입니다: 바닥 → 10프레임 뒤 2m 위 → 다시 10프레임 뒤 바닥.

Space로 재생하면 상자들이 왼쪽부터 차례로 한 번씩 뛰어올랐다가 내려옵니다. 마지막 상자는 41프레임에 내려앉고, 그 뒤 재생 끝(기본 250프레임)까지는 모두 바닥에 멈춰 있습니다. 손으로 하면 상자마다 추가, 이동, 키 넣기를 반복해야 하지만, 여기서는 숫자 5를 50으로 바꾸기만 하면 됩니다.

같은 스크립트를 한 번 더 돌리면 Box_0.001처럼 이름이 붙은 상자가 겹쳐 생깁니다. 다시 돌리기 전에 먼저 만든 상자를 지우세요. Ctrl+Z로 되돌리거나, 3D 뷰포트에 마우스를 올리고 A(전체 선택) → X → Delete를 누르면 됩니다. A는 카메라와 조명까지 고르니, 둘을 남기려면 아웃라이너(Outliner)에서 Box_로 시작하는 것만 골라 지웁니다. 키프레임과 보간이 무엇인지는 Blender 키프레임 애니메이션 입문에서 다룹니다.

예시 3: 미리보기 설정을 한 번에 맞추기

여러 파일을 열 때마다 같은 렌더 설정을 넣는 일도 스크립트로 줄일 수 있습니다. 아래 파일을 preview_settings.py로 저장해 둡니다.

import bpy

render = bpy.context.scene.render
render.resolution_x = 1920
render.resolution_y = 1080
render.resolution_percentage = 50      # 테스트는 960x540 (1920x1080의 50%)
render.fps = 30
render.filepath = "//preview/frame_"   # // = blend 파일이 있는 폴더

이 설정 이름들은 모두 공식 API의 RenderSettings 문서에 있습니다. 최종 렌더링 때는 resolution_percentage만 100으로 올립니다. 작게 확인하고 최종본만 키우는 순서는 렌더 설정 입문에서 설명합니다.

저장한 preview_settings.py를 다른 blend 파일에 쓰는 방법은 두 가지입니다. 그 파일을 연 뒤 텍스트 편집기의 Open으로 스크립트를 불러와 Run Script를 누르거나, 바로 아래 명령줄 절처럼 -P로 실행합니다.

창 없이 돌리기: 명령줄과 배경 렌더링

스크립트는 Blender 창을 열지 않고도 돌릴 수 있습니다. 터미널(명령을 글자로 입력하는 창)에 이렇게 씁니다. 터미널이 낯설다면 GUI와 CLI, 무엇이 다를까를 먼저 읽어 보세요.

blender -b scene.blend -P preview_settings.py -f 1

위는 모양만 보여 주는 기본형입니다. Windows에서는 설치 프로그램이 Blender를 명령 검색 경로(PATH)에 넣지 않아서, blender라고만 치면 "인식되지 않는 명령" 오류가 나기 쉽습니다. 그럴 때는 blender 자리에 실행 파일의 전체 경로를 적습니다.

어디서blender 자리에 적을 것
Windows 명령 프롬프트(cmd)"C:\Program Files\Blender Foundation\Blender 5.2\blender.exe"
Windows PowerShell(Windows 11 기본)& "C:\Program Files\Blender Foundation\Blender 5.2\blender.exe" (앞에 &와 빈칸)
macOS 터미널/Applications/Blender.app/Contents/MacOS/Blender

폴더 이름의 버전 숫자(5.2)는 설치한 버전에 맞춥니다. scene.blend와 preview_settings.py도 터미널이 지금 있는 폴더에 없다면 전체 경로로 적습니다.

부분뜻
-b화면 없이 배경에서 실행
scene.blend열 파일
-P preview_settings.py이 파이썬 스크립트 실행
-f 11번 프레임 한 장만 렌더해 저장
-a시작~끝 프레임 전체를 애니메이션으로 렌더해 저장

처음에는 -f 1로 한 장만 시험하세요. -a는 장면의 시작부터 끝 프레임까지 모두 렌더하므로 새 파일 기준 250장을 만듭니다. 한 장이 원하는 대로 나오면 -f 1을 -a로 바꿉니다. 또 -P로 바꾼 설정은 이번 실행에만 쓰이고 blend 파일에 저장되지는 않습니다. 파일에 남기려면 Blender에서 파일을 열어 스크립트를 돌린 뒤 저장합니다.

주의할 점은 순서입니다. 인수는 적힌 순서대로 실행됩니다. 파일을 연 다음에 설정 스크립트를 돌리고, 그 다음에 렌더해야 합니다. 파일보다 설정을 먼저 적으면 파일을 열면서 설정이 덮어써집니다. 컴퓨터 사용이 적은 시간에 이렇게 맡겨 두면 다른 작업과 겹치지 않습니다.

안전하게 쓰기

파이썬은 할 수 있는 일에 제한이 없습니다. 그래서 믿을 수 있는 출처의 스크립트만 실행해야 합니다.

  • blend 파일 안의 스크립트 자동 실행은 기본으로 꺼져 있습니다. 파일을 열 때 실행 허락을 묻는 창이 뜨면, 출처를 모르는 파일이라면 무시(Ignore)를 고릅니다.
  • 환경설정(Preferences)의 Auto Run Python Scripts를 켜더라도 다운로드 폴더처럼 믿기 어려운 폴더는 예외로 둘 수 있습니다.
  • 인터넷에서 받은 코드는 실행 전에 내용을 읽어 보고, 중요한 파일은 복사본에서 먼저 시험합니다.

AI와 함께 스크립트 쓰기

요즘은 "상자 10개를 원형으로 놓는 Blender 파이썬 코드"처럼 AI에게 스크립트 초안을 부탁할 수도 있습니다. 이때도 위의 세 기둥과 공식 문서가 기준이 됩니다. AI가 쓴 코드가 오래된 API를 쓰면 오류가 날 수 있으니, 함수 이름을 공식 API 문서에서 찾아 확인하세요. AI가 Blender를 직접 다루게 하는 방식은 MCP란 무엇인가와 AI와 Blender, 작은 작업부터 함께 시작하기에서 이어서 볼 수 있습니다.

정리

항목내용
자동화할 수 있는 것버튼으로 바꾸는 거의 모든 설정과 도구
돌리는 곳파이썬 콘솔(한 줄), 텍스트 편집기(Alt+P), 명령줄(-b -P)
세 기둥bpy.data(데이터), bpy.context(지금 선택), bpy.ops(도구)
코드 이름 찾는 법Python Tooltips, Info 창, 공식 API 문서
조심할 점믿을 수 있는 스크립트만, 명령줄 인수 순서

함께 읽기

참고 자료

KEEP EXPLORING

다음으로 읽어보세요

Blender 설명서의 환경 설정 Get Extensions 화면 (공식 사이트 화면 캡처)Blender
Blender 기초13분 읽기

Blender 애드온·확장 기능 설치와 관리

Blender 4.2부터 애드온은 '확장(Extensions)'이라는 새 체계로 받습니다. 온라인 설치와 .zip 설치의 차이, 켜고 끄는 법, 안전하게 쓰는 법을 정리했습니다.

처음 켠 Blender 5.2 기본 화면 (Blender 화면 캡처)Blender
Blender 기초27분 읽기

Blender 입문 1장: 내 PC 확인부터 다운로드·설치까지

완전 초보를 위한 Blender 설치 안내. 공식 사이트에서 사양을 확인하고, 알맞은 파일을 골라 설치하고, 처음 켜서 버전까지 확인합니다.

Blender 첫 화면의 네 편집기: 3D 뷰포트, 아웃라이너, 속성, 타임라인 (Blender 화면 캡처)Blender
Blender 기초31분 읽기

Blender 입문 2장: 첫 화면 읽기와 시점 돌리기

완전 초보를 위한 Blender 화면 안내. 스플래시, 화면 세 층, 편집기 네 개, 작업 공간, 마우스·터치패드로 시점 돌리기와 길 잃었을 때 돌아오는 법을 배웁니다.

변환 도구를 켜 이동 화살표·회전 고리·크기 손잡이가 함께 나온 큐브 (Blender 화면 캡처)Blender
Blender 기초21분 읽기

Blender 입문 3장: 선택하고 옮기고 돌리고 키우기

완전 초보를 위한 Blender 기본 조작. 클릭·Shift·박스 선택, 이동·회전·크기 도구와 G·R·S, 축 고정과 숫자 입력, 값으로 확인하고 되돌리기까지 배웁니다.

평면, 구, 원숭이, 도넛, 원기둥, 큐브, 원뿔 등 기본 도형을 나란히 추가한 장면 (Blender 화면 캡처)Blender
Blender 기초21분 읽기

Blender 입문 4장: 물체 추가·삭제·복제와 실행 취소

완전 초보를 위한 Blender 물체 다루기. 3D 커서, Add 메뉴와 Shift+A, 기본 도형 10가지, 복제·삭제·숨기기, Ctrl+Z 실행 취소와 편집 모드 함정까지 배웁니다.

새 파일을 처음 저장할 때 뜨는 저장 창 (Blender 화면 캡처)Blender
Blender 기초26분 읽기

Blender 입문 5장: 저장과 실수 복구 — .blend 파일, 자동 저장, 되살리기

완전 초보를 위한 Blender 저장법. Ctrl+S로 .blend 파일 저장, 다시 열기와 최근 파일, 백업 .blend1, 자동 저장과 Recover Last Session, 텍스처 경로가 깨질 때 대처까지 배웁니다.