アストラルプリズム

PC、スマホ、ゲームなどの備忘録と日記

blender

blender でとにかくベイクだけしたいとき。

blender4.1ノードで設定しないといけないの面倒なとき。 (たぶん、自分はノードアレルギーなんだと思う) Ucupaintっていうアドオンいれる。 UV展開しておく オブジェクトモードでucpaintのタブのQuick…Node setupをクリック 歯車のところをクリック→bake all…

blenderで外部ソフトでテクスチャペイントする

クイック編集が過去と少し変わっていたのでメモ(blender4.1) 初期設定 1.編集→プリファレンス→ファイルパス→アプリケーション→外部ソフト→使いたいソフトの場所を入力2.左下の三のところで「プリファレンスを保存」 使い方 画面表示をテクスチャペイン…

Blender アマビエさまを作ってみた(3)

三回目ですネ。 水木しげる先生風点描をコンポジットで再現してみることにする。 ↓二回目はこちら katsumi3.hatenablog.com このアマビエ様は線画より点描でかかれてますね。 じっくり見ると手とかくちばしとかは点描が密になって陰で輪郭を表してるように見…

Blenderで点描トーンを作る

点描トーンが作りたいです。 コンポジットでやろうとしたらうまくいかなかったですorzマテリアルで作ります 板ポリの真上にカメラを置いてカメラを平行投影に設定。 シェーディングでポロノイと数式(小さい)をマテリアルに追加 2dとF1ユークリッドにする…

blender アマビエさまを作ってみた(2)

第二回ですね。 うろこを作ります。 ↓第一回はこちら katsumi3.hatenablog.com 実際は全身に鱗のテクスチャを貼るのが楽かもしれないですけど、面白いのでうろこのポリゴンを貼り付けることにしました。 うろこをポリゴンで作ってモディファイアのソリッドで…

blender アマビエさまを作ってみた(1)

目標は水木しげる先生のアマビエさま絵の再現って感じです アマビエさまの下半身どうなってるの? 水木先生の絵には下半身書かれてないですね。 水木しげる記念館で撮影したものです アマビエさまは鬼太郎アニメ公式によると下半身は人魚みたいに魚っぽい。…

Blender addon配布 襖を作るアドオン

襖を作るアドオンです。 なんとなく日本家屋っぽいものを作ろうとしたときに窓とか襖とか同じような形状が多くないですか? 多いですよね。なのでこういうのあれば楽だろうなと思って作りました。 多角形でもできるようにとかどんな角度でもとやってたら結構…

blender python 何が遅いのか調べてみた

自作アドオンが遅い。 何が遅いのか調べてみたメモ ops系が遅いのはすでに調査済み 結論として遅くなる原因はblender関連だけでその他はひどく遅くなることはなかった。 テスト用にめちゃめちゃ沢山print文つけてるとか、オブジェクトを取得する際に名前で取…

Blender python 一番下の辺のindexを取得する。

それぞれの辺の中点を比較して一番zが低い値を一番下としている スクリプトの最初位にやってて間違えてて、後の設定全部直す羽目になってて今半泣き状態。 一番最後の番号の時は最初の番号の頂点の中点をとる。 import bpy,bmesh from mathutils import Mat…

Blender bpy Marix_worldでオブジェクトを操る

Matrixを使ってオブジェクトを操る グローバル座標での移動 正直言うとグローバル座標ではobj.location、obj.rotation、obj.scaleを使った方が楽だし早い。 グローバル座標でオブジェクトをZ方向に1移動する obj.location = obj.location + Vector((0,0,1)) …

blender python 最速伝説

blender bpyでops系が遅いのはわかってるがdata系ではmesh、bmesh、Matrix・・・どれが早いのか実際に調べてみた簡単に立方体をグローバルY方向に3移動を100回繰り返す 長いので最初に結論。・オブジェクトモードならobj.locationとmatrix_world.translation…

blender python 角度の値がおかしい時

平面をオブジェクトモードで拡大縮小してから編集モードで回転させてcalc_angle()で角の角度を取得すると値がおかしい。 3Dビューのビューポートオーバーレイで面の角度表でも同じ現象が起きてる どの辺も90°になるはずなのだが・・・内部が同じかどうかは…

normalをグローバル座標に変換する

matrix_world を掛ければいいかと思ってたらそうでもなかった。 import bpy obj = bpy.context.object mat = obj.matrix_world msh = obj.data norm = msh.polygons[0].normal mx_inv = mat.inverted() mx_norm = mx_inv.transposed().to_3x3() world_norm =…

Blender python オブジェクトの一番下にエンプティを置く

自作アドオンで何回か使いそうな気がするのでいくつか作っておこうと思う オブジェクトの原点にてエンプティを置く(回転はローカル座標の回転方向) オブジェクトの中心にエンプティを置く(回転はローカル座標の回転方向) オブジェクトの一番下の辺の真ん…

blender python アドオンの動きを軽くする

アドオンにいろんな機能をつけようと思うとどんどん重たくなってしまう。 実はbpy.ops系は重たいのだ・・・。回避方法 ・何でもかんでもモジュールを呼ばない ・アドオン使用時の数値入力するところを別の場所に作る ・bpy.ops系を使わない 何でもかんでもモ…

blender python UV頂点座標の取り方メモ

