Import Images as Planeを使えばする必要すらないが、Pythonコードからplaneにテクスチャを設定する場合。
import bpy # @brief Planeオブジェクトのサイズをテクスチャ画像に合わせて調整 # @param [in,out] plane Planeオブジェクト # @param [in] Image Textureノード # @param [in] ratio 何倍のサイズにするか # @return なし def TextureFixSize(plane,imgnode,ratio): maxsize = max( imgnode.image.size[0] , imgnode.image.size[1] ) plane.scale[0] = imgnode.image.size[0] / maxsize * ratio plane.scale[1] = imgnode.image.size[1] / maxsize * ratio # @brief テクスチャをplaneに設定する # @param [in,out] plane Planeオブジェクト # @param [in] filepath 画像データへのパス # @note マテリアルが設定され、Image Textureノードが存在している必要がある # @return なし def TextureFromFile(plane,filepath): #################### ## 画像ファイルを読み込み pngdata = bpy.data.images.load(filepath = filepath) #################### ## planeオブジェクトのImage Textureノードを取得 nodetree = plane.material_slots["Material.001"].material.node_tree imgnode = nodetree.nodes["Image Texture"] #################### ## Image Textureノードへ画像を設定 imgnode.image = pngdata #################### ## 張り付けたPlaneオブジェクトのサイズを画像サイズと同じ縦横比に合わせる TextureFixSize(plane,imgnode,1) act = bpy.context.active_object TextureFromFile(act,'C:/test/lake-6627781_640.jpg')
まず画像ファイルを読み込む
次にマテリアルからImage Textureノードを取得する
ノードに画像を設定
Image TextureノードのImageオブジェクトにsizeがある。
https://docs.blender.org/api/current/bpy.types.ShaderNodeTexImage.html