Communitygithub.com

Blender 5.2 자동화, Cycles 최적화 및 비디오 워크플로우

Blender 5.2+에서 Python을 통한 자동화, 고성능 Cycles GPU 렌더(OptiX, 노이즈 제거, Fast GI), API 변경 사항(컴포지팅 노드 그룹, media_type VIDEO) 대응, 애니메이션 MP4/H.264 렌더링을 위한 스킬입니다.

Blender 5.2 자동화, Cycles 최적화 및 비디오 워크플로우란 무엇인가요?

이 스킬은 Blender 5.2+ 환경에서 Python을 사용하여 Blender를 자동화하고, Cycles 렌더러로 고성능 GPU 렌더링을 수행하며, 애니메이션을 MP4/H.264 비디오로 출력하는 방법을 제공합니다. 주요 기능으로는 Socket IPC를 통한 대화형 세션 제어(포트 127.0.0.1:9876), 헤드리스 CLI 렌더링을 통한 효율적인 애니메이션 처리, Blender 5.2의 API 변경 사항(media_type 'VIDEO' 설정, compositing_node_group 사용)에 대한 대응 코드를 포함합니다. Cycles 렌더링 최적화를 위해 OptiX ray tracing, Fast GI, AI 노이즈 제거(OPTIX denoiser), 샘플 수 최소화(10-12 샘플) 등을 설정하여 렌더 시간을 최대 16배 단축(약 56초 → 3초)할 수 있습니다. 또한 유기적인 눈꺼풀 애니메이션(Shape Keys 사용), 절차적 연기/소용돌이 파티클 생성(bmesh 기반) 등의 모델링 및 애니메이션 패턴을 제공하며, 전체 렌더 전에 단일 프레임 테스트와 짧은 CLI 렌더 테스트를 통한 검증 절차를 권장합니다. 이 스킬은 Claude Code, Cursor, Codex와 같은 AI 에이전트와 함께 사용하도록 설계되었습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Pingwink/skill/tree/HEAD/skills/blender-cycles-video-workflow

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Blender 5.2 자동화, Cycles 최적화 및 비디오 워크플로우은(는) 무엇을 하나요?

이 가이드(스킬)는 Blender 5.2에서 모델링, 애니메이션 및 장면 렌더링을 통해 검증된 절차, 최적화 구성 및 코드 패턴을 포함합니다.


1. 통신 및 렌더링 아키텍처

A. 대화형 세션 제어 (Socket IPC)

대화형 모델링, 재질 수정 및 테스트 프레임을 위해 소켓 클라이언트를 사용하세요.

  • 포트: 127.0.0.1:9876 (Blender MCP 플러그인 / 소켓 브리지)
  • 프로토콜: Null 바이트 \0로 종료되는 JSON ({"type": "execute", "code": "...", "strict_json": true})

B. 백그라운드 애니메이션 렌더링 (Headless CLI)

원칙: 긴 애니메이션은 소켓을 통해 렌더링하지 마십시오(GUI 중단 또는 시간 초과 위험). 장면을 .blend 파일로 저장하고 전용 CLI 프로세스를 백그라운드에서 실행하세요.

& "C:\Program Files\Blender Foundation\Blender 5.2\blender.exe" -b "sciezka\do\projektu.blend" -s 1 -e 108 -a
  • 장점: 15-20% 더 빠른 렌더링(OpenGL/뷰포트 오버헤드 없음), stdout에 프레임별 진행률 스트리밍, 인터페이스 차단 없음.

2. Blender 5.2+의 주요 API 변경 사항

A. FFMPEG / MP4로 비디오 내보내기

Blender 5.2에서 file_format = 'FFMPEG'를 기본 설정에 직접 할당하면 TypeError가 발생합니다. 먼저 media_type을 설정해야 합니다.

import bpy

scene = bpy.context.scene
ims = scene.render.image_settings

# 1. Blender 5.2에서 비디오 포맷을 선택하기 전에 필요:
ims.media_type = 'VIDEO'
ims.file_format = 'FFMPEG'

# 2. 컨테이너 및 코덱 구성:
scene.render.ffmpeg.format = 'MPEG4'
scene.render.ffmpeg.codec = 'H264'
scene.render.ffmpeg.constant_rate_factor = 'HIGH'
scene.render.ffmpeg.ffmpeg_preset = 'REALTIME' # 옵션: 'BEST', 'GOOD', 'REALTIME'

