【スクリプト未経験者向け】MayaでPythonを実行する方法とフリーツールの使い方を解説!

scriptExecute_eyecatch おすすめの学習方法
セミナーのお知らせ

10/2(水)のセミナーは終了しました。
受講いただいた皆様、ありがとうございました。次回のセミナーもお楽しみに!

CGWORLD +ONE Knowledge
【クリエイティブ時間を最大化】できる!はじめてのmayaPython②

https://tutorials.cgworld.jp/con/1997?from_category_id=48

こんにちは!ビーバー@デザイナー&Pythonで業務効率化実践中 です。

フリーツールやPythonスクリプト、ゲットしたはいいが実行や起動の方法がわからない。。泣く泣く別の解決手段を探している、こんな経験をしたことはありませんか?

こんな悩みは、基本的なスクリプトの使い方を覚えることで瞬時に解決します。この記事は、スクリプト未経験のあなたのとなりに座って説明するような気持ちで、スクリプトの実行方法、ツールの起動方法についてまとめました。

今回はおまけとして、便利な「名前で選択」ツールも配布しちゃいますよ!配布のツールを使って、このページで紹介しているツールの実行と起動をためしてみてくださいね。

最初のやり方さえおさえてしまえば、あとはお好きなスクリプトを実行し放題。この記事でポイントを押さえて、フリーツールが使えないなんて悲しみとは永遠におさらばしましょう!

この記事を読んでわかること
  • Maya で Pythonスクリプトを実行する方法
  • フリーツールを起動する方法
  • (おまけ)便利な「名前で選択」ツールを配布!

※当サイトで紹介する商品は、アフィリエイトプログラムを利用しています。

スクリプトの実行方法

最初に、スクリプトそのものをスクリプトエディタから実行する方法を紹介します。

ピヨちゃん
ピヨちゃん

便利な「名前で選択」ツールのスクリプトを見つけたんだ~☆これを使って作業効率を、超アップしちゃうよ!

import maya.cmds as cmds
import webbrowser

def select_node(*args):
    node_name = cmds.textField('nodeNameField', query=True, text=True)
    if cmds.objExists(node_name):
        cmds.select(node_name, replace=True)
    else:
        cmds.warning(f"ノード '{node_name}' が見つかりません。")
        cmds.inViewMessage(assistMessage=f"ノード '{node_name}' が見つかりません。",
                           pos='midCenter', fade=True)

def open_help(*args):
    webbrowser.open('https://kimstation.com/')

def create_ui():
    if cmds.window("nodeSelectorWindow", exists=True):
        cmds.deleteUI("nodeSelectorWindow")
    
    window = cmds.window("nodeSelectorWindow", title="SelectByName",
                         widthHeight=(405, 100))
    
    main_layout = cmds.columnLayout()
    
    # タイトルとヘルプアイコンを横に並べるための行レイアウト
    title_row = cmds.rowLayout(numberOfColumns=2, columnWidth2=(385, 20), adjustableColumn=1, parent=main_layout)
    cmds.text(label="SelectByName", font="boldLabelFont", align="left", parent=title_row)
    cmds.iconTextButton(style='iconOnly', image1='help.png', width=20, height=20, 
                        command=open_help, annotation="ヘルプを開く", parent=title_row)
    
    cmds.setParent(main_layout)
    
    cmds.text(label="ノード名を入力してください:")
    cmds.textField('nodeNameField', width=400)
    cmds.separator(style="none", height=10)
    cmds.button(label="選択", command=select_node, width=100)
    
    cmds.showWindow(window)

create_ui()
ピヨちゃん
ピヨちゃん

……ってこれ、どこでどうやって使うんだ。。

ハムちゃん
ハムちゃん

ピヨちゃん、大丈夫?やり方を覚えると簡単だよ。ぼくが解説するね!

ピヨちゃん
ピヨちゃん

ハムちゃん、、、お願いします!(涙目)

スクリプトエディタを起動する

