import bpy
import math
import random
# トーラスの作成
bpy.ops.mesh.primitive_torus_add(major_radius=10, minor_radius=1, location=(0, 0, 0))
bpy.context.active_object.name = "AAA_Torus"
torus = bpy.context.active_object
# トーラスを別のコレクションに移動
main_torus_collection = bpy.data.collections.new(name="main_Torus")
bpy.context.scene.collection.children.link(main_torus_collection)
main_torus_collection.objects.link(torus)
# 球体をトーラス表面にランダムに生成
sub_200_spheres_collection = bpy.data.collections.new(name="sub_200_spheres")
bpy.context.scene.collection.children.link(sub_200_spheres_collection)
for i in range(200):
# トーラス表面上のランダムな位置を計算
u = random.uniform(0, 2*math.pi)
v = random.uniform(0, 2*math.pi)
x = (10 + 1*math.cos(v)) * math.cos(u)
y = (10 + 1*math.cos(v)) * math.sin(u)
z = 1 * math.sin(v)
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.5, location=(x, y, z))
sphere = bpy.context.active_object
sphere.name = "Sphere" + str(i)
sub_200_spheres_collection.objects.link(sphere)
# コレクションの名前を変更
sub_200_spheres_collection.name = "sub_200_spheres"
あああああああああああああああああああああああああああああああ
import bpy
import math
import random
# トーラスの作成
bpy.ops.mesh.primitive_torus_add(major_radius=10, minor_radius=1, location=(0, 0, 0))
bpy.context.active_object.name = "AAA_Torus"
torus = bpy.context.active_object
# 球体をトーラス表面にランダムに生成
sphere_collection = bpy.data.collections.new(name="200_Spheres")
bpy.context.scene.collection.children.link(sphere_collection)
for i in range(200):
# トーラス表面上のランダムな位置を計算
u = random.uniform(0, 2*math.pi)
v = random.uniform(0, 2*math.pi)
x = (10 + 1*math.cos(v)) * math.cos(u)
y = (10 + 1*math.cos(v)) * math.sin(u)
z = 1 * math.sin(v)
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.5, location=(x, y, z))
sphere = bpy.context.active_object
sphere.name = "Sphere" + str(i)
sphere_collection.objects.link(sphere)
# トーラスを別のコレクションに移動
torus_collection = bpy.data.collections.new(name="main_Torus")
bpy.context.scene.collection.children.link(torus_collection)
torus_collection.objects.link(torus)
torus_material = bpy.data.materials.new(name="Torus_Material")
torus_material.use_nodes = True
torus_material_output = torus_material.node_tree.nodes.get("Material Output")
torus_material_output.location = (400, 0)
torus_material_diffuse = torus_material.node_tree.nodes.new(type="ShaderNodeBsdfDiffuse")
torus_material_diffuse.location = (0, 0)
torus_material_diffuse.inputs["Color"].default_value = (0, 1, 0, 0.1)
torus_material_node = torus_material.node_tree.nodes.get("Principled BSDF")
torus_material_node.inputs["Alpha"].default_value = 0.1
torus_material_node.location = (200, 0)
torus_material_link = torus_material.node_tree.links.new(torus_material_diffuse.outputs[0], torus_material_node.inputs[0])
torus_material_link = torus_material.node_tree.links.new(torus_material_node.outputs[0], torus_material_output.inputs[0])
torus.data.materials.append(torus_material)
ああああああああああああああああああああ
追加だけのスクリプト書いて トーラスを透明 わずかに緑色で塗る
# コレクションの名前を変更
sphere_collection.name = "200_Spheres"
以下が、トーラスを透明にし、わずかに緑色で塗るスクリプトになります。
pythonimport bpy
# トーラスを選択状態にする
bpy.context.view_layer.objects.active = bpy.data.objects['AAA_Torus']
# トーラスのマテリアルを作成
mat = bpy.data.materials.new(name="Torus_Material")
mat.use_nodes = True
nodes = mat.node_tree.nodes
links = mat.node_tree.links
diffuse = nodes.get("Diffuse BSDF")
emission = nodes.new(type='ShaderNodeEmission')
emission.inputs[0].default_value = (0.0, 0.5, 0.0, 1.0)
mix = nodes.new(type='ShaderNodeMixShader')
output = nodes.get("Material Output")
links.new(diffuse.outputs['BSDF'], mix.inputs[1])
links.new(emission.outputs['Emission'], mix.inputs[2])
links.new(mix.outputs['Shader'], output.inputs['Surface'])
# トーラスを透明にする
bpy.data.objects['AAA_Torus'].active_material.blend_method = 'BLEND'
bpy.data.objects['AAA_Torus'].active_material.shadow_method = 'TRANSPARENT'
bpy.data.objects['AAA_Torus'].active_material.alpha_threshold = 0.0
上記スクリプトでは、トーラスのマテリアルを作成して、Diffuse BSDFとEmissionノードを混合して、わずかに緑色で塗っています。また、トーラスを透明にするために、blend_method、shadow_method、alpha_thresholdを設定しています。
なお、上記スクリプトを実行する前に、トーラスがシーンに存在している必要があります。
import bpy
# トーラスを選択状態にする
bpy.context.view_layer.objects.active = bpy.data.objects['AAA_Torus']
# トーラスのマテリアルを作成
mat = bpy.data.materials.new(name="Torus_Material")
mat.use_nodes = True
nodes = mat.node_tree.nodes
links = mat.node_tree.links
diffuse = nodes.get("Diffuse BSDF")
emission = nodes.new(type='ShaderNodeEmission')
emission.inputs[0].default_value = (0.0, 0.5, 0.0, 1.0)
mix = nodes.new(type='ShaderNodeMixShader')
output = nodes.get("Material Output")
links.new(diffuse.outputs['BSDF'], mix.inputs[1])
links.new(emission.outputs['Emission'], mix.inputs[2])
links.new(mix.outputs['Shader'], output.inputs['Surface'])
# トーラスを透明にする
bpy.data.objects['AAA_Torus'].active_material.blend_method = 'BLEND'
bpy.data.objects['AAA_Torus'].active_material.shadow_method = 'TRANSPARENT'
bpy.data.objects['AAA_Torus'].active_material.alpha_threshold = 0.0
import bpy
import math
import random
# トーラスを描く
bpy.ops.mesh.primitive_torus_add(major_radius=10, minor_radius=1)
# トーラスの表面に100個の球体をランダムに描く
for i in range(100):
# 球体を描く位置をランダムに決定する
theta = random.uniform(0, 2 * math.pi)
phi = random.uniform(0, 2 * math.pi)
x = (10 + 1 * math.cos(phi)) * math.cos(theta)
y = (10 + 1 * math.cos(phi)) * math.sin(theta)
z = 1 * math.sin(phi)
# 球体を描く
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.5, location=(x, y, z))
ああああああああああああああああああああああ
試作
import bpy
import math
import random
# トーラスの作成
bpy.ops.mesh.primitive_torus_add(major_radius=10, minor_radius=1, location=(0, 0, 0))
bpy.context.active_object.name = "AAA_Torus"
torus = bpy.context.active_object
# 球体をランダムに生成
sphere_collection = bpy.data.collections.new(name="200_Spheres")
bpy.context.scene.collection.children.link(sphere_collection)
for i in range(200):
x = random.uniform(-10, 10)
y = random.uniform(-10, 10)
z = random.uniform(-1, 1)
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.5, location=(x, y, z))
sphere = bpy.context.active_object
sphere.name = "Sphere" + str(i)
sphere_collection.objects.link(sphere)
# コレクションの名前を変更
sphere_collection.name = "200_Spheres"
import bpy
import math
import random
# トーラスを描く
bpy.ops.mesh.primitive_torus_add(major_radius=10, minor_radius=1)
# トーラスオブジェクトに名前を設定する
torus_obj = bpy.context.object
torus_obj.name = 'AAA_Torus'
# コレクションを作成し、トーラスオブジェクトを移動する
torus_collection = bpy.data.collections.new('TorusCollection')
bpy.context.scene.collection.children.link(torus_collection)
torus_collection.objects.link(torus_obj)
# トーラスの表面に100個の球体をランダムに描く
for i in range(100):
# 球体を描く位置をランダムに決定する
theta = random.uniform(0, 2 * math.pi)
phi = random.uniform(0, 2 * math.pi)
x = (10 + 1 * math.cos(phi)) * math.cos(theta)
y = (10 + 1 * math.cos(phi)) * math.sin(theta)
z = 1 * math.sin(phi)
# 球体を描く
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.5, location=(x, y, z))
# トーラスオブジェクトに名前を設定する
bpy.context.object.name = 'AAA_Torus'
import bpy
import math
import random
# トーラスを描く
bpy.ops.mesh.primitive_torus_add(major_radius=10, minor_radius=1, enter_editmode=False, align='WORLD', location=(0, 0, 0), rotation=(0, 0, 0))
# トーラスオブジェクトに名前を設定する
torus_obj = bpy.context.object
torus_obj.name = 'AAA_Torus'
# コレクションを作成し、トーラスオブジェクトを移動する
torus_collection = bpy.data.collections.new('TorusCollection')
bpy.context.scene.collection.children.link(torus_collection)
torus_collection.objects.link(torus_obj)
import bpy
import math
import random
# トーラスを描く
bpy.ops.mesh.primitive_torus_add(major_radius=10, minor_radius=1)
# トーラスの表面に100個の球体をランダムに描く
for i in range(100):
# 球体を描く位置をランダムに決定する
theta = random.uniform(0, 2 * math.pi)
phi = random.uniform(0, 2 * math.pi)
x = (10 + 1 * math.cos(phi)) * math.cos(theta)
y = (10 + 1 * math.cos(phi)) * math.sin(theta)
z = 1 * math.sin(phi)
# 球体を描く
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.5, location=(x, y, z))
トーラスの名前をAAA_Torusに変更するには、
以下のようにスクリプトを変更します。
import bpy
import math
import random
# トーラスを描く
bpy.ops.mesh.primitive_torus_add(major_radius=10, minor_radius=1, enter_editmode=False, align='WORLD', location=(0, 0, 0), rotation=(0, 0, 0))
# トーラスオブジェクトに名前を設定する
bpy.context.object.name = 'AAA_Torus'
# トーラスの表面に100個の球体をランダムに描く
for i in range(100):
# 球体を描く位置をランダムに決定する
theta = random.uniform(0, 2 * math.pi)
phi = random.uniform(0, 2 * math.pi)
x = (10 + 1 * math.cos(phi)) * math.cos(theta)
y = (10 + 1 * math.cos(phi)) * math.sin(theta)
z = 1 * math.sin(phi)
# 球体を描く
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.5, location=(x, y, z))
あああああああああああああああああああああああ
エラーあり
import bpy
import math
import random
# トーラスを描く
bpy.ops.mesh.primitive_torus_add(major_radius=10, minor_radius=1, enter_editmode=False, align='WORLD', location=(0, 0, 0), rotation=(0, 0, 0))
# トーラスオブジェクトに名前を設定する
torus_obj = bpy.context.object
torus_obj.name = 'AAA_Torus'
# コレクションを作成し、トーラスオブジェクトを移動する
torus_collection = bpy.data.collections.new('TorusCollection')
bpy.context.scene.collection.children.link(torus_collection)
torus_collection.objects.link(torus_obj)
# 球体を描く
sphere_collection = bpy.data.collections.new('SphereCollection')
bpy.context.scene.collection.children.link(sphere_collection)
for i in range(200):
# 球体を描く位置をランダムに決定する
theta = random.uniform(0, 2 * math.pi)
phi = random.uniform(0, 2 * math.pi)
x = (10 + 1 * math.cos(phi)) * math.cos(theta)
y = (10 + 1 * math.cos(phi)) * math.sin(theta)
z = 1 * math.sin(phi)
# 球体を描く
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.5, location=(x, y, z))
sphere_obj = bpy.context.object
# 球体オブジェクトに名前を設定する
sphere_obj.name = 'Sphere{}'.format(i)
# 球体オブジェクトをコレクションに移動する
sphere_collection.objects.link(sphere_obj)
あああああああああああああああああああ
import bpy
import math
import random
# トーラスを描く
bpy.ops.mesh.primitive_torus_add(major_radius=10, minor_radius=1)
# トーラスに緑色のマテリアルを設定する
mat = bpy.data.materials.new(name="Green")
mat.diffuse_color = (0, 1, 0)
bpy.context.object.data.materials.append(mat)
import bpy
import math
import random
# トーラスを描く
bpy.ops.mesh.primitive_torus_add(major_radius=10, minor_radius=1)
# トーラスに緑色のマテリアルを設定する
mat = bpy.data.materials.new(name="Green")
mat.diffuse_color = (0, 1, 0)
bpy.context.object.data.materials.append(mat)
# トーラスの表面に200個の球体をランダムに描く
for i in range(200):
# 球体を描く位置をランダムに決定する
theta = random.uniform(0, 2 * math.pi)
phi = random.uniform(0, 2 * math.pi)
x = (10 + 1 * math.cos(phi)) * math.cos(theta)
y = (10 + 1 * math.cos(phi)) * math.sin(theta)
z = 1 * math.sin(phi)
# 球体を描く
bpy.ops.mesh.primitive_uv_sphere_add(radius=0.5, location=(x, y, z))
# 球体に赤色のマテリアルを設定する
mat = bpy.data.materials.new(name="Red")
mat.diffuse_color = (1, 0, 0)
bpy.context.object.data.materials.append(mat)
import bpy
import math
import random
# Define the parameters
num_spheres = 500
outer_radius = 1
inner_radius = 0.02
# Create the outer sphere and rename it
bpy.ops.mesh.primitive_uv_sphere_add(radius=outer_radius)
big_sphere = bpy.context.active_object
big_sphere.name = "Big_sphere"
# Create the inner spheres
for i in range(num_spheres):
theta = random.uniform(0, 2*math.pi)
phi = random.uniform(0, math.pi)
x = outer_radius * math.sin(phi) * math.cos(theta)
y = outer_radius * math.sin(phi) * math.sin(theta)
z = outer_radius * math.cos(phi)
bpy.ops.mesh.primitive_uv_sphere_add(radius=inner_radius, location=(x, y, z))
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
いいいいいいいい