maya script の入れ方・使い方 カンタン解説!

python入門
過去セミナー再配信のお知らせ

過去2回のセミナーが期間限定でアンコール配信中です!
「MayaPython習得に苦しんだ過去の自分に教えてあげたい。。」調べてもわからなかったこと、教えて欲しかったことを、とことん詰め込みました。初心者の方はぜひご覧ください!

ツール作成の全体フローを最短距離で体験できます。スクリプト未経験の方におすすめ!
https://tutorials.cgworld.jp/set/2050

Mayaのオペレーションの自動化について徹底解説。様々な操作を自動化できるようになります
https://tutorials.cgworld.jp/set/2041

こんにちは!ビーバー@ゲーム業界歴約20年python勉強中 です。スクリプト初心者の方に向けて、カンタン・丁寧なスクリプト解説サイトを作っています。

今日は、「スクリプトの入れ方、使い方がわからん!」というお悩みをお持ちの皆さんに、pythonスクリプトの入れ方、使い方を解説していきますよ~!

スクリプトの構造や、読みこみ方の基本についても解説していくので、今まで意識せず使ってきたものも「こういう仕組みだったのか!」とスッキリすると思います。それでは行ってみましょ~☆

この記事は、maya python初心者の方向けに
pythonスクリプトの入れ方・使い方について解説していきます。

>> Pythonの勉強方法を知りたい方はこちらをどうぞ

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

スクリプトの入れ方

スクリプトの入れ方、、それはズバリ、

スクリプトの入れ方

mayaの規定フォルダに.pyファイルを入れる

であります!

ピヨちゃん
ピヨちゃん

この1行が、わかるようでわからんのよ!(笑)
くわしくお願いしま~す☆

ハムちゃん
ハムちゃん

オッケー!じゃあ、まずは入れ方から見ていこう!

maya規定フォルダってどこ?

マイドキュメントのmayaフォルダの中です!

  • C:\Users\ユーザ名\Documents\maya\scripts
    →すべてのmayaバージョンで有効
  • C:\Users\ユーザ名\Documents\maya\2020\ja_JP\scripts
    →フォルダ名のmayaバージョンでのみ有効

※「ユーザ名」の部分は自分のアカウント名をいれましょう!

【ちょっと補足】
mayaでは2021まではpython2、2022以降はpython3を使用しています。
python2と3は、一部で互換性のない部分があります。

たとえば、maya2020でスクリプトを作り、maya\scripts以下にいれたとしても、
maya2022以降では動かないこともあるかもしれない点に注意しましょう。

ピヨちゃん
ピヨちゃん

mayaフォルダ直下のscripts以下と、
バージョン別のフォルダ以下、どっちかにいれるといいんだね。

ハムちゃん
ハムちゃん

そうだよ!カンタンでしょ?

ピヨちゃん
ピヨちゃん

うん、規定の場所はわかったよ!
じゃあさ、自分で作ったフォルダにスクリプトは入れちゃだめなの?

ハムちゃん
ハムちゃん

その場合は、mayaにちゃんと教えてあげる必要があるよ。
やり方を紹介していくね。

※mayaのバージョンとpythonバージョンについては、この記事も読んでみよう!

※さっそく使い方を知りたい人は使い方へジャンプ!

自分で作ったフォルダに入れたい場合は?

MAYA_SCRIPT_PATHという、「環境変数」を設定する必要があります。

ピヨちゃん
ピヨちゃん

カンキョーヘンスー(泣)????

ハムちゃん
ハムちゃん

大丈夫!ようするに、mayaが見に行きたいパスを「MAYA_SCRIPT_PATH」っていう
ハコに入れとくってことだよ。

環境変数を設定する、Maya.envの場所

環境変数は、Maya.env というファイルに書いて指定します。
場所はここ↓

  • C:\Users\ユーザ名\Documents\maya\バージョン名
maya2020の.envがあるフォルダの例

Maya.envに、環境変数を追記

この Maya.env を、メモ帳などのテキストエディタで開いて、パスを書き足します。
書き足されたパスは、mayaの規定パスに追加される形でmayaから参照されます。

