こんにちは!ビーバー@ゲーム業界歴約20年python勉強中 です。
maya python初心者の方のために、カンタン・わかりやすい解説サイトを作っています。

maya pythonを勉強したいんだけど、どうやったらいいの?
何から手をつけたらいいかわからないんだ。。

ようこそ!MAYAPYCLUBへ☆
そんなキミに向けてこのサイトはつくられたんだよ!

そうなの⁉pythonどころか、スクリプトも初めてなんだけど
ぼくにもできるのかな…?

大丈夫!ちゃんと順を追って勉強すれば、だれでもできるようになるよ。
まずはmaya pythonを勉強する全体像について理解しよう^^
mayaでpythonを使ってみたい、、とは思うんだけど、とっかかりがつかめない、
という人は少なくありません。
- 「pythonはハードルが高い」
- 「勉強のしかたがわからない」
そこで今回は、これからmaya pythonを始めたいという人に向けて、
「maya python 学習の全体像」をザックリ解説していきます。
pythonを知ろう

pythonは、オープンソースの汎用プログラミング言語で、
シンプルな文法と豊富な機能群(ライブラリという)が特徴の言語です。
また、pythonはスクリプト言語と言って、1行ごとに書いてはすぐ実行することができる言語です。
どのようなプログラミング言語にも文法が存在し、
決められたルールに従ってコードを書くことで、プログラムが動くようになっています。
pythonを使いたい場合、まずは基本文法をおぼえる必要があります。

基本文法、、難しそうだなあ。

大丈夫!スクリプト言語は、実行結果をすぐに確認できるから、
pythonって、むしろ初心者向けなんだよ!

そうなんだ!じゃあさ、mayaでpythonを使うってよくわからないんだけど、
どういうイメージなの?

OK!次はそれを解説しよう。
maya pythonって?
maya pythonとは、mayaでpythonを使用して、自動化やカスタマイズを行うためのものです。
内部的には、pythonからmayaコマンドを実行しています。
たとえば、ふだん皆さんはmayaのGUIから「ポリゴン作成」などのコマンドを実行していますよね?
この「皆さんのオペレーション」が、「pythonに置き換わる」のがmaya pythonのイメージです。

たとえば、「球を5個つくりたい」場合、
「球をつくるmayaコマンド」を、pythonで「5回処理をくりかえす」ように
スクリプトを書きます。
これが、「皆さんが、pythonに置き換わる」イメージです。
また、スクリプトは、一度書けば何度でも使うことができるので、
2回目以降のオペレーションを、pythonにまかせて自動化することができます。
pythonをmayaで使うには、pythonの知識とmayaコマンドの知識 が必要になります。
mayaコマンドの知識は、mayaオペレーションの経験があれば補完することができるので、
3Dデザイナーに必要になるのは、主にpython側の知識です。

そっかあ!pythonがぼくたちのかわりに仕事をやってくれるってことなんだね。
スクリプトエディタを使おう
pythonとmayaの関係をつかんだら、準備はOK!
最初の一歩は、pythonを書くエディタの操作をおぼえましょう。

そもそもpythonってどこに書くの?
どうやったらmayaが動くのかな、、?

mayaのスクリプトエディタに書き込んで、実行すると
mayaでpythonを使えるんだよ!
pythonの入力は、スクリプトエディタを使って行います。
スクリプトは、コードを1行ずつ読み込んで実行するプログラム(インタプリタという)
を使って実行します。
初心者は、mayaだけで完結したほうがわかりやすいので、
はじめのうちはスクリプトエディタを使うとよいでしょう。
慣れてきたら、maya以外のインタプリタを使うことも可能です。(VSCodeなど)

>>「スクリプトエディタの概要」に 今すぐ飛びたい方はこちら
>>「スクリプトエディタの使い方」に 今すぐ飛びたい方はこちら
python基本文法をおぼえよう
スクリプトエディタの使い方がわかったら、pythonの基本文法をおぼえていきましょう。

よーし、どこに書けばいいか分かった!
じゃあ、次はどう書けばいいのかを教えて~?

次のステップは基本文法をおぼえることだよ。
一度おぼえればずっと使うことができるよ!
基本的なところを押さえるだけでも、十分ツールがつくれるようになりますよ。
どのような文法があるのか、代表的なものをあげてみます。
◆変数
変数は、データを入れておく箱のようなものです。任意の名前をつけることができます。
プログラムで色々な値を使いたいとき、変数に入れて使います。
◆データ型
データ型は、データの種類を教えてくれるものです。
数字、文章、真偽値などがあります。
データ型によって、どんな操作ができるかが決まります。
◆リスト
リストは、いろんな要素を順番に並べて入れられる箱です。
リストの中の要素には、0から始まる番号がふられています。
リストには、さまざまな種類のデータを入れることができます。
◆if文
if文は、条件によって違う処理をするための構文です。
条件が当てはまるときと、当てはまらないときで、
プログラムがどんな動きをするかを決められます。
◆for文
for文は、同じ処理を何回も繰り返すための構文です。
処理の内容や回数は、自由にきめられます。
ツールを書いてみよう

pythonの基本文法をおぼえたら、さっそくツールを書いてみましょう。