B. 컴포지터 (Compositing Node Group)

Blender 5.2는 이전 scene.node_tree 대신 compositing_node_group을 도입했으며, CompositorNodeComposite 대신 NodeGroupOutput을 사용합니다.

scene = bpy.context.scene
scene.use_nodes = True

ng = scene.compositing_node_group
if not ng:
    ng = bpy.data.node_groups.new(name="Compositing", type='CompositorNodeTree')
    scene.compositing_node_group = ng

# 입출력 생성
rl = ng.nodes.new('CompositorNodeRLayers')
glare = ng.nodes.new('CompositorNodeGlare')
out = ng.nodes.new('NodeGroupOutput')

# Blender 5.2에서 Glare 매개변수는 객체 속성이 아닌 소켓입니다:
glare.inputs['Type'].default_value = 'Fog Glow'
glare.inputs['Threshold'].default_value = 0.55
glare.inputs['Size'].default_value = 7.0
glare.inputs['Strength'].default_value = 0.8

3. Cycles 극한 최적화 (16배 빠른 GPU 렌더)

스튜디오 품질을 유지하면서 프레임당 렌더 시간을 약 56초에서 3초로 줄이는 구성:

import bpy

scene = bpy.context.scene
scene.render.engine = 'CYCLES'

# 1. OptiX Ray Tracing 및 GPU 설정
cpref = bpy.context.preferences.addons['cycles'].preferences
cpref.compute_device_type = 'OPTIX'
cpref.get_devices()

# NVIDIA 그래픽 카드만 활성화 (느린 CPU 비활성화)
for device in cpref.devices:
    if device.type == 'OPTIX' and 'GeForce' in device.name:
        device.use = True
    else:
        device.use = False

cycles = scene.cycles
cycles.device = 'GPU'

# 2. AI 노이즈 제거를 사용한 지능형 샘플링
cycles.samples = 10                  # OptiX Denoiser 사용 시 10-12 샘플이면 충분!
cycles.use_denoising = True
cycles.denoiser = 'OPTIX'

# 3. Fast GI 및 광선 반사 제한
cycles.use_fast_gi = True
cycles.max_bounces = 4
cycles.diffuse_bounces = 2
cycles.glossy_bounces = 2
cycles.transmission_bounces = 2
cycles.volume_bounces = 1
cycles.transparent_max_bounces = 4
cycles.caustics_reflective = False
cycles.caustics_refractive = False

# 4. 프레임 간 형상 데이터 재사용
scene.render.use_persistent_data = True

4. 모델링 및 애니메이션 패턴

A. 유기적 눈꺼풀 (Shape Keys + 사각 프로필)

  • 눈의 타원을 유지하면서 위 눈꺼풀 가장자리를 아래쪽으로 변형: closed_z = -h_bot * math.sqrt(max(0.0, 1.0 - (x / w_eye)**2))
  • 주름(crease)과 눈을 감을 때 눈알의 미세한 회전 움직임을 동시에 애니메이션하여 피곤하고 자연스러운 표정을 만듭니다.
  • 부드러운 가속 및 감속을 위해 EASE_IN_OUT과 함께 BEZIER 보간을 사용하세요.

B. 절차적 연기 및 소용돌이 파티클

  • bmesh를 사용하여 나선형 띠 생성: radius = r_base + delta * t, spiral_angle = base_angle + t * turns * pi.
  • ColorRamp에서 혼합된 ShaderNodeTexNoise를 기반으로 투명도가 있는 Principled BSDF 재질을 사용합니다.
  • interpolation = 'LINEAR'(각도 0에서 360°의 배수까지)로 회전을 반복하여 파티클의 움직임이 균일하고 반복 가능하게 만듭니다.

5. 전체 렌더 전 검증 절차

  1. 항상 테스트 프레임 1개를 열린 객체로, 1개를 닫힌/최대 변형 상태로 렌더링하세요.
  2. 단일 프레임 시간 측정: 애니메이션 시간 = 프레임 수 * 단일 프레임 시간
  3. 짧은 CLI 렌더(2프레임, -s 1 -e 2 -a)를 테스트하여 비디오 파일 기록의 정확성을 확인하세요.

관련 스킬