2023年4月8日土曜日

再生anime 可能 円錐からトーラス改良中

import bpy

import math

from mathutils import Vector


# Set target location

target_location = Vector((0, 0, 60))


# Set initial locations

initial_locations = [Vector((0, 0, -30)), Vector((0, 10, -30)), Vector((10, 0, -30)), Vector((0, -10, -30)), Vector((-10, 0, -30))]


# Set torus properties

torus_major_radius = 30

torus_minor_radius = 10


# 初期位置との距離から速度を計算する

chousei_kijyun = 30

distances = [math.sqrt(sum([(a - b) ** 2 for a, b in zip(loc, target_location)])) for loc in initial_locations]

speeds = [0.1 * distance / chousei_kijyun if distance > 0 else 0 for distance in distances]


# Create torus objects and set locations

for i, initial_location in enumerate(initial_locations):

    bpy.ops.mesh.primitive_torus_add(major_radius=torus_major_radius, minor_radius=torus_minor_radius)

    torus = bpy.context.object

    torus.location = initial_location


    # Set animation keyframes

    last_frame = 600

    for frame in range(last_frame+1):

        distance = (target_location - torus.location).length

        if distance > 0.01:

            direction = (target_location - torus.location).normalized()

            torus.location += direction * min(speeds[i], distance)

            torus.keyframe_insert(data_path="location", frame=frame)


改良中 y=-30 中心 円周への球体36個

できた y= -30 中心で z=0平面移動  import bpy import math zion_collection_name = "線路レール 観察者" # コレクションを作成する col = bpy.data.collections.new(zio...