2023年3月25日土曜日

連番 001 光時計筒(つつ)

aaa













以下は製作中に 

黒板 代わりに使った ノートですので

ぐちゃぐちゃ 機能してないとこ あったり



配布用 光時計筒の移動とカメラアイ 改造20230325 修飾1














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
いいいいいいいい


2023年3月18日土曜日

Good 001土台 RGBA値を使用して 円 半径30を描く あと正方形20x20








import bpy
import math

# 新しいコレクションを作成
new_collection = bpy.data.collections.new("01dodai")
bpy.context.scene.collection.children.link(new_collection)

# マテリアルを作成
mat = bpy.data.materials.new("Green")
mat.diffuse_color = (0.39, 0.7, 0.5, 0.3)

# 円を作成
bpy.ops.mesh.primitive_circle_add(radius=30, fill_type='TRIFAN')
circle = bpy.context.object
circle.data.materials.append(mat)


# 古いコレクションを取得して、オブジェクトを新しいコレクションに移動
old_collection = bpy.data.collections.get("Collection")
if old_collection is not None:
    for obj in old_collection.objects:
        new_collection.objects.link(obj)

    # 古いコレクションを削除
    bpy.data.collections.remove(old_collection)






import bpy


# マテリアルを作成
mat = bpy.data.materials.new("Blue")
mat.diffuse_color = (0.0, 0.0, 1.0, 1.0)

# 正方形を作成
bpy.ops.mesh.primitive_plane_add(size=20)
square = bpy.context.object
square.data.materials.append(mat)

# オブジェクトを新しいコレクションに追加
new_collection.objects.link(square)





https://hp-html.jp/rgba/










# 新しいコレクションを作成
new_collection = bpy.data.collections.new("2022_zionad")
bpy.context.scene.collection.children.link(new_collection)

# 古いコレクションを取得して、オブジェクトを新しいコレクションに移動
old_collection = bpy.data.collections.get("Collection")
if old_collection is not None:
    for obj in old_collection.objects:
        new_collection.objects.link(obj)

    # 古いコレクションを削除
    bpy.data.collections.remove(old_collection)


正方形 描画のスクリプトの冒頭に これを入れて


あと 色変更 mat.diffuse_color = (1.0, 0.0, 1.0, 0.5)  


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
いいいいいいいい

20230319 sun 合体 リンク

aaa


Blender: アウトライナー(Outliner)内での操作
 

以下のように、コレクションのオブジェクトの表示/非表示を一括で切り替えることができます。

python
import bpy # コレクションを取得する collection = bpy.data.collections.get("zion cone50 line ittei sokudo to Y30") # コレクションが存在する場合 if collection: # コレクション内のオブジェクトの表示/非表示を切り替える for obj in collection.objects: obj.hide_viewport = not obj.hide_viewport

このスクリプトでは、bpy.data.collections.get()を使用して、名前が "zion cone50 line ittei sokudo to Y30" のコレクションを取得しています。if collection:を使用して、コレクションが存在する場合にのみ、コレクション内のオブジェクトの表示/非表示を切り替える処理を行っています。

for obj in collection.objects:を使用して、コレクション内のすべてのオブジェクトに対して、obj.hide_viewportを使用して、表示/非表示を切り替えることができます。また、not obj.hide_viewportを使用して、現在の状態と逆の状態に切り替えることができます。







import bpy

# 古いコレクションを削除
old_collection = bpy.data.collections.get("旧コレクション名")
if old_collection is not None:
    bpy.data.collections.remove(old_collection)

# 新しいコレクションを作成
new_collection = bpy.data.collections.new("2022_zionad")
bpy.context.scene.collection.children.link(new_collection)

 

import bpy

# 新しいコレクションを作成
new_collection = bpy.data.collections.new("2022_zionad")
bpy.context.scene.collection.children.link(new_collection)

# 古いコレクションを取得して、オブジェクトを新しいコレクションに移動
old_collection = bpy.data.collections.get("Collection")
if old_collection is not None:
    for obj in old_collection.objects:
        new_collection.objects.link(obj)

    # 古いコレクションを削除
    bpy.data.collections.remove(old_collection)









10分の1 x軸から y=30へ  速度一定



import bpy
import random

# タグ名
tag_name = "zion cone50 line ittei sokudo to Y30"

