マキメモ!

3DCG関連の話とかなんか色々適当に書いてます

mayaスクリプト配布 シェルフにPlanarMappingのX,Y,Zボタンを作る

f:id:MackeyCG:20211211190641p:plain

mayaのPlanarMappingですが、

 

デフォルトでX軸投影となっており投影軸を変えるにはマッピングオプションから変更するか、

f:id:MackeyCG:20211211192128p:plain

投影したいオブジェクトを選択後に、Shift+右クリック で選択するかと思います。

f:id:MackeyCG:20211211183038p:plain


今回は、この投影の軸を予め設定したPythonスクリプトを用意して、シェルフに登録し、ボタン操作でPlanarMappingの投影軸を選んでしまおうという話です。

完成イメージ

f:id:MackeyCG:20211211183500p:plain


やり方

① mayaのスクリプトエディタを起動(右下にあるよ)

f:id:MackeyCG:20211211184032p:plain

② +をクリック

f:id:MackeyCG:20211211184117p:plain

③ 出てきたウィンドウでPythonを選択

f:id:MackeyCG:20211211184147p:plain
Pythonタブができます

f:id:MackeyCG:20211211184223p:plain

④ 以下のコードをコピー

# -*- coding: utf-8 -*-
from maya import cmds, mel

face = mel.eval("ConvertSelectionToFaces")
selection_FacesNumber = cmds.ls(sl=True)
cmds.move(0, 0, r=3)
cmds.polyProjection(
    selection_FacesNumber,
    ch=True,
    ibd=True,
    type='Planar',
    md='x',
)
cmds.setToolTo("ShowManips")
 
Pythonタブに貼り付け

f:id:MackeyCG:20211211184309p:plain

⑥ 貼り付けたコードを全選択し、好きなシェルフの好きなとこに、マウス中クリックしながらドラッグアンドドロップ

f:id:MackeyCG:20211211184412p:plain

⑦ 追加されました!試しにキューブなど出してみて、選択後にボタンを押してみてください。X軸のPlanarMappingが行われるはずです。

f:id:MackeyCG:20211211184536p:plain

⑧ これだけだとわかり辛いので、アイコン画像を変更します。
まず、アイコンを右クリックし、Editを選択。出てきた画面のShelvesタブをクリック。

f:id:MackeyCG:20211211184744p:plain

f:id:MackeyCG:20211211184814p:plain

⑨ Mayaのアイコンをクリックし、

f:id:MackeyCG:20211211184900p:plain

出てきたウィンドウのFilterに『polyPlanProjLarge.png』と入力し、エンター。
そしたら下のSelectボタンを押します。

f:id:MackeyCG:20211211185040p:plain

⑩ Icon Label に X と入力し、Save All Shelvesを押します。

f:id:MackeyCG:20211211185235p:plain

⑪ アイコンが変わりました!

f:id:MackeyCG:20211211185253p:plain ←←←  f:id:MackeyCG:20211211184536p:plain


次にY投影を作りましょう。
といってもやり方はほぼ同じで、シェルフに投げ込むコードを以下のものに変更すればいいだけです。つまり手順④をこのコードに置き換えてください。
# -*- coding: utf-8 -*-
from maya import cmds, mel

face = mel.eval("ConvertSelectionToFaces")
selection_FacesNumber = cmds.ls(sl=True)
cmds.move(0, 0, r=3)
cmds.polyProjection(
    selection_FacesNumber,
    ch=True,
    ibd=True,
    type='Planar',
    md='y',
)
cmds.setToolTo("ShowManips")

簡単に言うと md = 'x' の部分が md = 'y' になっただけです。
同様にZ軸投影ボタンは以下のコードをコピペすればいいです。
# -*- coding: utf-8 -*-
from maya import cmds, mel

face = mel.eval("ConvertSelectionToFaces")
selection_FacesNumber = cmds.ls(sl=True)
cmds.move(0, 0, r=3)
cmds.polyProjection(
    selection_FacesNumber,
    ch=True,
    ibd=True,
    type='Planar',
    md='z',
)
cmds.setToolTo("ShowManips")
 

オマケ

f:id:MackeyCG:20211227133929p:plain

ここをbestPlaneにしたやつもアイコン化したいという要望がありましたので、以下のコードをシェルフに投げ込んで、アイコン化すればOKです。

# -*- coding: utf-8 -*-
from maya import cmds, mel

face = mel.eval("ConvertSelectionToFaces")
selection_FacesNumber = cmds.ls(sl=True)
cmds.move(0, 0, r=3)
cmds.polyProjection(
    selection_FacesNumber,
    ch=True,
    ibd=True,
    type='Planar',
    md='b',
)
cmds.setToolTo("ShowManips")
何が変わったかというと md='b' になりました。

f:id:MackeyCG:20211227134312p:plain

アイコンラベル名はBestとかでいいかな。

あとがき

Pythonじゃなくてmelで書いてもいいくらいの簡単なスクリプトですが、Pythonの方に慣れてしまってるのでPythonで書きました。
Pythonスクリプトは個人的に配布の仕方が難しい(というか簡単なやり方がわからない・・・)ので、今回はコードをコピペしてもらって、直でシェルフに登録してもらうことにしました。

なにか不具合や要望などあればTwitterか、記事へのコメントでお願いします。
ではまた!