uvの頂点データの編集方法がよく分からないimport bpy,bmesh obj = context.active_object msh = obj.data bm = bmesh.from_edit_mesh(msh)uv_layer = bm.loops.layers.uv.active bm.faces[0].loops[0][uv_layer].uvという謎のコマンドでUVの頂点座標が取得…

Blender addon配布 平面に枠をつけるアドオン

平面に枠をつけるアドオンを作った(blender2.8対応) 枠の幅は2種類のが交互につく。 使い方 平面を選択してから3Dビュー→追加→メッシュ→枠 一個のオブジェクトに一個の平面があるもののみ使用可能。 枠の種類は額縁風、風車風、梯子風の3つ。 枠にはすべ…

Blender python アドオン使用時の数値入力欄の作り方(オペレータプロパティの使い方)

↓自作アドオンを使うときにこういうのを表示したい オペレータプロパティという名前だそうですね。 使う方法 ・チェックボックスなど使う入力欄の種類ごとにインポートが必要 ・下のアドオン基本構造の「ここからここまで」のところに使用する入力欄の設定を…

Blender python頂点間の距離を取得する5つの方法

頂点1と頂点3の距離を知りたい 方法は5つある。 ・公式から計算する ・calc_lengthで辺2の長さを取得する(ローカル座標のみ) ・.lengthを使う ・numpyを使う ・scipyを使う(blenderにPIP必要) 公式から計算する この場合はそんなに長くないし確実にやっ…

Blender python bmeshのデータ更新のタイミング

bmeshのデータ更新について調べてみた。 オブジェクトモードと編集モードでは更新タイミングが違うので要注意。長くなるので結論だけ先に書く ################################## オブジェクトモードで使う場合 命令文: bm = bmesh.new() bm.from_mesh(pla…

Blender python bmeshを重ねて使ったらBlender落ちた

オブジェクトモードのままbmeshをいじるのと編集モードでいじるのを同じbmという名前にしたら落ちた。 (どこで落ちるか調べるように作ったやつなので中身に意味はない) def内のbpy.ops系が動かなくなった件を調べようと作ったがops系が動かない現象再現せず…

Blender ノーマルの向き

ノーマル軸に沿って操作する時の注意 (辺や頂点のノーマル方向は数値で取れない) 物体の面を選択してる場合 面の垂直方向はノーマルZ軸なのは一定。 面の長手方向が自動的にノーマルY軸になる。 何の罠だよ何の罠だよ何の罠だよ!! 変形させた後にノーマ…

blender python 角度を指定してshearする

角棒の厚みや太さを変えずに端面を角度を指定して変更したいので作ってみた 角棒の長手方向をローカルのX軸とする 直方体のみ使用可能(二回目からは指定した角度での辺の移動量しか動かない) import bpy , bmesh from math import radians , tan obj = bpy…

blender python forの最後にゼロ番目の値を使いたい

輪になってるメッシュで今の頂点座標を隣の頂点座標に足して・・・最後の頂点と一番最初の頂点座標に足すというのをしたい時用。 これはしっかりメモとりたい・・・。というようなfor文を書くには import bpy , bmesh obj=bpy.context.object bpy.ops.object…

blender python オブジェクトの原点を座標指定して移動する

手動だとカーソルを介してオブジェクトの原点を移動するんだけどカーソルを動かすの超めんどいのでMatrix_worldを使って移動する。手順としては ・編集モードで全部の頂点(メッシュ)を新しく設定したい原点位置からの距離に移動 ・オブジェクトモードでオ…

blender python bmeshをオブジェクトモードで使う方法

編集モードにしてからbmesh.from_edit_mesh(obj.data)してたけど編集モードにしなくてもbmesh使える。 頂点の座標だけ取ってすぐ別のオブジェクトを編集したいときとかに便利。こんなのあるなんて知らなかったよ…。編集モードを使う場合 import bpy, bmesh o…

Blender python meshの順番(index)を表示するアドオン

meshの順番(index)を表示させるアドオンidCheckerを作った。(Blender2.81向け) 普通のモデリングでは全く必要ないが、あらかじめ用意しておいたオブジェクトの頂点をスクリプトでいじるのに役に立つ...と思う。 初めてgithubを登録して初めてスクリプト…

Blender python UIにボタンを追加する

UIにボタンを追加したいけど検索すると唐突にclassが現れ混乱したので書く。BlenderAPIリファレンスによれば、ボタンを追加するにはclassを使わないといけないらしい。 そして以下の手順が必要らしい。 ・bpy.types.Operatorを使ったクラスを作る ・drawを使…

blender python 多角形の内角を知りたい

多角形の内角を知りたい。 bmeshを使う場合 一枚のポリゴンの場合 import bpy, bmesh from math import degrees obj = bpy.context.object bpy.ops.object.mode_set(mode = 'EDIT') bm = bmesh.from_edit_mesh(obj.data) bm.faces.ensure_lookup_table() rad…

Blender pythonでメッシュから立方体を作る。

3Dビュー→追加→メッシュ→立方体で作られるメッシュと同じものを作りたい。この立方体実はBlenderを起動したときに出てくる立方体とは面の向きが違うのでちょっと注意が必要なのである。 bpy.ops系の場合 一行で済む bpy.ops.mesh.primitive_cube_add(enter_…