またろうのブロマガ

Blender で _L _R を強制的にボーン名の末尾に持ってくる

2020/07/07 01:42 投稿

コメント:2

  • タグ:
  • Blender
  • VRoid
  • MMD_tools
  • スクリプト
  • VRM2PMXConverter
  • Python
VRoid モデル → VRM2PMXConverter → MMD_tools

という回りくどい方法でVroid のモデルを Blender に取り込んだら、
一部のボーンの名前が「 bone01_L_bone01 」みたいな残念な名前になっていて、
ポーズモードでミラー機能が働きません。
この問題を解決するために、ボーン名を強制的に付け替えるスクリプトを組んでみました。
十分な検証はしてないので、ご利用の際は自己責任で。
あと、ニコニコブログの仕様がプログラムコードを載せるのに絶望的に向いていないので、
以下をコピペしてもまともに動くかどうかは不明、python が分かって自分で直せる人じゃないと使えないかも。
とりあえず自分のメモのためにうぷ。
import re
import bpy

for i in bpy.data.armatures:
for j in i.bones:
if re.match( r'^.+_[LR]_.+$', j.name ) :
j.name = re.sub(r'^(.+)_([LR])_(.+)$',r'\1_\3_\2',j.name)

※問答無用で全アーマチュアの全ボーンを処理するようになっているので複数のモデルを読み込んでいる場合は注意
※おそらく物理などには悪影響があると思います、まったく考慮してないので

試した環境は以下です。
  • Windows10
  • Blender 2.82a
  • VRM2PmxConverter_v0.5
  • MMD_tools 0.7.0
  • VRoidStudio 0.9.5

コメント

かんたた
No.1 (2020/11/29 16:57)
VRMとBlenderの連携を試している者なのですが、_Lと_Rが変な位置にあって困ってました。
こちらのスクリプトで問題なく1発で変換できました!
本当にありがとうございます!!
またろう (著者)
No.2 (2020/11/29 17:25)
>>1
コメントありがとうございます。
個人的なメモ+αのつもりで書いた記事なので、他の人のためになるかどうか半信半疑でしたが、
お役に立てて何よりです。

コメントを書き込むにはログインしてください。

いまブロマガで人気の記事