文法は、少しおぼえたらすぐツールを書くことができるよ。
1行でも十分に効率アップできるから、どんどんチャレンジしてみよう!
mayaコマンドのかきかたをおぼえよう
ツールは、pythonコマンドとmayaコマンドで構成します。
mayaコマンドには書き方のルールがあるため、基本を押さえておきましょう。

mayaコマンドにも、書き方のルールがあるんだよ!
>>「mayaコマンドの書き方の基本」に 今すぐ飛びたい方はこちら
mayaヘルプの見方をおぼえよう
自分が使いたいコマンド名が調べられるよう、ヘルプの見方をおぼることも大切です。
また、書き方がコマンドごとに違うので、どのように書けばよいのかも
ヘルプから読みとけるようにしましょう。
- 自分が使いたいコマンド名を調べられるようにしましょう
- コマンドごとの書き方のルールを読みときましょう
>>「maya helpの見方」に 今すぐ飛びたい方はこちら
ツールを使いやすくしよう
ツールができたら、使いやすくまとめる方法をおぼえましょう。
スクリプトを「関数」や「モジュール」にすることで利便性が上がります。

うえっ、、、難しい用語がでてきたよ。。

難しそうにきこえるけど、用語の意味は、実はシンプルだったりするんだよ。
用語をおぼえると便利だから、少しずつなれていこうね!
関数とは?
関数とは、特定の処理を一つにまとめたものです。
関数を使うと、短い文で特定の処理を実行できるようになるので、
何度も同じ文を書かなくてもよくなります。
また、文章が整理され、見た目にわかりやすくなる利点もあります。

何百行にわたる処理でも、関数にすると1行でよびだせるから便利だよ!
モジュールとは?
モジュールとは、特定の機能をひとまとめにして、
.py形式(pythonのファイル形式)で保存したものです。
スクリプトをモジュールにすると、ファイルとして配布することができるので
自分の作ったツールをほかの人に利用してもらうことができます。
また、モジュールのおかげで、誰かの作ったツールを使うこともできるのです。

なんだあ、モジュールっていうから何かと思ったら、
ファイルにすることだったんだね。
GUIを作ろう

ツールが書けるようになったら、GUIを作る方法をおぼえましょう。
GUIは、スクリプトの再利用や拡張がカンタンにできるように、
クラスという機能を使って作られることが多いです。
クラスの使い方をおぼえて、効率的にGUIを作れるようになりましょう。
>>GUI作成、最初の一歩に飛びたい方はこちら
>>いろいろなGUI作成方法の紹介とチュートリアルに飛びたい方はこちら
クラスとは?
クラスとは、プログラミングにおいて「オブジェクト」というものを作るための
設計図のようなものです。
オブジェクトには、データと機能が一つにまとめられており、
コードからプログラムの構造が理解しやすい形になっています。
クラスやオブジェクトは、初心者がつまずきやすいポイントですが、
ちゃんと体系的に学習すれば、理解することができます。

あせらず、一歩ずつ知識を積み上げていこう!
>>【maya python GUI】クラスってなあに?その1
>>【maya python GUI】クラスってなあに?その2
>>【maya python GUI】クラスってなあに?その3
ステップアップしよう

ここまでの知識があれば、実務で使えるツールをいくつか書けるようになっているでしょう。
ただ、より「かゆいところに手が届く」ものにするには、
発展的なpython文法や、ライブラリが使えるようになると効果的です。
python文法を使いこなそう
python文法を深く知っていくと、より便利なツールに洗練することができます。
例えば、入力された文字を受け取って、何かの処理に利用したり、
エラー処理をつけて、ユーザにエラーの理由を知らせたりなどができるようになります。
また、誰かの作ったスクリプトを読むときに、
「これはなんだ?」と詰まってしまうことも減るでしょう。
一歩進んだ文法の一例を紹介します。
- 関数の引数
- キーワード引数
- スコープ
- 関数の中の関数
- デコレータ
- リストのメソッド
- リスト内包表記
- タプル
- ディクショナリ
- エラーと例外処理
ライブラリをつかおう
pythonのライブラリを使えるようになると、mayaだけではできない処理ができるようになります。
例えば、OSのライブラリを使うと、mayaからファイルパスをとって、
任意の場所にファイルを保存する、などの操作ができます。
また、GUI作成でよく使われるPySideなどもライブラリの一種です。

世界中のpythonコミュニティが作っているライブラリを利用できるから、
可能性は無限大!だよ☆
まとめ
今回は、maya python学習の全体像を解説しました。
まずはpythonの基本文法をおぼえて、簡単なツールをつくるところをめざしましょう!
集中して学習すれば、1週間くらいで基本文法を習得することも可能です。
ちなみに、python文法は少しおぼえたらすぐにツールを書いてみる、を繰り返すと理解が早いです。
pythonの挙動を実感でおぼえられるので、スクリプトを多く書くほど慣れが早くなります。
まずは全体像を理解した上で、知識をつみ上げていきましょう!
このサイトでは、効率的に学習を進められるコンテンツも紹介していくので、
わからないことがあれば、この記事を参考に、都度必要なことを確認してみてくださいね。

pythonで自動化をおぼえると、もう今までの作業にはもどれない、というくらい
なくてはならないものになるよ!

よーし、ぼくもpythonを使えるようになって、超効率UPしちゃうよ!
コメント