# コレクションを取得する
collection = bpy.data.collections.get("zion cone50 line ittei sokudo to Y30")

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new("zion cone50 line ittei sokudo to Y30"
    bpy.context.scene.collection.children.link(collection)

# 円錐の半径と高さを設定
radius = 0.5
height = 1.0

for i in range(50):
    # 円錐の初期位置と移動先の位置をランダムに設定
    x = random.uniform(-30, 30)
    loc_a_start = (x, 0, 0)
    loc_a_end = (0, 30, 0)

    # 円錐Aを作成し、初期位置を設定する
    bpy.ops.mesh.primitive_cone_add(radius1=radius, radius2=0, depth=height, location=loc_a_start)
    obj_a = bpy.context.object

    # コレクションにオブジェクトを追加する
    collection.objects.link(obj_a)

    # アニメーションのフレーム設定を行う
    start_frame = 1  # アニメーションの最初のフレーム
    distance = (((0-0)**2 + (x-0)**2 + (30-0)**2)**0.5)  /30
    end_frame_a = int(distance * 20 * bpy.context.scene.render.fps)  # 円錐Aの移動が終わるフレーム
    bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
    bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

    # キーフレームを設定する
    obj_a.location = loc_a_start  # 円錐Aの開始位置を設定
    obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
    obj_a.location = loc_a_end  # 円錐Aの終了位置を設定
    obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定

# アニメーション再生
bpy.ops.screen.animation_play()  # アニメーションを再生













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
いいいいいいいい


10分の1 x軸から y=30へ  速度一定

aaa
aaa
import bpy
import random

# タグ名
tag_name = "zion cone50 line ittei sokudo to Y30"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 円錐の半径と高さを設定
radius = 0.5
height = 1.0

for i in range(50):
    # 円錐の初期位置と移動先の位置をランダムに設定
    x = random.uniform(-30, 30)
    loc_a_start = (x, 0, 0)
    loc_a_end = (0, 30, 0)

    # 円錐Aを作成し、初期位置を設定する
    bpy.ops.mesh.primitive_cone_add(radius1=radius, radius2=0, depth=height, location=loc_a_start)
    obj_a = bpy.context.object

    # コレクションにオブジェクトを追加する
    collection.objects.link(obj_a)

    # アニメーションのフレーム設定を行う
    start_frame = 1  # アニメーションの最初のフレーム
    distance = (((0-0)**2 + (x-0)**2 + (30-0)**2)**0.5)  /30
    end_frame_a = int(distance * 20 * bpy.context.scene.render.fps)  # 円錐Aの移動が終わるフレーム
    bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
    bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

    # キーフレームを設定する
    obj_a.location = loc_a_start  # 円錐Aの開始位置を設定
    obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
    obj_a.location = loc_a_end  # 円錐Aの終了位置を設定
    obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定

# アニメーション再生
bpy.ops.screen.animation_play()  # アニメーションを再生









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
いいいいいいいい

10分の1のに追加する x軸 円筒設定 y軸回転で x軸が長軸円筒

aaa
import bpy
from mathutils import Matrix

# 現在のシーンを取得
scene = bpy.context.scene

# オブジェクトの作成
bpy.ops.mesh.primitive_cylinder_add(radius=0.2, depth=60, enter_editmode=False, align='WORLD', location=(0,0,0), scale=(1, 1, 1))

# 選択中のオブジェクトを取得
obj = bpy.context.active_object

# オブジェクトを選択状態にする
obj.select_set(True)

# オブジェクトをy軸を中心軸に回転
rotation_matrix = Matrix.Rotation(-0.5 * 3.14159, 4, 'Y')
obj.matrix_world @= rotation_matrix

# 3Dビューポートを更新
bpy.context.view_layer.update()









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
いいいいいいいい

10分の1 y30へ向かう 球体0.5

aaa
import bpy
import random

# タグ名
tag_name = "y301-10rain_drops50"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 球体の半径を設定
radius = 0.5

for i in range(50):
    # 球体の初期位置と移動先の位置をランダムに設定
    x = random.uniform(-30, 30)
    loc_a_start = (x, 0, 0)
    loc_a_end = (x, 30, 0)

    # 球体Aを作成し、初期位置を設定する
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
    obj_a = bpy.context.object

    # コレクションにオブジェクトを追加する
    collection.objects.link(obj_a)

    # アニメーションのフレーム設定を行う
    start_frame = 1  # アニメーションの最初のフレーム
    end_frame_a = int(20 * bpy.context.scene.render.fps)  # 球体Aの移動が終わるフレーム
    bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
    bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

    # キーフレームを設定する
    obj_a.location = loc_a_start  # 球体Aの開始位置を設定
    obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
    obj_a.location = loc_a_end  # 球体Aの終了位置を設定
    obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定

# アニメーション再生
bpy.ops.screen.animation_play()  # アニメーションを再生









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
いいいいいいいい

Z高さからの雨 600範囲 球体0.5 20230318 sat

aaa
import bpy
import random

# タグ名
tag_name = "1-10rain_drops50"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 球体の半径を設定
radius = 0.5

for i in range(50):
    # 球体の初期位置と移動先の位置をランダムに設定
    x = random.uniform(-300, 300)
    loc_a_start = (x, 0, 300)
    loc_a_end = (x, 0, 0)

    # 球体Aを作成し、初期位置を設定する
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
    obj_a = bpy.context.object

    # コレクションにオブジェクトを追加する
    collection.objects.link(obj_a)

    # アニメーションのフレーム設定を行う
    start_frame = 1  # アニメーションの最初のフレーム
    end_frame_a = int(20 * bpy.context.scene.render.fps)  # 球体Aの移動が終わるフレーム
    bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
    bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

    # キーフレームを設定する
    obj_a.location = loc_a_start  # 球体Aの開始位置を設定
    obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
    obj_a.location = loc_a_end  # 球体Aの終了位置を設定
    obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定

# アニメーション再生
bpy.ops.screen.animation_play()  # アニメーションを再生









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
いいいいいいいい

雰囲気 原点から拡がる情報 速度適当 原点へ向かう-300から+300の50円錐は 座標内速度一定 


原点(0,0,0)からの球殻の拡大速度は
適当ですが

50個の 円錐が

原点(0,0,0)を目指す

座標内 速度は 同じ速度です






















球体 radius 0から1.0 改造 大きさ変化 scale


20230318sat 雰囲気 原点から拡がる情報 速度適当 原点へ向かう-300から+300の50円錐は 座標内速度一定







import bpy

# 球体オブジェクトを作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=10.0, enter_editmode=False, location=(0, 0, 0))
sphere_obj = bpy.context.object

# アニメーションを作成
total_frames = 800  # アニメーションのフレーム数
scale_factor = 2000 / total_frames  # 1フレームあたりのスケールファクター

for i in range(total_frames):
    bpy.context.scene.frame_set(i)
    scale = (i+1) * scale_factor
    sphere_obj.scale = (scale, scale, scale)
    sphere_obj.keyframe_insert(data_path="scale", index=-1)


































bbb







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
いいいいいいいい


2023年3月15日水曜日

Moving cones moving towards origin O at a constant speed.

aaa

一定速度で 原点O へ 進む 円錐 英語にして
 
import bpy
import random

# タグ名
tag_name = "zion cone50 line ittei sokudo center"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 円錐の半径と高さを設定
radius = 5.0
height = 10.0

for i in range(50):
    # 円錐の初期位置と移動先の位置をランダムに設定
    y = random.uniform(-300, 300)
    loc_a_start = (0, y, 300)
    loc_a_end = (0, 0, 0)

    # 円錐Aを作成し、初期位置を設定する
    bpy.ops.mesh.primitive_cone_add(radius1=radius, radius2=0, depth=height, location=loc_a_start)
    obj_a = bpy.context.object

    # コレクションにオブジェクトを追加する
    collection.objects.link(obj_a)

    # アニメーションのフレーム設定を行う
    start_frame = 1  # アニメーションの最初のフレーム
    distance = (((0-0)**2 + (y-0)**2 + (300-0)**2)**0.5)  /300
    end_frame_a = int(distance * 20 * bpy.context.scene.render.fps)  # 円錐Aの移動が終わるフレーム
    bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
    bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

    # キーフレームを設定する
    obj_a.location = loc_a_start  # 円錐Aの開始位置を設定
    obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
    obj_a.location = loc_a_end  # 円錐Aの終了位置を設定
    obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定

# アニメーション再生
bpy.ops.screen.animation_play()  # アニメーションを再生












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
いいいいいいいい

半分成功 円周からの50  

aaa
import bpy
import random



# タグ名 20230315 wed 改良型
tag_name = "ennshuukara"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)






