Python:blenderオブジェクトの名前取得方法
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
5件表示
(全5件)
すべてのコメント一覧へ
投稿ツリー
-
Python:blenderオブジェクトの名前取得方法
(ytr, 2016/6/28 15:07)
-
Re: Python:blenderオブジェクトの名前取得方法
(Shige, 2016/6/29 1:17)
-
Re: Re: Python:blenderオブジェクトの名前取得方法
(ytr, 2016/6/29 13:54)
-
Re: Python:blenderオブジェクトの名前取得方法
(Shige, 2016/6/29 15:56)
-
自己解決(repr関数) Re: Python:blenderオブジェクトの名前取得方法
(ytr, 2016/6/29 20:40)
Python:blenderオブジェクトの名前取得方法
msg# 1
ytr
投稿数: 3
はじめまして。
Blender上で 'Cube' オブジェクトを選択している状態だとして、
Python Console 上で以下のコードを実行しまして、
この2行目の表示を"bpy.data.objects['Cube']"という文字列として得ることはできるでしょうか?
builtin関数か何かがすでにあると思っているのですが。
modifier や constraint でも、その変数経路を示してくれて、
組む側に便利な形式なので、debug メッセージに使いたいです。
以下調べたこと。
・データブロックを網羅的に周って同じ文字列を組むことはできます。
・pythonインタプリンタに read-eval-printループ の print にあたる処理があると踏んで blender source の
release/scripts/modules/console_python.py
を眺めましたがそれらしいものを見つけられませんでした。(あまり読解できませんでした)
よろしくおねがいします。
環境:
blender v2.76
Python 3.4.2 (default, Nov 24 2014, 15:22:10)
Linux p2201503 3.13.0-77-generic #121-Ubuntu SMP Wed Jan 20 10:50:42 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Blender上で 'Cube' オブジェクトを選択している状態だとして、
Python Console 上で以下のコードを実行しまして、
- >> C.object
- bpy.data.objects['Cube']
- >> str( C.object )
- '<bpy_struct, Object("Cube")>'
この2行目の表示を"bpy.data.objects['Cube']"という文字列として得ることはできるでしょうか?
builtin関数か何かがすでにあると思っているのですが。
modifier や constraint でも、その変数経路を示してくれて、
組む側に便利な形式なので、debug メッセージに使いたいです。
以下調べたこと。
・データブロックを網羅的に周って同じ文字列を組むことはできます。
・pythonインタプリンタに read-eval-printループ の print にあたる処理があると踏んで blender source の
release/scripts/modules/console_python.py
を眺めましたがそれらしいものを見つけられませんでした。(あまり読解できませんでした)
よろしくおねがいします。
環境:
blender v2.76
Python 3.4.2 (default, Nov 24 2014, 15:22:10)
Linux p2201503 3.13.0-77-generic #121-Ubuntu SMP Wed Jan 20 10:50:42 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
投票数:2
平均点:0.00
Re: Python:blenderオブジェクトの名前取得方法
msg# 1.1
Shige
投稿数: 306
名前だけ取得すればいいなら、
import bpy
obj = bpy.context.object
obj_name = obj.name
print(obj_name)
で、コンソールに選択したオブジェクトの名前が出ますけど、そういう意味ですか?(質問に質問で返すやつw)
import bpy
obj = bpy.context.object
obj_name = obj.name
print(obj_name)
で、コンソールに選択したオブジェクトの名前が出ますけど、そういう意味ですか?(質問に質問で返すやつw)
投票数:7
平均点:7.14
Re: Re: Python:blenderオブジェクトの名前取得方法
msg# 1.1.1
ytr
投稿数: 3
ありがとうございます。
ですが name プロパティではありません。
選択中の Plane オブジェクトが、
・Armature モディファイアだけを持っていて、
・Material をひとつだけ持っている
として
これが Console に出力されるのは、未評価でトップに object が流れた場合だけで、python 中で扱う方法が分かりません。
bpy.data.objects[*] と bpy.data.meshes[*] だけに対応すると以下のような実装です。
もっと簡単な方法や既存の関数があると思いまして、それの質問です。
ソースが上手く貼れないのでここに
http://pastebin.com/QxyKa87W
ですが name プロパティではありません。
選択中の Plane オブジェクトが、
・Armature モディファイアだけを持っていて、
・Material をひとつだけ持っている
として
- >>> C.object
- bpy.data.objects['Plane']
- >>> C.object.modifiers[0]
- bpy.data.objects['Plane'].modifiers["Armature"]
- >>> C.object.material_slots[0].material
- bpy.data.materials['Material']
これが Console に出力されるのは、未評価でトップに object が流れた場合だけで、python 中で扱う方法が分かりません。
bpy.data.objects[*] と bpy.data.meshes[*] だけに対応すると以下のような実装です。
もっと簡単な方法や既存の関数があると思いまして、それの質問です。
ソースが上手く貼れないのでここに
http://pastebin.com/QxyKa87W
投票数:34
平均点:0.29
Re: Python:blenderオブジェクトの名前取得方法
msg# 1.2
Shige
投稿数: 306
あ〜なるほど意味がわかりました。が、Blenderartist.orgあたりで尋ねた方が答えは早いかもしれませんね。お役に立てませんでm(_ _)m
投票数:5
平均点:2.00
ytr
投稿数: 3
Shigeさん、お返事どうも。
自己解決しました。
blender というより python の機能でした。
>>> repr( C.object )
"bpy.data.objects['Plane']"
>>> repr( C.object.modifiers[0] )
"bpy.data.objects['Plane'].modifiers["Armature"]'
自己解決しました。
blender というより python の機能でした。
>>> repr( C.object )
"bpy.data.objects['Plane']"
>>> repr( C.object.modifiers[0] )
"bpy.data.objects['Plane'].modifiers["Armature"]'
投票数:2
平均点:0.00
5件表示
(全0件)
すべてのコメント一覧へ
ログイン
クイックリンク
2021/07/01版
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)
●ニュース(英文)
BlenderNation
●Blenderコミュニティ
blenderartists.org
●Blender Q&A
- Blender Stack Exchange
●テストビルド
Buildbot(自動生成)
●開発関連
公式開発サイト
Blender開発blog
Blender Wiki
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)
●ニュース(英文)
BlenderNation
●Blenderコミュニティ
blenderartists.org
●Blender Q&A
- Blender Stack Exchange
●テストビルド
Buildbot(自動生成)
●開発関連
公式開発サイト
Blender開発blog
Blender Wiki