mcpField
D
dolly-rotate

dolly-rotate

github.com/kevinbadiクリエイティブ・メディア210144 回インストール30 週間前に更新
リポジトリ

dolly-rotate について

dolly-rotate は、被写体に近づきながら周囲を回転する Blender カメラアニメーション用スキルです。カメラや時間のパラメーターを設定し、フレームをレンダリングして動画にエンコードします。

主な機能

  1. 01ドリーと回転を組み合わせた動き
  2. 02時間とフレームレートの調整
  3. 03回転角度とカメラ距離の指定
  4. 04カメラの高さ調整
  5. 05PNG フレームのレンダリング手順
  6. 06ProRes 4444 のエンコードコマンド

活用シーン

  1. 01製品を見せるスイープショットの作成
  2. 02オブジェクト周囲を進むカメラアニメーション

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/kevinbadi/blender-skills --skill dolly-rotate

インストール後、Claude Code で/dolly-rotateを入力して読み込まれたか確認します。

詳細

ドリー移動+カメラ回転アニメーション

カメラを前方にドリー移動させながら、製品の周囲を同時に回転させます。単純なズームや静止した周回よりも、引き込まれるようなダイナミックなスイープの演出を作れます。

使用するタイミング

  • 「ダイナミックな」ショットや「スイープする」ショットを求めている場合
  • 「ドリー移動」「移動しながら回転」「スイープするように見せる」と言っている場合
  • シンプルなターンテーブルよりも映画的な演出にしたい場合

パラメーター

パラメーターデフォルト説明
duration5動画の長さ(秒)
fps241 秒あたりのフレーム数
rotation_degrees90ドリー移動中の回転角度
start_distance4.0開始時の距離
end_distance2.5終了時の距離
start_height2.0開始時の高さ
end_height1.5終了時の高さ

手順

ステップ 1:カメラリグを設定する
import bpy, math

bpy.ops.object.empty_add(type='PLAIN_AXES', location=(0, 0, 0.05))
tgt = bpy.context.active_object
tgt.name = 'DollyTarget'

bpy.ops.object.camera_add(location=(2.5, -START_DISTANCE, START_HEIGHT))
cam = bpy.context.active_object
cam.name = 'DollyCam'
cam.data.lens = 40

trk = cam.constraints.new(type='TRACK_TO')
trk.target = tgt
trk.track_axis = 'TRACK_NEGATIVE_Z'
trk.up_axis = 'UP_Y'

# Parent camera to target for orbital rotation
bpy.ops.object.select_all(action='DESELECT')
cam.select_set(True)
tgt.select_set(True)
bpy.context.view_layer.objects.active = tgt
bpy.ops.object.parent_set(type='OBJECT', keep_transform=True)

bpy.context.scene.camera = cam
ステップ 2:ドリー移動+回転をアニメーション化する
TOTAL_FRAMES = DURATION * FPS

scene = bpy.context.scene
scene.frame_start = 1
scene.frame_end = TOTAL_FRAMES
scene.render.fps = FPS

# Frame 1: start position
tgt.rotation_euler = (0, 0, 0)
tgt.keyframe_insert(data_path='rotation_euler', frame=1)
cam.location = (2.5, -START_DISTANCE, START_HEIGHT)
cam.keyframe_insert(data_path='location', frame=1)
cam.data.lens = 40
cam.data.keyframe_insert(data_path='lens', frame=1)

# End: rotated + closer
tgt.rotation_euler = (0, 0, math.radians(ROTATION_DEGREES))
tgt.keyframe_insert(data_path='rotation_euler', frame=TOTAL_FRAMES)
cam.location = (1.5, -END_DISTANCE, END_HEIGHT)
cam.keyframe_insert(data_path='location', frame=TOTAL_FRAMES)
cam.data.lens = 50
cam.data.keyframe_insert(data_path='lens', frame=TOTAL_FRAMES)

# Default BEZIER interpolation for smooth cinematic feel
ステップ 3:レンダリングしてエンコードする

ターンテーブルと同じく、Cycles で PNG シーケンスを作成し、ProRes 4444 にエンコードします。

ffmpeg -y -framerate 24 \
  -i "~/Desktop/Blender Videos/dolly_rotate_frames/%04d.png" \
  -c:v prores_ks -profile:v 4444 -pix_fmt yuva444p10le \
  "~/Desktop/Blender Videos/dolly_rotate.mov"

コメント