例えば、マイドキュメント以下にtestフォルダを作って、
そこにスクリプトをいれたいなら、、

Maya.env にこのように書きます。

MAYA_SCRIPT_PATH = C:\Users\ユーザ名\Documents\test\

.envを保存後、mayaを再起動

.envを保存後、mayaを再起動。…するとあら不思議!

mayaに、パスの通っているフォルダを問い合わせると、このとおり↓
ばっちりenvに書き込んだパスも見てくれるようになります。

ピヨちゃん
ピヨちゃん

おお!スゲー!
ねえねえ、パスの通っているフォルダって、どうやって問い合わせたの?

ハムちゃん
ハムちゃん

オッケー!じゃ、その方法も紹介しちゃうね☆

いっぱいある!パスの通っているフォルダの確認方法3つ

mayaが「ここに〇〇があるね」っと認識しているフォルダのことを、
「パスが通ってる」なんて言ったりします。パスが通っている場所の調べ方を 3つ紹介します。

python os.environ で調べる方法

スクリプトエディタの pythonタブに、以下のように記述して実行します。

from maya import cmds
import os

for path in os.environ["MAYA_SCRIPT_PATH"].split(";"):
    print(path)
ハムちゃん
ハムちゃん

os.environ単体で調べると、1行になって返ってきちゃうから、

.split と forを使って、パスごとに改行するようにしているよ!

ヒストリにパスが返ってきたところ

mel getenv で調べる方法

スクリプトエディタの MELタブに、以下のように記述して実行します。

getenv MAYA_SCRIPT_PATH;

実行結果は↓こちら。1行になっちゃってるので読みにくいですね(汗)

なので、改行表示させます。
pythonからmelを呼び出してfor文で処理します。こちら↓

import maya.mel as mm

pathes = mm.eval("getenv MAYA_SCRIPT_PATH;")
for path in pathes.split(";"):
    print(path)
ハムちゃん
ハムちゃん

結果はpythonで調べた時と同じなので割愛^^

mel internalVar で調べる方法

MELの internalVarコマンド では、
mayaが必ずスクリプトを探しに行く規定フォルダを調べることができます。
スクリプトエディタの MELタブに、以下のように記述して実行します。

internalVar -userScriptDir;

こんな感じでかえしてくれます。

ハムちゃん
ハムちゃん

個々人のPC環境によって、微妙にフォルダのパスが変わったりするけど、
このコマンドを使えば、自分の環境でmayaが見に行くフォルダがわかるよ!

オススメはデフォルトのmaya規定フォルダ

…というわけでまとめると、スクリプトの入れ方は、
デフォルトの規定フォルダに入れておけばOK!です。

ハムちゃん
ハムちゃん

カスタムフォルダは、複数メンバーで作業する場合、
みんなのパスをそろえる必要があったりして使うことが多いね。

用途に合わせてつかってみてね!

スクリプトの使い方

入れることができたので、つぎは呼び出して使う方法を解説!

モジュールをインポートし、 モジュール名.関数名() を実行

スクリプトの使い方は、
モジュールをインポートし、モジュール名.関数名()を実行
です!

スクリプトの使い方

モジュールをインポートし、モジュール名.関数名()を実行

ピヨちゃん
ピヨちゃん

なんじゃそら~~⤵(汗)なに言ってるか分からん、もっと簡単に教えて?(泣)

ハムちゃん
ハムちゃん

もちろんさ!さあ行くぞ~☆

インポート・モジュール・関数ってなんだそれ?解説!

つまり、

  • インポートとは、規定のフォルダに入れた.pyファイルを
    mayaで使えるように読みこんでおくことです。
  • モジュールとは、.py形式で保存されたファイルのことです。
  • 関数とは、.pyファイルの中で書かれている定型処理のことです。
ピヨちゃん
ピヨちゃん

次々によくわからんことを(笑)もっとわかりやすく教えて~?

ハムちゃん
ハムちゃん

OKOK!んではもっと砕いて!

インポートとは?