まずはPythonスクリプトを起動するスクリプトエディタを立ち上げましょう!
↓ボタンから起動するには、Mayaメインウィンドウの右下の「;」セミコロンアイコンをクリック。

↓メニューから起動する場合は、ウィンドウ > 一般エディタ > スクリプトエディタ です。

↓スクリプトエディタが起動しました。上下に2分割されていますね。
下半分がスクリプトを入力する「入力ペイン」、上半分は実行した結果が表示される「履歴ペイン」になります。

スクリプトを実行する方法

①↓スクリプトをコピーして、スクリプトエディタの下半分のエリア、Pythonタブ内に貼り付けます

import maya.cmds as cmds
import webbrowser

def select_node(*args):
    node_name = cmds.textField('nodeNameField', query=True, text=True)
    if cmds.objExists(node_name):
        cmds.select(node_name, replace=True)
    else:
        cmds.warning(f"ノード '{node_name}' が見つかりません。")
        cmds.inViewMessage(assistMessage=f"ノード '{node_name}' が見つかりません。",
                           pos='midCenter', fade=True)

def open_help(*args):
    webbrowser.open('https://kimstation.com/')

def create_ui():
    if cmds.window("nodeSelectorWindow", exists=True):
        cmds.deleteUI("nodeSelectorWindow")
    
    window = cmds.window("nodeSelectorWindow", title="SelectByName",
                         widthHeight=(405, 100))
    
    main_layout = cmds.columnLayout()
    
    # タイトルとヘルプアイコンを横に並べるための行レイアウト
    title_row = cmds.rowLayout(numberOfColumns=2, columnWidth2=(385, 20), adjustableColumn=1, parent=main_layout)
    cmds.text(label="SelectByName", font="boldLabelFont", align="left", parent=title_row)
    cmds.iconTextButton(style='iconOnly', image1='help.png', width=20, height=20, 
                        command=open_help, annotation="ヘルプを開く", parent=title_row)
    
    cmds.setParent(main_layout)
    
    cmds.text(label="ノード名を入力してください:")
    cmds.textField('nodeNameField', width=400)
    cmds.separator(style="none", height=10)
    cmds.button(label="選択", command=select_node, width=100)
    
    cmds.showWindow(window)

create_ui()

②↓入力ペインにスクリプトをコピペできたら、実行してみましょう。
 スクリプトエディタのメニュー下、青い三角が2つのボタンを押すと、入力したスクリプトのすべてを実行することができます。

③↓ツールが起動できました!

フリーツールの実行方法

つぎは、フリーツールなど、.py形式で配布されているスクリプトの実行方法を紹介します。

ピヨちゃん
ピヨちゃん

今度はコードじゃなくて、ツールの.pyファイルをゲットしたよ。

これを使ってみよう!

【ツールの起動方法】
解答したフォルダに入っている.pyファイルをscriptフォルダに入れて、
import selectByName
selectByName.create_ui()
を実行してください

ピヨちゃん
ピヨちゃん

……って、ちょっと何言ってるかわかんない(爆)

ハムちゃん
ハムちゃん

ピヨちゃん、、大丈夫だよ!お作法を知ればなんてことはないんだ。

ピヨちゃん
ピヨちゃん

ハムちゃん、、、お願いします!(2回目)

スクリプトをmaya指定のフォルダに入れる

DLしたファイルが、インストーラでなく.py形式のファイルだった場合は、スクリプトをmaya指定のフォルダに入れる必要があります。

サンプルを用意しましたので、こちらでやってみましょう!

①↓ボタンからツールをダウンロードし、ダウンロードフォルダを開く。
  selectByName.zip を 右クリック > すべて展開…

②↓おこのみの場所を指定して、「展開」をクリック

③↓ファイルが展開されたら、selectByName.pyを、ctrl + Cで コピー

④↓selectByName.pyを以下の場所にペースト(ctrl + V)