for i in range(50):
    z = random.uniform(-300, 300)
    y = (90000 - z**2) ** 0.5
    loc_a_start = (0, y, z)
    print(loc_a_start)

    # 球体の半径を設定
    radius = 5.0

    # 球体Aの初期位置と移動先の位置を設定
    loc_a_end = (0, 0, 0)

    # 球体Aを作成し、初期位置を設定する
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
    obj_a = bpy.context.object

   

    # オブジェクトをコレクションに追加する
    col.objects.link(obj_a)

    # アニメーションのフレーム設定を行う
    start_frame = 1  # アニメーションの最初のフレーム
    end_frame_a = int(20 * bpy.context.scene.render.fps)  # 球体Aの移動が終わるフレーム
    bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
    bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

    # キーフレームを設定する
    obj_a.location = loc_a_start  # 球体Aの開始位置を設定
    obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
    obj_a.location = loc_a_end  # 球体Aの終了位置を設定
    obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定

    # アニメーション再生
    bpy.ops.screen.animation_play()  # アニメーションを再生








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
いいいいいいいい

成功 20230315 wed たぶん これであってる 座標空間内を 一定速度で進む

aaa

【Blender 2.8】オブジェクトをガラスみたいに透明にする方法【簡単】




を使って
distance = (((0-0)**2 + (y-0)**2 + (300-0)**2)**0.5)  /300

  end_frame_a = int(distance *20 * bpy.context.scene.render.fps)  

