2023年10月3日火曜日

20231004 選択したオブジェクトを回転させる













blender python
 選択したオブジェクトを回転させる








このスクリプトでは、rotation_timeを10秒に設定しています。これにより、1回転するのに10秒かかり、30秒のアニメーション内で3回転します。適宜この値を変更して、希望するアニメーション速度に調整してください。


import bpy
import math

# ユーザーが選択したオブジェクトを取得
selected_objects = bpy.context.selected_objects

# アニメーションの長さ(秒)
animation_length = 30

# 1回転するのにかかる時間(秒)
rotation_time = 10

# 1秒あたりの回転角度を計算
rotation_angle_per_sec = 360 / rotation_time

# アニメーションを設定
for obj in selected_objects:
    # アクティブなオブジェクトに設定
    bpy.context.view_layer.objects.active = obj
    
    # 初期フレームを設定
    bpy.context.scene.frame_start = 1
    
    # アニメーションの最終フレームを設定
    bpy.context.scene.frame_end = int(animation_length * bpy.context.scene.render.fps)
    
    # 回転のキーフレームを設定
    obj.rotation_euler = (0, math.radians(0), 0)
    obj.keyframe_insert(data_path="rotation_euler", frame=1)
    obj.rotation_euler = (0, math.radians(rotation_angle_per_sec * animation_length), 0)
    obj.keyframe_insert(data_path="rotation_euler", frame=bpy.context.scene.frame_end)