インポートとは、規定のフォルダに入れた.pyファイルを
mayaで使えるように読みこんでおくことです。

ピヨちゃん
ピヨちゃん

あれ?規定フォルダに入れてあるから、もう読めてるんじゃないの?

ハムちゃん
ハムちゃん

ううん、それがね、
「読みに行けるようになってる」という状態にはなってるけど、
実際の読み込みはまだされていないんだ。

ピヨちゃん
ピヨちゃん

ええー-?!そうなの?なんで?

maya規定の場所に .pyがおいてあれば、mayaはそれを読みに行ける状態ではあるのですが、
起動時に全部読みこむことはしません。

.pyは いくらでも増やせるため、もし膨大な量があったときに
それを起動時にすべて読もうとするとどうなるでしょうか、、
そう、立ち上がりがものすごく遅くなるかもしれません。
だから必要になったときに、都度読みこむほうが効率的なのです!

読み込みを行うには、pythonコマンドの「import」を使います。
文法は、このとおり。

スクリプトの読み込み

import モジュール名

この一文で、mayaは認識しているパスの中に、モジュール名の.pyファイルがあるかを検索し、
あれば読みこみ、使えるようにしてくれます。

ピヨちゃん
ピヨちゃん

ち、、ちょっとまった!(汗)モジュールってなんだったっけ??

ハムちゃん
ハムちゃん

OK!じゃあモジュールの説明にいくね。

モジュールとは?

モジュールとは、.py形式で保存されたファイルのことです。

pythonで書かれたスクリプトは、.pyという拡張子で保存されます。(中身はテキスト)
いろいろな特定の定型処理を書いて保存しておき、使いたいときに読みこんで使用します。
このように特定の目的で保存された処理のことを、モジュールと言います。

ピヨちゃん
ピヨちゃん

なんだ .pyファイルのことか、、モジュールなんていうから
なんかすごいものなのかとビビったよ。。。

ハムちゃん
ハムちゃん

ふふっ。実際にやってみればイメージがつくよ。
実際のファイルで説明するね。

ハムちゃん
ハムちゃん

例として、 makePrimitives.py というファイルを作ったよ。
右側のメモ帳の画面は、.pyファイルを開いたところだね。

ピヨちゃん
ピヨちゃん

.pyファイルって、たいそうに感じてたけど
ただのテキストなんだね~

.pyファイルの構成

基本的な.pyファイルの構成は、こんな感じ↓です。

  • 冒頭に定型処理のお名前宣言がかかれている
  • その下に定型処理の中身が書かれている
ハムちゃん
ハムちゃん

def っていうのが、定型処理の名前を定義する宣言だよ。
その下の行からが、定型処理の中身になるんだ。

ピヨちゃん
ピヨちゃん

そうなんだ~!

そしたら、この makePrimitives モジュールには、

cmds.polyCube()、つまりポリゴンのボックスを作成するっていう
定型処理が入っているんだね!

ハムちゃん
ハムちゃん

そのとおり~~~!

関数とは?

ハムちゃん
ハムちゃん

ここまで理解出来たら、関数もバッチリだね!

関数とは、.pyファイルの中で書かれている定型処理のことです。

定型処理に名前をつけて、名前で呼び出せるようにしたものが関数です。
図の例だと、makebox() が関数名です。

ピヨちゃん
ピヨちゃん

そっか!じゃあ、↑図の makePrimitivesモジュールは
makebox関数、を持ってるってとらえればいいのかな?

ハムちゃん
ハムちゃん

そのとおり~~~!!

スクリプトの入れ方・使い方実例!

それでは、先ほどのmakePrimitives.pyの例をとって、
実際のスクリプトの入れ方・使い方を見ていきましょう!

かんたんにスクリプトをおさらいします。

スクリプト名は makePrimitives.py
中身の処理は、ポリゴンボックスを作成する、というシンプルなもの
関数名は、makebox() です。

入れ方実例

それではまず、スクリプトを入れます。

スクリプトの入れ方

mayaの規定フォルダに.pyファイルを入れる

なので、、、maya規定フォルダに、makePrimitives.pyファイルを入れます。