に 修正して



を使って
参考に 球体の発生位置を (0,-300,300) から (0,300,300)で 等間隔にして

球体の速度を 出現場所の数値を使って
(((300 - i*12) **2 + 300 **2 ) **(0.5)) /300 にして



 
import bpy
import random

# タグ名
tag_name = "sokudoittei"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 球体の半径を設定
radius = 5.0

for i in range(50):
    # 球体の初期位置と移動先の位置をランダムに設定
    y = random.uniform(-300, 300)
    loc_a_start = (0, y, 300)
    loc_a_end = (0, 0, 0)

    # 球体Aを作成し、初期位置を設定する
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
    obj_a = bpy.context.object

    # コレクションにオブジェクトを追加する
    collection.objects.link(obj_a)

    # アニメーションのフレーム設定を行う
    start_frame = 1  # アニメーションの最初のフレーム
    distance = (((0-0)**2 + (y-0)**2 + (300-0)**2)**0.5)  /300
    end_frame_a = int(distance * 20 * bpy.context.scene.render.fps)  # 球体Aの移動が終わるフレーム
    bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
    bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

    # キーフレームを設定する
    obj_a.location = loc_a_start  # 球体Aの開始位置を設定
    obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
    obj_a.location = loc_a_end  # 球体Aの終了位置を設定
    obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定

# アニメーション再生
bpy.ops.screen.animation_play()  # アニメーションを再生








bbb
togetter.com/t/c2022meetzionad
togetter.com/t/b2022meetzionad




twitter 新着検索 Dürer & 測距儀


aaa



2023年3月14日火曜日
成功 20230315 wed line_to_center_50"





2023年3月13日月曜日
20230314 tue  不動の球体 大きいの

https://chatgptblender.blogspot.com/2023/03/20230314-tue_75.html


import bpy

# タグ名
tag_name = "fudou_kyuutai300"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 球体の半径を設定
radius = 300.0

# 球体Aの初期位置と移動先の位置を設定
loc_a_start = (0, 0, 0)
# loc_a_end = (0, 0, radius)
# loc_a_end = (0, 0, 0)



# 球体Aを作成し、初期位置を設定する
bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
obj_a = bpy.context.object

# コレクションにオブジェクトを追加する
collection.objects.link(obj_a)

# アニメーションのフレーム設定を行う
start_frame = 1  # アニメーションの最初のフレーム
end_frame_a = int(20 * bpy.context.scene.render.fps)  # 球体Aの移動が終わるフレーム
bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

# キーフレームを設定する
obj_a.location = loc_a_start  # 球体Aの開始位置を設定
obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
obj_a.location = loc_a_end  # 球体Aの終了位置を設定
obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定

# アニメーション再生
bpy.ops.screen.animation_play()  # アニメーションを再生








