見出し画像

【b3d_mkn】自分で作ったpythonアドオン概念まとめ②マテリアル一括操作ツール【blender/pyside】

正直皆に役立つアドオンってもう世にあるよね

という言い訳をしつつ、アドオンを作る側になった時のアイデアの足しになってくれればという思いでまとめます

chatGPT使えば大体作れるから大丈夫!!大事なのはイマジネーション!!

さて、今回のは前回のシェイプキー操作ツールを作ってた時に

一々マテリアル操作する為に別々のマテリアルのノード弄るのめんどくさく無い? という思いでご用意致しました

考えた仕様
①キャラ用マスク素材が出せるようにする事
 
背景素材等もこの仕様にしたいとは思ってるけど思った以上に色々大変だったので現在ここらへんは停止中

②EEVEEレンダリングでの明度、色相、の色調整変更
③リムとか色々、一般的なトゥーンシェーダーの仕様に則る
④影と主色で制御を変えれるように
④アウトライン素材を分けて出せるように
 ┗pencil+4が来たので解決したので削除

まずマテリアルを構築するか迷いましたが、世に配布されてるものを自分で触ってみて、結果的にkiryToonShaderを選択(genshin Shaderとか他cyclesToonkitとかも触った)

選択理由は単純に要件を満たしており、キャラ表現で不足してる所が無かったという理由と、シェーダーノードグループの中を探らなくてもマテリアル調整が出来る点、とても分かりやすくて助かってます

簡単な仕組み

各マテリアル全て上の仕様に統一しており、それをpysideUIから操作している単純!

殆どミックスカラーとかHSVでやっています

#主に使ってるbpy
bpy.data.materials["materialName"].node_tree.nodes["nodeName"].inputs[0].default_value = 0

自分のnoteでまとめているものに限って言うと案外python使ってます!blenderのアドオン作ってます!というのは誇大広告です、ごめんなさい

他のblendermarketで売ってるアドオンはまぁ凄い手間かかってるけど自分が作ってるのはぶっちゃけ高度な事は全くしてなくて……(pysideとblenderの接続位だろうか)

正直bpyの調整したいパラメーターを探し出してそれをUIで数値を与えているだけ、とても簡単だぁ……

つまり重要な事はただ一つです

これはこれからCGのテクニカル面を勉強したい人に対して伝えたい事なんですが

アドオンやスクリプトを作る上で何事も難しく考える必要は無くて

自分自身が面倒だと思ってる事を洗い出す
②APIドキュメントを見てどの呪文が必要か箇条書きでまとめる
 もしくはchatGPTに聞く(※これが一番楽)
③blenderでコマンドを一つずつ試して挙動を見てみる
④後は無駄のない実装をする

要領よくやりたい場合は
pythonコンソールを開いてからUI上の色々な項目を動かしてみる(オブジェクトの位置とか)
そうすると何の呪文が発動したか書かれるので、それを見ながら学ぶ
次に

bpy.data =blendシーン内にあるデータにアクセスする ※bpy.data.objectsならオブジェクトデータ全てを取得する
bpy.ops =手でポチポチする操作をpythonでやる時に使う
bpy.context =選択(アクティブ)したオブジェクトを取得する時に使う
#まず上の三つで検索かけてどういう事か理解する
for obj in bpy.data.objects:
  print(obj.name)


#上のobj.nameの所を色々変えてみる

上の基本的なとこを理解すれば後は何でも出来ます、blenderのpythonはmayaとかmaxとかmobuに比べれば個人的には触りやすい(個人の感想ですが)と思うので、ぜひ

さいごに

個人的にこのマテリアル一括操作はまぁコスパ良く出来たなと個人的には思っています

色相を変えたりとか
白黒にしたりとか

やっぱ見た目に関わる所はわかりやすくていいですよね
そんなわけで難しい事も確かにあるけど、自動化出来ると楽しい所も確かにあったので、興味があったらやってみましょう
幸運を祈ります


この記事が気に入ったらサポートをしてみませんか?