blenderアドオン制作
襖を作るアドオンです。 なんとなく日本家屋っぽいものを作ろうとしたときに窓とか襖とか同じような形状が多くないですか? 多いですよね。なのでこういうのあれば楽だろうなと思って作りました。 多角形でもできるようにとかどんな角度でもとやってたら結構…
それぞれの辺の中点を比較して一番zが低い値を一番下としている スクリプトの最初位にやってて間違えてて、後の設定全部直す羽目になってて今半泣き状態。 一番最後の番号の時は最初の番号の頂点の中点をとる。 import bpy,bmesh from mathutils import Mat…
指定した辺をUVテクスチャの下方向にする。 ただしオブジェクトは一枚の板ポリの場合 import bpy,bmesh from mathutils import Matrix #指定した辺(ループ) loop_no = 5 plane = bpy.context.object msh = plane.data p_mat = plane.matrix_world.copy() n…
blender bpyでops系が遅いのはわかってるがdata系ではmesh、bmesh、Matrix・・・どれが早いのか実際に調べてみた簡単に立方体をグローバルY方向に3移動を100回繰り返す 長いので最初に結論。・オブジェクトモードならobj.locationとmatrix_world.translation…
平面をオブジェクトモードで拡大縮小してから編集モードで回転させてcalc_angle()で角の角度を取得すると値がおかしい。 3Dビューのビューポートオーバーレイで面の角度表でも同じ現象が起きてる どの辺も90°になるはずなのだが・・・内部が同じかどうかは…
自作アドオンで何回か使いそうな気がするのでいくつか作っておこうと思う オブジェクトの原点にてエンプティを置く(回転はローカル座標の回転方向) オブジェクトの中心にエンプティを置く(回転はローカル座標の回転方向) オブジェクトの一番下の辺の真ん…
アドオンにいろんな機能をつけようと思うとどんどん重たくなってしまう。 実はbpy.ops系は重たいのだ・・・。回避方法 ・何でもかんでもモジュールを呼ばない ・アドオン使用時の数値入力するところを別の場所に作る ・bpy.ops系を使わない 何でもかんでもモ…
平面に枠をつけるアドオンを作った(blender2.8対応) 枠の幅は2種類のが交互につく。 使い方 平面を選択してから3Dビュー→追加→メッシュ→枠 一個のオブジェクトに一個の平面があるもののみ使用可能。 枠の種類は額縁風、風車風、梯子風の3つ。 枠にはすべ…
↓自作アドオンを使うときにこういうのを表示したい オペレータプロパティという名前だそうですね。 使う方法 ・チェックボックスなど使う入力欄の種類ごとにインポートが必要 ・下のアドオン基本構造の「ここからここまで」のところに使用する入力欄の設定を…
meshの順番(index)を表示させるアドオンidCheckerを作った。(Blender2.81向け) 普通のモデリングでは全く必要ないが、あらかじめ用意しておいたオブジェクトの頂点をスクリプトでいじるのに役に立つ...と思う。 初めてgithubを登録して初めてスクリプト…
UIにボタンを追加したいけど検索すると唐突にclassが現れ混乱したので書く。BlenderAPIリファレンスによれば、ボタンを追加するにはclassを使わないといけないらしい。 そして以下の手順が必要らしい。 ・bpy.types.Operatorを使ったクラスを作る ・drawを使…
bpy.ops系は遅いのですよ・・・。 あとどれがアクティブでセレクトなのかとか後で改造するときに調べるの大変なのでなるべくbpy.data系を使っていきたい今日この頃・・・ 拡大縮小 import bpy #bpy.ops系(ローカル座標基準の場合のみ) bpy.ops.transform.res…
毎度毎度座標系のスクリプトを作ろうとして、ド忘れしてひどい目に合うので、分からないなりに考え方と手順を書く。 それぞれの辺の中心に面に垂直かつ面の外側に向かってモンキーを置きたい 図にするとこんな感じ。 手順 1、面の垂直方向を調べる 2、辺の外…
方法1 怪しい命令文を「bpy.context.scene.objects.active 2.8 bpy」などで検索する。 メジャーな命令文なら先人がすでに引っかかって海外サイトのQ&Aに書き込んでたりする。ありがたく読ませてもらう。 方法2 blender公式のBlender Change Logを検索する do…
毎回忘れるエディットモードからのデータ取得方法 bmeshを使用し基本的に面のデータに辺のデータが含まれ、さらに辺のデータに頂点のデータが含まれるという構造になっている。 手順 import bmeshする #オブジェクトモードで選択中の物体のデータを取得 a= b…