bbb
twitter zionadchat
twitter に追い出されたら 連絡先は Gettr https://gettr.com/user/zionadchat
twitter サブアカウント https://twitter.com/2022zionad

old page いいい
new page いいい

目次 2022の目次 単純トリック hatena zionadchat
いいいいいいいい

っt

aaa
import bpy
import random

# タグ名
tag_name = "sokudoittei"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 球体の半径を設定
radius = 5.0

for i in range(50):
    # 球体の初期位置と移動先の位置をランダムに設定
    y = random.uniform(-300, 300)
    loc_a_start = (0, y, 300)
    loc_a_end = (0, 0, 0)

    # 球体Aを作成し、初期位置を設定する
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
    obj_a = bpy.context.object

    # コレクションにオブジェクトを追加する
    collection.objects.link(obj_a)

    # アニメーションのフレーム設定を行う
    start_frame = 1  # アニメーションの最初のフレーム
    end_frame_a = int(20 * bpy.context.scene.render.fps)  # 球体Aの移動が終わるフレーム
    bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
    bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

    # キーフレームを設定する
    obj_a.location = loc_a_start  # 球体Aの開始位置を設定
    obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
    obj_a.location = loc_a_end  # 球体Aの終了位置を設定
    obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定

# アニメーション再生
bpy.ops.screen.animation_play()  # アニメーションを再生


を使って
distance = (((0-0)**2 + (y-0)**2 + (300-0)**2)**0.5)  *300

  end_frame_a = int(distance *20 * bpy.context.scene.render.fps)  

に 修正して



を使って
参考に 球体の発生位置を (0,-300,300) から (0,300,300)で 等間隔にして

球体の速度を 出現場所の数値を使って
(((300 - i*12) **2 + 300 **2 ) **(0.5)) *300 にして





start_position = Vector((0, 300 - i*12, 300))


球体の速度を 出現場所の数値を使って
 1/(((300 - i*12) **2 + 300 **2 ) **(0.5)) にして



bbb


import bpy
import random

# タグ名
tag_name = "sokudoittei"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 球体の半径を設定
radius = 5.0

for i in range(50):
    # 球体の初期位置と移動先の位置を設定
    y = -300 + i * 12  # 出現位置を等間隔に設定
    loc_a_start = (0, y, 300)
    loc_a_end = (0, 0, 0)

    # 球体Aを作成し、初期位置を設定する
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
    obj_a = bpy.context.object

    # コレクションにオブジェクトを追加する
    collection.objects.link(obj_a)

    # アニメーションのフレーム設定を行う
    start_frame = 1  # アニメーションの最初のフレーム
    end_frame_a =20 * int((1/(300 - y) / 12) * bpy.context.scene.render.fps)  # 球体Aの移動が終わるフレーム
    bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
    bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

    # キーフレームを設定する
    obj_a.location = loc_a_start  # 球体Aの開始位置を設定
    obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
    obj_a.location = loc_a_end  # 球体Aの終了位置を設定
    obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定

    # 速度を設定する
    speed =  (((300 - y) ** 2 + 300 ** 2) ** (0.5))
    obj_a.animation_data.action.fcurves[0].keyframe_points[0].interpolation = 'LINEAR'  # キーフレームの補間方法を設定
    for kf in obj_a.animation_data.action.fcurves[0].keyframe_points:
        kf.co[1] = speed * (kf.co[0] - start_frame)  # 速度を反映させる

# アニメーション再生
bpy.ops.screen.animation_play()  # アニメーションを再生



distance = (((0-0)**2 + (y-0)**2 + (300-0)**2)**0.5)  *300
y=300

 
togetter.com/t/c2022meetzionad
togetter.com/t/b2022meetzionad




twitter 新着検索 Dürer & 測距儀


aaa

zionad blenderzion
distance = (((0-0)**2 + (y-0)**2 + (300-0)**2)**0.5)  *300

distance = (((0-0)**2 + (300-0)**2 + (300-0)**2)**0.5) * 300

distance = ((90000 + 90000)**0.5) * 300

distance = 300 * (2 * 90000)**0.5

distance ≒ 7405.14







w = (1/300) *(y**2 + 300**2)**0.5 を計算して



bbb


import bpy
import random

# タグ名
tag_name = "sokudoittei"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 球体の半径を設定
radius = 5.0

# 発生位置のy座標リストを作成
y_positions = list(range(-300, 301, 12))

