import bpy
import math
# 半径1の球体を作成し、初期位置を設定する
bpy.ops.mesh.primitive_uv_sphere_add(radius=1, enter_editmode=False, location=(-10, 0, 0))
# 球体オブジェクトへの参照を取得する
sphere = bpy.context.active_object
# アニメーションを設定する
animation_frames = 100 # 1秒あたり10フレームで10秒間のアニメーション
end_location = (10, 0, 0)
# 球体の位置のキーフレームを作成する
for i in range(animation_frames + 1):
current_location = (
sphere.location[0] + (end_location[0] - sphere.location[0]) * i / animation_frames,
sphere.location[1] + (end_location[1] - sphere.location[1]) * i / animation_frames,
sphere.location[2] + (end_location[2] - sphere.location[2]) * i / animation_frames
)
sphere.location = current_location
sphere.keyframe_insert(data_path="location", frame=i)
#2222222
import bpy
import math
# Set up scene and camera
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()
scene = bpy.context.scene
camera = bpy.data.cameras.new("Camera")
camera_obj = bpy.data.objects.new("Camera", camera)
camera_obj.location = (0, -20, 0)
camera_obj.rotation_euler = (math.pi/2, 0, 0)
scene.camera = camera_obj
# Set up sphere
bpy.ops.mesh.primitive_uv_sphere_add(radius=1, enter_editmode=False, location=(0, 0, -10))
sphere = bpy.context.selected_objects[0]
# Set up animation
animation_frames = 100 # 1 second at 10 frames per second, so 10 seconds in total
animation_start = 0
animation_end = 2 * animation_frames
# Add keyframes
for frame_num in range(animation_end + 1):
if frame_num < animation_frames:
sphere.location[2] = -10 + (frame_num / animation_frames) * 20
elif frame_num < 2 * animation_frames:
sphere.location[2] = 10 - ((frame_num - animation_frames) / animation_frames) * 20
else:
sphere.location[2] = -10
sphere.keyframe_insert(data_path="location", frame=frame_num)
# Set up playback
bpy.context.scene.frame_start = animation_start
bpy.context.scene.frame_end = animation_end
bpy.context.scene.frame_current = animation_start
#3333333
import bpy
import math
# Set up scene and camera
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()
scene = bpy.context.scene
camera = bpy.data.cameras.new("Camera")
camera_obj = bpy.data.objects.new("Camera", camera)
camera_obj.location = (0, -20, 0)
camera_obj.rotation_euler = (math.pi/2, 0, 0)
scene.camera = camera_obj
# Set up spheres
sphere1_loc = (-10, 0, 0)
sphere2_loc = (10, 0, 0)
sphere1 = bpy.ops.mesh.primitive_uv_sphere_add(radius=1, enter_editmode=False, location=sphere1_loc)
sphere2 = bpy.ops.mesh.primitive_uv_sphere_add(radius=0.5, enter_editmode=False, location=sphere1_loc)
sphere1 = bpy.context.selected_objects[0]
sphere2 = bpy.context.selected_objects[1]
# Set up animation
animation_frames = 100 # 1 second at 10 frames per second, so 10 seconds in total
animation_start = 0
animation_end = 2 * animation_frames
# Add keyframes for sphere1
for frame_num in range(animation_end + 1):
if frame_num < animation_frames:
sphere1.location[2] = -10 + (frame_num / animation_frames) * 20
elif frame_num < 2 * animation_frames:
sphere1.location[2] = 10 - ((frame_num - animation_frames) / animation_frames) * 20
else:
sphere1.location[2] = -10
sphere1.keyframe_insert(data_path="location", frame=frame_num)
# Add keyframes for sphere2
for frame_num in range(animation_end + 1):
if frame_num < animation_frames:
sphere2.location[1] = (frame_num / animation_frames) * 20 - 10
elif frame_num < 2 * animation_frames:
sphere2.location[1] = 10 - ((frame_num - animation_frames) / animation_frames) * 20
else:
sphere2.location[1] = -10
sphere2.keyframe_insert(data_path="location", frame=frame_num)
# Set up playback
bpy.context.scene.frame_start = animation_start
bpy.context.scene.frame_end = animation_end
bpy.context.scene.frame_current = animation_start
+10に到着したら 同じ速度で 戻って ー10まで行く 再度スタートする それを繰り返して
このスクリプトでは、元のスクリプトに追加して、球体が x = -10 から x = 10 に移動するだけでなく、同じ速度で戻って x = -10 に戻り、再度 x = 10 に向かうようになっています。アニメーションは、繰り返し再生されます。
アニメーションの速度を変更する場合は、元のスクリプトと同じく、animation_frames 変数を調整してください。また、アニメーションの長さは、2 * animation_frames フレームで定義されていますので、繰り返しの回数はこの値に依存します。
修正版のスクリプトでは、元のスクリプトに追加して、x = -10 から x = 10 に移動する球体に加えて、y 軸方向に半径 0.5 の球体を追加しました。球体は、元のスクリプトのように同じ速度で動きます。
また、球体が反転する際には、元のスクリプトのように location プロパティを調整して球体を移動させます。球体の y 座標の移動は、反転するときに正負を反転させることで実現しています。
アニメーションの速度を調整するには、animation_frames 変数を調整してください。また、アニメーションの繰り
Regenerate response
bbb
togetter.com/t/c2022meetzionad
togetter.com/t/b2022meetzionad
twitter 新着検索 Dürer & 測距儀
aaa
bbb
twitter zionadchat
twitter に追い出されたら 連絡先は Gettr https://gettr.com/user/zionadchat
twitter サブアカウント https://twitter.com/2022zionad
old page いいい
new page いいい
目次 2022の目次 単純トリック hatena zionadchat
いいいいいいいい