C:\Users\ユーザ名\Documents\maya\202x\ja_JP\scripts

ハムちゃん
ハムちゃん

ユーザ名のところは、windowsにログインするときのアカウント名、
202xには、使用中のmayaのバージョンをいれた場所だよ!

Q
なんでこの場所なんですか?
A

Mayaをインストールするときに、スクリプトの置き場所として
C:\Users\ユーザ名\Documents\maya\202x\ja_JP\scripts が自動で指定されます。

ハムちゃん
ハムちゃん

もしインストール場所を初期の所から変えているorスクリプトの置き場所を変えている人は、その場所を指定してね。

フォルダに入れたスクリプトを実行する方法

ハムちゃん
ハムちゃん

スクリプトをmaya指定の場所に置いたら、あとはツール作成者さんが示しているコード(赤字の部分)をスクリプトエディタで実行するんだよ!

【ツールの起動方法】
解答したフォルダに入っている.pyファイルをscriptフォルダに入れて、
import selectByName
selectByName.create_ui()

を実行してください

①スクリプトの実行コードをコピーして、スクリプトエディタの入力ペインに貼ります。

import selectByName
selectByName.create_ui()

コードをはりつけて、実行。

②↓ツールが起動しました!

ハムちゃん
ハムちゃん

こっちの方法は、maya指定のフォルダに格納したスクリプトの中身を呼び出して実行しているんだ。

ピヨちゃん
ピヨちゃん

じゃあ、.pyファイルの中身をコピペしてスクリプトエディタで実行するのか、格納しといた.pyファイルから呼び出すのか?って違いで、同じことをやってるの?

ハムちゃん
ハムちゃん

そのとおり~!

簡単に実行できるようにしよう

スクリプトエディタに書いてあるコードをシェルフのボタンにして、ボタンからスクリプトを実行できるようにしておくと便利です。

①シェルフの左側の歯車ボタンをクリック > 新しいシェルフ

②新規シェルフの名前を入力します

③ボタンにしたいコード部分をハイライトして、シェルフにドラッグ&ドロップ。今回は、下記のコードをボタンにしてみます。

import selectByName
selectByName.create_ui()

④タイプを聞いてきますので、「Python」をクリック

⑤シェルフにPythonのボタンができました!こちらをクリックでツールを起動することもできます。

⑥ボタンに名前を付けたかったら、シェルフ左側の歯車アイコン > シェルフエディタ

⑦シェルフエディタから、「アイコンのラベル」欄にすきな名前をつけましょう。selByNameにしてみました。

⑧↓こんな感じになります。見切れやすいので短い名前がおすすめです。

まとめ

今回は、

  • Maya で Pythonスクリプトを実行する方法
  • フリーツールを起動する方法

をご紹介しました。スクリプトを直接実行するには、スクリプトエディタの下部、入力ペインにコードを張り付けて、

青い三角2つのボタンですべて実行。
.pyファイルからスクリプトを実行するには、.pyファイルを

C:\Users\ユーザ名\Documents\maya\202x\ja_JP\scripts

この場所において、ツール作成者さんが提供してくださる実行コードをスクリプトエディタから実行、でした!

サンプルとして、便利な「名前で選択」ツールを配布しますので、こちらを使って実行の練習をしてみてくださいね!

これからも、皆さんの役に立つ情報を発信していきますので、また見に来てくださいね!

※ツールのご使用にあたっては、ご自身の判断と責任でお願い致します。

このサイトでは、スクリプト未経験や初心者の方向けに、maya pythonさいしょの一歩をサポートする情報を発信しています。

【Maya Pythonはじめての方におすすめの記事】

すでに誰かの作ったツールを使うだけでなく、自分でスクリプトを書いてみたいという方の0→1を応援します!

今は、大量生産があたりまえで、プログラミングを使った効率化が求められる時代。スクリプトを使えるようになって、スキルアップ&キャリアアップを目指しましょう!

コメント

タイトルとURLをコピーしました