for i, y in enumerate(y_positions):
    # 球体の初期位置と移動先の位置を設定
    loc_a_start = (0, y, 300)
    loc_a_end = (0, 0, 0)

    # 球体Aを作成し、初期位置を設定する
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
    obj_a = bpy.context.object

    # コレクションにオブジェクトを追加する
    collection.objects.link(obj_a)

    # 球体の速度を設定する
    speed = (1/(((300 - i*12) **2 + 300 **2 ) **(0.5))) * 300

    # アニメーションのフレーム設定を行う
    start_frame = 1  # アニメーションの最初のフレーム
    end_frame_a = int(300 / speed * bpy.context.scene.render.fps)  # 球体Aの移動が終わるフレーム
    bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
    bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

    # キーフレームを設定する
    obj_a.location = loc_a_start  # 球体Aの開始位置を設定
    obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
    obj_a.location = loc_a_end  # 球体Aの終了位置を設定
    obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定



(0,0,0)から(0,300,300)の長さを求めて

(0,0,0)から(0,y,300)の長さを求めて


 
twitter zionadchat
twitter に追い出されたら 連絡先は Gettr https://gettr.com/user/zionadchat
twitter サブアカウント https://twitter.com/2022zionad

old page いいい
new page いいい

目次 2022の目次 単純トリック hatena zionadchat
いいいいいいいい

2023年3月14日火曜日

成功 20230315 wed line_to_center_50"

aaa
import bpy
import random

# タグ名
tag_name = "line_to_center_50"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 球体の半径を設定
radius = 5.0

for i in range(50):
    # 球体の初期位置と移動先の位置をランダムに設定
    y = random.uniform(-300, 300)
    loc_a_start = (0, y, 300)
    loc_a_end = (0, 0, 0)

    # 球体Aを作成し、初期位置を設定する
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
    obj_a = bpy.context.object

    # コレクションにオブジェクトを追加する
    collection.objects.link(obj_a)

    # アニメーションのフレーム設定を行う
    start_frame = 1  # アニメーションの最初のフレーム
    end_frame_a = int(20 * bpy.context.scene.render.fps)  # 球体Aの移動が終わるフレーム
    bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
    bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

    # キーフレームを設定する
    obj_a.location = loc_a_start  # 球体Aの開始位置を設定
    obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
    obj_a.location = loc_a_end  # 球体Aの終了位置を設定
    obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定

# アニメーション再生
bpy.ops.screen.animation_play()  # アニメーションを再生




このスクリプトを

w = (y**2 + 300**2)**0.5 を計算して

   loc_a_start = (0, y, 300) のとき

 end_frame_a = int(20 * bpy.context.scene.render.fps)  を
 end_frame_a = int(w * 20 * bpy.context.scene.render.fps) にして

全体のスクリプトを書いて




 
w = (y**2 + 300**2)**0.5 を計算して

   loc_a_start = (0, y, 300) のとき

 end_frame_a = int(20 * bpy.context.scene.render.fps)  を
 end_frame_a = int(w * 20 * bpy.context.scene.render.fps) にして

全体のスクリプトを書いて




    loc_a_start = (0, 0, 0)
    y = random.uniform(-300, 300)
    loc_a_end = (0, y, 300)
w = (y**2 + 300**2)**0.5 を計算して

 end_frame_a = int(20 * bpy.context.scene.render.fps)  を
 end_frame_a = int(w * 20 * bpy.context.scene.render.fps) にして

全体のスクリプトを書いて


bbb
togetter.com/t/c2022meetzionad
togetter.com/t/b2022meetzionad




twitter 新着検索 Dürer & 測距儀


aaa



# 球体Aを作成し、初期位置を設定する
bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
obj_a = bpy.context.object

# コレクションにオブジェクトを追加する
collection.objects.link(obj_a)

# アニメーションのフレーム設定を行う
start_frame = 1  # アニメーションの最初のフレーム
end_frame_a = int(w * 20 * bpy.context.scene.render.fps)  # 球体Aの移動が終わるフレーム
bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

# キーフレームを設定する
obj_a.location = loc_a_start  # 球体Aの開始位置を設定
obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
obj_a.location = loc_a_end  # 球体Aの終了位置を設定
obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定






import bpy
import random


# 球体Aを作成し、初期位置を設定する
bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
obj_a = bpy.context.object

