2018年08月17日

Lightwave Python Script

Lightwave用のPythonスクリプトです。
ご自由に使用いただいて構いませんが、これらのスクリプトにより何らかの損害が生じても、何ら責任は負えませんので、ご了承の上ご使用ください。
バグ報告や再配布ご希望の際はメールやコメント欄などでご連絡お願いします。
2015で動くものは、もしかしたら11でも動くかもしれません。(私がもう11インストールしてないので試していない) やってみたい人はソースの最初の方にある__lwver__の横を 「= "11"」に書き換えて試してみてください。
あと、Macでしか動作確認してないので、もしWinで動かなかったらご連絡ください。


##########【Modeler Script】##########


・krs_Sel_Sk_Weight (Lightwave 2015 or higher)
Download
選択したスケルゴンに割り当てられているウェイトマップを選択状態にします。
krs_Sel_Sk_Weight.jpg
複数選択した場合、最初のスケルゴンのウェイトが選択されます。
普通のスケルゴンでもGENOMAでも動作します。


・krs_Set_GENOMA_Color (Lightwave 2015 or higher)
Download
選択したGENOMAスケルゴン全てのボーンカラーを一括変更します。
krs_Set_GENOMA_Color.jpg
同時に類似のスケッチカラーを割り当てますが、ModelerのスケッチカラーはLayoutのアイテムカラーより色数が少ないので、一部を近似色で置き換えています。
Modeler上で同じスケッチカラーに見えても、LayoutのCreate RIGで変換した際は、設定したアイテムカラーになります。


・krs Rename Genoma Exp (Lightwave 2015 or higher)
Download
GENOMAボーンのリネームは標準でAdd Prefixなどの機能がありますが、エクスプレッションタグの式を一括で変える機能が無いので作った物です。
krs_renameGenomaExp.jpg
エクスプレッションタグが埋め込まれた GENOMA2ボーンを選択して(複数選択可)実行してください。”[”と”.”を目印にアイテム名を判断してリネームします。


・krs_LayerRename (Lightwave 2015 or higher)
Download
FGで選択しているレイヤーに対し、テキスト追加や連番でリネームできます。
krs_LayerRename.jpg
Modelerで開いている複数オブジェクトのレイヤーを同時に選択しないでください。特に連番で変になります。LWのpythonのAPIの都合でして、回避策を探しましたが解決できませんでした。
<v1.1>先頭と末尾から文字数で削除するモードを追加しました。
<v1.2>連番モードで2桁以上の時に並びが不正になるのを修正しました。

・krs_FGsetVisibleLayer (Lightwave 2015 or higher)
Download
モデラーのレイヤーパネルで可視アイコン(目玉マーク)が付いているものだけをFG選択表示します。
krs_FGsetVisibleLayer.jpg
図面とか作業用のレイヤーがいっぱいある時に便利かも。


##########【Layout Script】##########


・krs_Set_Item_Color (Lightwave 2018 or higher)
Download
レイアウトで複数選択でアイテムカラーを一括変更します。
krs_setItemColor.jpg
シーンエディターでも出来るのですが、ショートカットとか割り当てたい場合に。

・krs_hideItems (Lightwave 2018 or higher)
Download
選択アイテムの表示とアクティブを一度に変更します。
krs_hideItems.jpg
他のあのソフトみたいにトグル、選択のみ表示、選択以外だけ表示、全部表示などが出来ます。


##########【Modeler & Layout Script】##########


・krs_Surface_Rename (Lightwave 2018 or higher)
Download
サーフェイス名を一括でテキスト追加、置換、連番リネームします。
ModelerとLayoutどちらでも使えます。(LayoutはObjectモードでのみ起動)
krs_surfaceRename.jpg
Pythonからサーフェイスエディターで選択したリストを取得する方法が見つけられなかったので、ダイアログにリストを表示する方式にしました。
サーフェイス名は同じ名前が同時に存在できないので、リネームの結果が同じになる場合、2つ目以降が弾かれます。(スクリプトに処理を入れてるのではなく、LWに弾かれます。手抜きすんません)
Lightwave2015でも一応は動いたのですが、リネーム後にサーフェイスエディタの表記が変になったり更新されなかったりする(一度サーフェイスエディタを閉じて開き直せば更新されるのですが)ので、2018専用という事にします。
もし2015で使用したい場合は、ソース内最初の方の「__lwver__ = "2018"」を「= "2015"」に変えれば使えます。(「= "11"」にすればLW11でも使える可能性はあります)


・krs_Save_Schema_Pos_Py (Lightwave 2018 or higher)
Download
スケマティックビューのアイテム位置をファイルに保存します。
krs_saveSchemaPosPY.png
選択したアイテムの子孫全てのスケマティック位置とアイテムカラーを保存します。
選択アイテムのみの保存も可能です。


・krs_Load_Schema_Pos_Py (Lightwave 2018 or higher)
Download
ファイルに保存されたアイテムと同じ名前のアイテムのスケマティック位置をロードして割り当てます。
krs_loadSchemaPosPY.png
こちらは階層をたどるのではなく、保存されている名前と同じ名前のアイテムを探してスケマティック位置とアイテムカラーを割り当てる事に注意してください。

普通に使う分には特に難しく無いですが、キャラバリエーションに対応する機能もつけておりますので、必要な場合は以下をお読みください。
私のキャラクターネーミングルールは
CharaName-L_Leg_A2
の様にキャラ名+ハイフン+ボーン名(アンダーバー区切り)という形式なのでその場合に便利なように作られています。
選択したアイテムにハイフンがある場合、ハイフン以前をSpecific Textとして取得します。(”Satomi-Leg_L”の場合、ハイフン以前の”Satomi-”を取得)
Ignore Specific Textをチェックすると、そのテキスト(”Satomi-”)を無視して読み込みます。
ですので、ベースのリグとして”Leg_L”のようにキャラ名なしでスケマティック位置を保存しておけば、別のキャラでもそのファイルをそのまま読み込むことができます。

あと、コンテントディレクトリ直下に「_schematic」という名前のフォルダがを作り、その中に「standard_RIG.svp」で標準リグ用のスケマティック位置ファイルを保存しておけば、デフォルトでそのファイルが指定されます。
posted by htmmovie at 13:19| Comment(0) | CG
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。