【Maya規定フォルダの場所】

  • C:\Users\ユーザ名\Documents\maya\2020\ja_JP\scripts
  • C:\Users\ユーザ名\Documents\maya\scripts
ハムちゃん
ハムちゃん

バージョン名以下の方に入れたよ。
これでOK!特に再起動はいらないね。

※規定フォルダが個人環境で変わっている場合、かんたんに調べる方法はこちら

使い方

次に使い方です。

スクリプトの使い方

モジュールをインポートし、モジュール名.関数名()を実行

なので、、、まず、モジュールをインポートします。
pythonでのインポート文はこのとおり↓

スクリプトの読み込み

import モジュール名

makePrimitivesモジュール(.pyファイル)をインポートしたところ
ピヨちゃん
ピヨちゃん

実行したけど何も起こらないよ?(焦)

ハムちゃん
ハムちゃん

大丈夫!エラーがなければ、ちゃんと読みこめてるよ。



インポートができたら、関数を呼び出して実行します。

関数の呼び出し

モジュール名.関数名()を実行

ピヨちゃん
ピヨちゃん

うわー!!ちゃんとボックスができたよ。

スクリプトをいれて使うことができたんだね。うれしー!

ハムちゃん
ハムちゃん

やったね☆!!

もしモジュールを更新した場合は、自動反映されないのでリロードしましょう!
スクリプトエディタのpythonタブから
reload(makePrimitives)
で、リロードができます。
※python2のみ。3は記述が異なります。

こちら↓では、作成したスクリプトを関数化して呼び出すまでの手順を紹介しています。
合わせてどうぞ~
【maya python9限目】スクリプトを保存・呼び出して使おう!

まとめ

スクリプトの入れ方・使い方をまとめます。

スクリプトの入れ方

mayaの規定フォルダに.pyファイルを入れよう!

【Maya規定フォルダの場所】

  • C:\Users\ユーザ名\Documents\maya\2020\ja_JP\scripts
  • C:\Users\ユーザ名\Documents\maya\scripts
ハムちゃん
ハムちゃん

Maya.envに「環境変数」を指定するよ!

環境変数の中に、フォルダのパスを書くんだ。

自分が作ったフォルダにパスが通ったか確認する方法は3つ!

ハムちゃん
ハムちゃん

スクリプトを入れる場所のオススメは、デフォルトのmaya規定フォルダだよ!

ピヨちゃん
ピヨちゃん

つづきまして、スクリプトの使い方は?

スクリプトの使い方

モジュールをインポートし、モジュール名.関数名()を実行

  • インポートとは?
    規定のフォルダに入れた.pyファイルを、mayaで使えるように読みこんでおくことです。
  • モジュールとは?
    .py形式で保存されたファイルのことです。
  • 関数とは?
    .pyファイルの中で書かれている定型処理のことです。
ハムちゃん
ハムちゃん

OK!これでスクリプトの入れ方&使い方はバッチリだ☆
ジャンジャン使ってくれたまえ~~い!

はじめてpython学習するなら!

はじめてプログラミングを勉強するとき、エラーはつきものですよね。
何時間もスクリプトが動かないこともしばしば。。
そんな時、くわしい人に教えてもらいたい、と思うことはありませんか?

侍テラコヤは、はじめてpythonを学習する方にピッタリのサービスです。
サブスク型オンラインスクールで、月¥2980~の良心的なお値段!

現役エンジニアのサポートが充実しており、
オンラインのマンツーマンレッスンとQ&A掲示板で即座に悩みを解決することができます

maya python基礎

本サイトの【まとめ】 maya python 基礎 入門!では、
10回シリーズでmaya pythonの基礎が習得できるコンテンツを発信しています。

  • ちまたのスクリプトを読んで、内容を理解したい
  • mayaのスクリプトリファレンスの読み方を習得したい
  • 自分で簡単なツールを書きたい
  • 基礎的なmayaコマンドをpythonで使えるようになりたい

など、mayaでpython基礎を身に着けたい方は、ぜひご活用ください♪

コメント

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