# コレクションにオブジェクトを追加する
collection.objects.link(obj_a)

# アニメーションのフレーム設定を行う
start_frame = 1  # アニメーションの最初のフレーム
end_frame_a = int(w * 20 * bpy.context.scene.render.fps)  # 球体Aの移動が終わるフレーム
bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

# キーフレームを設定する
obj_a.location = loc_a_start  # 球体Aの開始位置を設定
obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
obj_a.location = loc_a_end  # 球体Aの終了位置を設定
obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定



positions = [(0,  random.uniform(-300, 300)) for _ in range(num_spheres),300] 










bbb


import bpy
import random

# タグ名
tag_name = "sokudo_ittei"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)

# 球体の半径を設定
radius = 5.0

# 生成する球体の数
num_spheres = 1

# 球体の初期位置をランダムに設定
positions = [(0, 0, random.uniform(-300, 300)) for _ in range(num_spheres)]

# アニメーションの開始フレームを設定
start_frame = 1

# アニメーションのフレームレートを設定
fps = bpy.context.scene.render.fps

for i, pos in enumerate(positions):
    # 球体の初期位置と移動先の位置を設定
    loc_a_start = pos
    loc_a_end = (0, 0, 0)
    w = (pos[2]**2 + 300**2)**0.5
    end_frame_a = int(w * 20 * fps)

    # 球体Aを作成し、初期位置を設定する
    bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
    obj_a = bpy.context.object

    # コレクションにオブジェクトを追加する
    collection.objects.link(obj_a)

    # キーフレームを設定する
    obj_a.location = loc_a_start
    obj_a.keyframe_insert(data_path="location", frame=start_frame)
    obj_a.location = loc_a_end
    obj_a.keyframe_insert(data_path="location", frame=end_frame_a)

    # アニメーションの終了フレームを更新する
    if i == num_spheres - 1:
        bpy.context.scene.frame_end = end_frame_a

# アニメーション再生
bpy.ops.screen.animation_play()


 
twitter zionadchat
twitter に追い出されたら 連絡先は Gettr https://gettr.com/user/zionadchat
twitter サブアカウント https://twitter.com/2022zionad

old page いいい
new page いいい

目次 2022の目次 単純トリック hatena zionadchat
いいいいいいいい

いろいろ球体

aaa






# 移動量 600 の 球体 半径 10  end 480 int20

import bpy




# タグ名
tag_name = "iroiro"

# コレクションを取得する
collection = bpy.data.collections.get(tag_name)

# コレクションが存在しない場合は作成する
if not collection:
    collection = bpy.data.collections.new(tag_name)
    bpy.context.scene.collection.children.link(collection)



# 球体の半径を設定
radius = 10.0

# 球体Aの初期位置と移動先の位置を設定
loc_a_start = (0 ,0 ,0)
loc_a_end = (0 ,600 ,0)

# 球体Aを作成し、初期位置を設定する
bpy.ops.mesh.primitive_uv_sphere_add(radius=radius, location=loc_a_start)
obj_a = bpy.context.object





# オブジェクトをコレクションに追加する
collection.objects.link(obj_a)



# アニメーションのフレーム設定を行う
start_frame = 1  # アニメーションの最初のフレーム
end_frame_a = int(20 * bpy.context.scene.render.fps)  # 球体Aの移動が終わるフレーム
bpy.context.scene.frame_start = start_frame  # アニメーションの開始フレームを設定
bpy.context.scene.frame_end = end_frame_a  # アニメーションの終了フレームを設定

# キーフレームを設定する
obj_a.location = loc_a_start  # 球体Aの開始位置を設定
obj_a.keyframe_insert(data_path="location", frame=start_frame)  # 開始フレームでキーフレームを設定
obj_a.location = loc_a_end  # 球体Aの終了位置を設定
obj_a.keyframe_insert(data_path="location", frame=end_frame_a)  # 終了フレームでキーフレームを設定

# アニメーション再生
bpy.ops.screen.animation_play()  # アニメーションを再生












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
いいいいいいいい

伊勢丹 建物広告 球体群 配置 20240323_001

aaa y軸に 球体半径0.1を等間隔に配置して 球体の名前は Sphere_x_y_z で 小数1桁で 座標位置で 名前を作る y=+1から ー1までで 21個の球体で 作る コレクションだけを作って "y軸の球体群" import bpy #...