未整理メモ 画像読み込み blender python 20230807

 

 

 

 

 

 

この正方形に "C:\atest\20230806 赤城神社 tree 切り取り 2.png" の 写真貼って
 
 
ChatGPT

申し訳ありませんが、私は画像のアップロードや外部ファイルへのアクセスはできません。BlenderPythonスクリプトを使って画像をオブジェクトに貼り付ける方法を説明しますが、画像ファイルのパスを指定する必要があります。

  1. まず、画像ファイルをBlenderのプロジェクトフォルダ内に配置してください。たとえば、C:\atest\フォルダの直下に20230806 赤城神社 tree 切り取り 2.pngという画像ファイルがあるとします。

  2. 以下のスクリプトを使用して、正方形に画像を貼り付けます。

 

 

 

 

 

 

写真画像のフォルダを開いて

写真画像のリンクをコピーして

ChatGPT さんに 読み込めるように

書き換えを 問い合わせる

 

そして マテリアルに登録してもらう

 

 

 

a

a

ああああ

 

import bpy

# 画像ファイルのパスを指定してください
image_path = "C:/atest/20230806 赤城神社 tree 切り取り 2.png"

# 正方形の中心座標を指定してください
square_center = (0, 0, 0)

# 正方形のサイズを指定してください
square_size = 2

# 正方形を作成
bpy.ops.mesh.primitive_plane_add(size=square_size, location=square_center)
square = bpy.context.active_object

# イメージテクスチャを読み込み
img = bpy.data.images.load(image_path)

# テクスチャを設定
mat = bpy.data.materials.new(name="ImageMaterial")
square.data.materials.append(mat)
square.active_material.use_nodes = True
bsdf = square.active_material.node_tree.nodes["Principled BSDF"]
tex_image = square.active_material.node_tree.nodes.new("ShaderNodeTexImage")
square.active_material.node_tree.links.new(bsdf.inputs['Base Color'], tex_image.outputs['Color'])
tex_image.image = img

 

 

ああああ

a

 

 

a

 

a

 

a

a

 

 

 

 

 

 

 

 

 

User
オブジェクトがないから 無限ループに入るのだと思う だから 正方形オブジェクトを作ってから 画像を貼ってから 90度回転させて
 
 
ChatGPT

了解しました。オブジェクトがない場合に無限ループに入ることが考えられますので、最初に正方形オブジェクトを作成してから画像を貼り付け、最後に90度回転させるスクリプトを以下に示します。

 

User
オブジェクトがないから 無限ループに入るのだと思う だから 正方形オブジェクトを作ってから 画像を貼ってから 90度回転させて

ChatGPT
了解しました。オブジェクトがない場合に無限ループに入ることが考えられますので、最初に正方形オブジェクトを作成してから画像を貼り付け、最後に90度回転させるスクリプトを以下に示します。

 

 

a

 

 

 

 

a

 

 

 

import bpy
import math

# カレントオブジェクトを90度回転する関数
def rotate_object():
    selected_objects = bpy.context.selected_objects
    if selected_objects:
        for obj in selected_objects:
            obj.rotation_euler[2] += math.radians(90)

# 3Dビューのコンテキストを取得
context = bpy.context
# オブジェクトを編集モードに変更
bpy.ops.object.mode_set(mode='EDIT')
# メッシュを選択
bpy.ops.mesh.select_all(action='SELECT')
# オブジェクトをオブジェクトモードに変更
bpy.ops.object.mode_set(mode='OBJECT')

# 関数を実行
rotate_object()

 

 

この修正済みスクリプトでは、オブジェクトを回転する前に、一度オブジェクトを編集モードに変更してから選択し、回転を行います。これにより、回転が正しく適用されることが期待されます。スクリプトを実行すると、選択されているオブジェクトが90度回転されます。スクリプトを何度でも実行すると、選択されているオブジェクトが繰り返し90度ずつ回転します。

 

 

 

編集モードにしなくても 回転できた

 

 

以下 連続テスト

 

連続 読み込みでは

編集で 前半削除しなきゃで 無意味だった

 

zz

 

import bpy

# 画像ファイルのパスを指定してください
image_path = "C:/atest/20230806 赤城神社 tree 切り取り 2.png"

# 正方形の中心座標を指定してください
square_center = (0, 0, 0)

# 正方形のサイズを指定してください
square_size = 2

# 正方形を作成
bpy.ops.mesh.primitive_plane_add(size=square_size, location=square_center)
square = bpy.context.active_object

# イメージテクスチャを読み込み
img = bpy.data.images.load(image_path)

# テクスチャを設定
mat = bpy.data.materials.new(name="ImageMaterial")
square.data.materials.append(mat)
square.active_material.use_nodes = True
bsdf = square.active_material.node_tree.nodes["Principled BSDF"]
tex_image = square.active_material.node_tree.nodes.new("ShaderNodeTexImage")
square.active_material.node_tree.links.new(bsdf.inputs['Base Color'], tex_image.outputs['Color'])
tex_image.image = img

 

 

import bpy
import math

# カレントオブジェクトを90度回転する関数
def rotate_object():
    selected_objects = bpy.context.selected_objects
    if selected_objects:
        for obj in selected_objects:
            obj.rotation_euler[2] += math.radians(90)

# 3Dビューのコンテキストを取得
context = bpy.context
# オブジェクトを編集モードに変更
bpy.ops.object.mode_set(mode='EDIT')
# メッシュを選択
bpy.ops.mesh.select_all(action='SELECT')
# オブジェクトをオブジェクトモードに変更
bpy.ops.object.mode_set(mode='OBJECT')

# 関数を実行
rotate_object()

 

 

 

 

 

 

 

 

zz