# 斜め上 スタート
import bpy
from math import sin, cos, pi
zion_object_name = "幻想 斜め 速度"
# 設定可能な変数
start_pos = (0, 0, 30) # 開始位置
end_pos = (-30, 0, 0) # 終了位置
radius = 2.0 # 半径
animation_frames = 600 # アニメーションの再生時間(フレーム数)
sokudo_chousei =1.41
distance_per_frame = 0.1 * sokudo_chousei # 1フレームあたりに進む距離
# 球体を作成する
bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, enter_editmode=False, align='WORLD', location=start_pos)
sphere = bpy.context.object
sphere.name = zion_object_name # オブジェクトの名前を変更
# アニメーションを再生するたびに呼び出される関数
def animate_sphere(scene):
global sphere, distance_per_frame
# 現在のフレームにおける球体の位置を計算する
frame = scene.frame_current
pos_x = start_pos[0] - ((start_pos[0] - end_pos[0]) / animation_frames) * frame
pos_y = start_pos[1] - ((start_pos[1] - end_pos[1]) / animation_frames) * frame
pos_z = start_pos[2] - ((start_pos[2] - end_pos[2]) / animation_frames) * frame
sphere.location = (pos_x, pos_y, pos_z)
# フレーム更新のコールバック関数を登録する
bpy.app.handlers.frame_change_pre.append(animate_sphere)
# アニメーションの再生時間を設定する
bpy.context.scene.frame_end = animation_frames
# スクリプトを実行する前にフレームを初期化する
bpy.context.scene.frame_set(0)
# 水平地面
import bpy
from math import sin, cos, pi
zion_object_name = "リアル水平 速度"
# 設定可能な変数
start_pos = (0, 0, 0) # 開始位置
end_pos = (-30, 0, 0) # 終了位置
radius = 2.0 # 半径
animation_frames = 600 # アニメーションの再生時間(フレーム数)
sokudo_chousei =1.0
distance_per_frame = 0.1 * sokudo_chousei # 1フレームあたりに進む距離
# 球体を作成する
bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, enter_editmode=False, align='WORLD', location=start_pos)
sphere = bpy.context.object
sphere.name = zion_object_name # オブジェクトの名前を変更
# アニメーションを再生するたびに呼び出される関数
def animate_sphere(scene):
global sphere, distance_per_frame
# 現在のフレームにおける球体の位置を計算する
frame = scene.frame_current
pos_x = start_pos[0] - ((start_pos[0] - end_pos[0]) / animation_frames) * frame
pos_y = start_pos[1] - ((start_pos[1] - end_pos[1]) / animation_frames) * frame
pos_z = start_pos[2] - ((start_pos[2] - end_pos[2]) / animation_frames) * frame
sphere.location = (pos_x, pos_y, pos_z)
# フレーム更新のコールバック関数を登録する
bpy.app.handlers.frame_change_pre.append(animate_sphere)
# アニメーションの再生時間を設定する
bpy.context.scene.frame_end = animation_frames
# スクリプトを実行する前にフレームを初期化する
bpy.context.scene.frame_set(0)
# リアル斜め 速度
import bpy
from math import sin, cos, pi
zion_object_name = "リアル斜め 速度 "
# 設定可能な変数
start_pos = (0, 0, 30) # 開始位置
end_pos = (-30, 0, 0) # 終了位置
radius = 2.0 # 半径
animation_frames = 600 # アニメーションの再生時間(フレーム数)
sokudo_chousei =1.0
distance_per_frame = 0.1 * sokudo_chousei # 1フレームあたりに進む距離
# 球体を作成する
bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, enter_editmode=False, align='WORLD', location=start_pos)
sphere = bpy.context.object
sphere.name = zion_object_name # オブジェクトの名前を変更
# アニメーションを再生するたびに呼び出される関数
def animate_sphere(scene):
global sphere, distance_per_frame
# 現在のフレームにおける球体の位置を計算する
frame = scene.frame_current
pos_x = start_pos[0] - ((start_pos[0] - end_pos[0]) / animation_frames) * frame
pos_y = start_pos[1] - ((start_pos[1] - end_pos[1]) / animation_frames) * frame
pos_z = start_pos[2] - ((start_pos[2] - end_pos[2]) / animation_frames) * frame
sphere.location = (pos_x, pos_y, pos_z)
# フレーム更新のコールバック関数を登録する
bpy.app.handlers.frame_change_pre.append(animate_sphere)
# アニメーションの再生時間を設定する
bpy.context.scene.frame_end = animation_frames
# スクリプトを実行する前にフレームを初期化する
bpy.context.scene.frame_set(0)