2023年4月8日土曜日

"ニュートン りんごの tree"

 RGBA値を使用して










import bpy

from math import radians


# 円錐を作成する

bpy.ops.mesh.primitive_cone_add(radius1=30, radius2=0, depth= 15)


# 円錐の位置を変更する

bpy.context.object.location[0] = 0.0  # X座標

bpy.context.object.location[1] = 0.0  # Y座標

bpy.context.object.location[2] = 15.0  # Z座標


# Z軸を中心に90度回転させる

bpy.context.object.rotation_euler[0] = radians(0)

bpy.context.object.rotation_euler[1] = radians(0)

bpy.context.object.rotation_euler[2] = radians(90)


# Z軸方向に伸ばす

bpy.context.object.scale[0] = 1

bpy.context.object.scale[1] = 1

bpy.context.object.scale[2] = 2


# 円錐を選択する

bpy.context.view_layer.objects.active = bpy.context.selected_objects[0]


# オブジェクトに名前を付ける

bpy.context.object.name = "Zion Cone"



このスクリプトでは、新しいマテリアルを作成し、シェーダーノードを使用して透明度を設定しています。また、マテリアルを円錐に割り当てるようにしています。RGBA値を設定する場合は、transparent_node.inputs[0].default_valueを設定することで可能です。例えば、赤色を使用する場合は、`transparent_node.inputs[0].default_value = (1.0, 0.0, 0.0


上記のコードでは、作成したマテリアルのRGBA値を (0, 1, 0, 0) に設定し、アルファ値を 0 に設定しているため、緑色になります。また、マテリアルに透明度を与えるために use_nodes を True に設定して、ノードを使って Emission ノードと Material Output ノードを接続しています。


import bpy

from math import radians


# 円錐を作成する

bpy.ops.mesh.primitive_cone_add(radius1=30, radius2=0, depth=15)


# 円錐の位置を変更する

bpy.context.object.location[0] = 0.0  # X座標

bpy.context.object.location[1] = 0.0  # Y座標

bpy.context.object.location[2] = 15.0  # Z座標


# Z軸を中心に90度回転させる

bpy.context.object.rotation_euler[0] = radians(0)

bpy.context.object.rotation_euler[1] = radians(0)

bpy.context.object.rotation_euler[2] = radians(90)


# Z軸方向に伸ばす

bpy.context.object.scale[0] = 1

bpy.context.object.scale[1] = 1

bpy.context.object.scale[2] = 2


# オブジェクトに名前を付ける

bpy.context.object.name = "Zion Cone"


# マテリアルを作成する

mat = bpy.data.materials.new(name="Green")

mat.diffuse_color = (0, 0.1, 0, 0.0)  # RGBAの値を設定する (赤, 緑, 青, アルファ)

mat.use_nodes = True

nodes = mat.node_tree.nodes

links = mat.node_tree.links

emission = nodes.get("Emission")

if not emission:

    emission = nodes.new(type='ShaderNodeEmission')

    output = nodes.get("Material Output")

    links.new(emission.outputs[0], output.inputs[0])


# オブジェクトにマテリアルを割り当てる

if len(bpy.context.object.material_slots) == 0:

    bpy.context.object.data.materials.append(mat)

else:

    bpy.context.object.material_slots[0].material = mat







import bpy

from math import radians


# 円錐を作成する

bpy.ops.mesh.primitive_cone_add(radius1=30, radius2=0, depth=2)


# 円錐の位置を変更する

bpy.context.object.location[0] = 0.0  # X座標

bpy.context.object.location[1] = 0.0  # Y座標

bpy.context.object.location[2] = 0.0  # Z座標


    # Z軸を中心に90度回転させる

    bpy.context.object.rotation_euler[0] = radians(0)

    bpy.context.object.rotation_euler[1] = radians(0)

    bpy.context.object.rotation_euler[2] = radians(0)

    # Z軸方向に伸ばす

    bpy.context.object.scale[0] = 1

    bpy.context.object.scale[1] = 1

    bpy.context.object.scale[2] = 1

    


# 円錐を選択する

bpy.context.view_layer.objects.active = bpy.context.selected_objects[0]


# オブジェクトに名前を付ける

bpy.context.object.name = "Zion Cone"











import bpy
import math


zion_collection_name = "ニュートン りんごの tree"

# コレクションを作成する
col = bpy.data.collections.new(zion_collection_name)
bpy.context.scene.collection.children.link(col)






import bpy
from math import radians


# 回転させる軸を選択する
zion_xyz = 'zana'



# 円錐を作成する
bpy.ops.mesh.primitive_cone_add(radius1=1, radius2=0, depth=2)

# 円錐の位置を変更する
bpy.context.object.location[0] = 30.0  # X座標
bpy.context.object.location[1] = 0.0  # Y座標
bpy.context.object.location[2] = 30.0  # Z座標



if zion_xyz == 'xana':
    # 軸を中心に90度回転させる
    bpy.context.object.rotation_euler[0] = radians(0)
    bpy.context.object.rotation_euler[1] = radians(90)
    bpy.context.object.rotation_euler[2] = radians(0)
    # X軸方向に伸ばす
    bpy.context.object.scale[0] = 1
    bpy.context.object.scale[1] = 1
    bpy.context.object.scale[2] = 1
    
elif zion_xyz == 'yana':
    # 軸を中心に90度回転させる
    bpy.context.object.rotation_euler[0] = radians(-90)
    bpy.context.object.rotation_euler[1] = radians(0)
    bpy.context.object.rotation_euler[2] = radians(0)
    # Y軸方向に伸ばす
    bpy.context.object.scale[0] = 3
    bpy.context.object.scale[1] = 3
    bpy.context.object.scale[2] = 3
    
elif zion_xyz == 'zana':
    # Z軸を中心に90度回転させる
    bpy.context.object.rotation_euler[0] = radians(0)
    bpy.context.object.rotation_euler[1] = radians(0)
    bpy.context.object.rotation_euler[2] = radians(0)
    # Z軸方向に伸ばす
    bpy.context.object.scale[0] = 1
    bpy.context.object.scale[1] = 1
    bpy.context.object.scale[2] = 1
    
else:
    print('Invalid rotation axis selected.')

# 円錐を選択する
bpy.context.view_layer.objects.active = bpy.context.selected_objects[0]




# オブジェクトに名前を付ける
bpy.context.object.name = "Zion Cone"

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

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