問い合わせ 行 追加も成功
import bpy
from mathutils import Vector
zion_speed = 0.3 # 1秒あたりの移動距離(ブレンダー単位)
run_simultaneously = False # True なら同時移動、False なら順次移動
for a in range(11):
# 新しい球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=1)
sphere = bpy.context.object
# 初期位置のキーフレームを設定
sphere.location = Vector((a * 10 + 10, 0, 0))
sphere.keyframe_insert(data_path='location', frame=a * 10)
# 終了位置のキーフレームを設定
sphere.location = Vector((a * 10 + 10, 500, 0))
sphere.keyframe_insert(data_path='location', frame=500)
# 位置のキーフレームを設定
if run_simultaneously:
for i in range(101):
sphere.location = Vector((a * 10 + 10, i * zion_speed, 0))
sphere.keyframe_insert(data_path='location', frame=i)
else:
for i in range(a * 10, 101):
sphere.location = Vector((a * 10 + 10, (i - a * 10) * zion_speed, 0))
sphere.keyframe_insert(data_path='location', frame=i)
# アニメーションを再生
bpy.context.scene.frame_end = 500
bpy.ops.screen.animation_play()
成功 球体 移動開始 バラバラ
import bpy
from mathutils import Vector
zion_speed = 0.5 # 1秒あたりの移動距離(ブレンダー単位)
for a in range(11):
# 新しい球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=1)
sphere = bpy.context.object
# 初期位置のキーフレームを設定
sphere.location = Vector((a * 10 + 10, 0, 0))
sphere.keyframe_insert(data_path='location', frame=a * 10)
# 終了位置のキーフレームを設定
sphere.location = Vector((a * 10 + 10, 30, 0))
sphere.keyframe_insert(data_path='location', frame=100)
# 位置のキーフレームを設定
for i in range(101):
if i < a * 10:
continue
sphere.location = Vector((a * 10 + 10, (i - a * 10) * zion_speed, 0))
sphere.keyframe_insert(data_path='location', frame=i)
# アニメーションを再生
bpy.context.scene.frame_end = 100
bpy.ops.screen.animation_play()
# ビデオをレンダリング
bpy.context.scene.render.fps = 24
bpy.context.scene.render.image_settings.file_format = 'H264'
bpy.context.scene.render.filepath = '/Users/your_username/Downloads/output.mp4'
bpy.ops.render.render(animation=True)
初期位置を
(x,y,z) =(zion_x , 0,0)
終了位置を
(x,y,z) =(zion_x ,30,0) にして
このスクリプトでは、0から10までの整数aに対して、それぞれ位置を調整した球体を作成し、それぞれがアニメーションとして移動するように設定されています。
アニメーションのフレーム数は、それぞれの球体の終了位置に到達するために必要な時間に基づいて自動的に設定されています。また、ビデオをレンダリングするためのファイルパスも指定されています。
ただし、ファイルパスを使用する前に、あなた自身のユーザー名に変更する必要があります。また、レンダリングされたビデオの品質などの設定は、必要に応じて調整することができます。
a = 0 から 10 flame 後に
a =1 の球体を 移動開始させて
a = b なら b * 10 flmae 後に
この位置の球体が 移動開始する
-30,0,0 から -30,30,0 に移動する半径 1球体が
t=0から t=10で移動するアニメを
blender python で作る
同じように
(-30 + zion_add),0,0 から (-30 + zion_add ),30,0 に移動する半径 1球体が
t=0から t=10で移動するアニメを作る
zion_add = 10* nnn
nnn が 1から10に 数が1ずつ 増える
初期位置を
(x,y,z) =(zion_x , 0,0)
終了位置を
(x,y,z) =(zion_x , 0,0)
zion_x = a*10 +10
a= a +1 で 0から 10
にして 球体を 複数 作って アニメにして
import bpy
from mathutils import Vector
a = 0
while a <= 10:
# 新しい球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=1)
# キーフレームを設定
bpy.context.object.location = Vector((a * 10 + 10, 0, 0)) # 初期位置を設定
bpy.context.object.keyframe_insert(data_path='location', frame=a * 10) # 初期位置のキーフレームを設定
zion_speed = 0.5 # 1秒あたりの移動距離(ブレンダー単位)
for i in range(101):
bpy.context.scene.frame_set(i)
loc = Vector((a * 10 + 10, i * zion_speed, 0))
bpy.context.object.location = loc
bpy.context.object.keyframe_insert(data_path='location', frame=i) # 位置のキーフレームを設定
bpy.context.object.location = Vector((a * 10 + 10, -50, 0)) # 終了位置を設定
bpy.context.object.keyframe_insert(data_path='location', frame=100) # 終了位置のキーフレームを設定
a += 1
# アニメーションを再生
bpy.context.scene.frame_end = 100
bpy.ops.screen.animation_play()
# ビデオをレンダリング
bpy.context.scene.render.fps = 24
bpy.context.scene.render.image_settings.file_format = 'H264'
bpy.context.scene.render.filepath = '/Users/your_username/Downloads/output.mp4'
bpy.ops.render.render(animation=True)
import bpy
from mathutils import Vector
# 新しい球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=1)
# キーフレームを設定
bpy.context.object.location = Vector((0, 0, 0)) # 初期位置を設定
bpy.context.object.keyframe_insert(data_path='location', frame=0) # 初期位置のキーフレームを設定
zion_speed = 0.5 # 1秒あたりの移動距離(ブレンダー単位)
for i in range(101):
bpy.context.scene.frame_set(i)
loc = Vector((0, i * zion_speed, 0))
bpy.context.object.location = loc
bpy.context.object.keyframe_insert(data_path='location', frame=i) # 位置のキーフレームを設定
bpy.context.object.location = Vector((0, -50, 0)) # 終了位置を設定
bpy.context.object.keyframe_insert(data_path='location', frame=100) # 終了位置のキーフレームを設定
# アニメーションを再生
bpy.context.scene.frame_end = 100
bpy.ops.screen.animation_play()
# ビデオをレンダリング
bpy.context.scene.render.fps = 24
bpy.context.scene.render.image_settings.file_format = 'H264'
bpy.context.scene.render.filepath = '/Users/your_username/Downloads/output.mp4'
bpy.ops.render.render(animation=True)
import bpy
from mathutils import Vector
# 新しい球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=1)
# キーフレームを設定
bpy.context.object.location = Vector((0, 0, 0)) # 初期位置を設定
bpy.context.object.keyframe_insert(data_path='location', frame=0) # 初期位置のキーフレームを設定
bpy.context.object.location = Vector((0, -30, 0)) # 終了位置を設定
bpy.context.object.keyframe_insert(data_path='location', frame=500) # 終了位置のキーフレームを設定
# アニメーションを再生
bpy.ops.screen.animation_play()
この球体が 距離 10 動いたときに
(-40, 50, 0) から動き出す半径1の球体 作成
end_location = (0, -30, 0) へ
" "Eye_Sphere_0"" の速度と 同じ速度で移動
"Eye_Sphere_-40 " と x軸の位置で 名前を付けて
(-50, 50, 0) から動き出す半径2の球体 作成
(50, 50, 0) に 10秒で 到着するアニメを作る
t=0 出発
t=10 到着
同様に
(-50, 50, 0) から動き出す半径1の球体 作成
(50, -50, 0) に 10秒で 到着するアニメを作る
t=0 出発
t=10 到着
(-50, 40, 0) から動き出す半径1の球体 作成
(50, -40, 0) に 10秒で 到着するアニメを作る
t=1 出発
t=11 到着
同じように
(-50, y, 0) から動き出す半径1の球体 作成
で yの 数値を10増やし
tの数値を 1 増やす
アニメを作って
y= -50 から 50 で 増やす間隔は10
import bpy
# 新しいシーンを作成
bpy.ops.scene.new()
# 球体を作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=1)
# 球体のオブジェクト名を変更
bpy.context.object.name = "Eye_Sphere_0"
# 初期位置を設定
bpy.context.object.location = (-50, 50, 0)
# 10フレーム後の位置を設定
end_frame = 10
end_location = (0, -30, 0)
bpy.context.object.keyframe_insert(data_path="location", frame=end_frame)
bpy.context.object.location = end_location
bpy.context.object.keyframe_insert(data_path="location", frame=end_frame*10)
# ゆっくりと移動するように設定
zionspeed = 0.5
for curve in bpy.context.object.animation_data.action.fcurves:
for kf in curve.keyframe_points:
kf.co.x /= zionspeed
# カメラを追加
bpy.ops.object.camera_add()
bpy.context.scene.camera = bpy.context.object
bpy.context.object.location = (0, 0, 10)
bpy.context.object.rotation_euler = (0, 0, 0)