過去2回のセミナーの再配信が終了しました。
ご視聴いただいたみなさま、大変ありがとうございました!
引き続きMaya Pythonを学習される方にとって役立つ情報を発信していきますので
今後ともどうぞよろしくお願いいたします。

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

Mayaのオペレーションの自動化について徹底解説。様々な操作を自動化できるようになります
https://tutorials.cgworld.jp/set/2041
こんにちは!ビーバー@ゲーム業界歴約20年 です。
maya python初心者の方のために、カンタン・わかりやすい解説サイトを作っています。
maya pythonの学習情報って少ないですよね。(最初のころは本当に苦労しました。。)
自分が骨を折った経験をもとに、
maya python基礎を最速で習得できる10回のチュートリアル
を作ってみたので参考にしていただければ幸いです。
今回は、3回目。スクリプトからduplicateとオプション設定を行う方法を学んでいきます。

※当サイトで紹介する商品は、アフィリエイトプログラムを利用しています。
フラグって何?フラグの書き方を学ぼう

「○○のフラグが立ってる」とかいうけど、
フラグってなんなの?


GUIから実行する場合、オプションはこの画面で設定するよね。
それと同じことをフラグの指定でやるんだよ!

なあんだ、オプションだったのか~

スクリプトではもっと複雑なこともできるんだ。
まずは「オプション設定」と理解するとわかりやすいよ。
では、polySphereコマンドでオプション設定をしてみましょう。
半径4、tamaという名前のsphereを作成するには、下記のように入力します。
cmds.polySphere(radius=4,name="tama")
()の中の「radius」「name」これがフラグです。
書き方は「フラグ名=○○」、複数フラグがある場合は間を「,」カンマで区切ります。
○○の中身は、ヘルプにある「引数タイプ」の指定に沿って書きます。
cmds.「mayaコマンド名」(フラグ名=○○)
polySpheereコマンド、radiusフラグをヘルプでみてみましょう。
radiusフラグ

radiusの列を右側にスクロールすると、「引数タイプ」の列に

とあります。これが、フラグ=○○の部分の記入方法を指定するものです。

「引数」は「ひきすう」と読むよ!コマンドに渡すデータのことを指すんだ。
アトリビュートの値には、TRS値のような数字や、visiblleのようにオンオフのものなどありますが、
そのデータ(引数)がどういったタイプなのかを指定しているのが、「引数タイプ」です。
一般的には、「データ型」と呼ばれます。
話を戻して、radiusフラグの場合は、「linear」というデータ型が指定されています。
linearは線形、の意ですがここでは数値をいれればOKです。
cmds.polySphere(radius=4)
半径4と指定をしました。続けて、名前をtamaとするフラグを確認します。
nameフラグ

引数タイプを確認します。

stringとは文字列のことです。
Hello,worldの演習で、文字列は「””」で囲ったものが文字として認識されると学習しましたね。
nameフラグの記入は文字列で行います。
cmds.polySphere(radius=4,name="tama")
先ほどのradiusフラグの後に追加するので、間をカンマで区切って追記します。
スクリプトを実行してみましょう。
半径4,名前は「tama」というsphereが作成できたと思います。


フラグ=○○の書き方はデータ型に合わせて書くんだね!

データ型のうち、主なものをまとめるから参考にしてね!


データ型について
コマンドに渡すデータ(引数)のタイプは、一般的にはデータ型と呼ばれます。
主なデータ型には以下のようなものがあります。
データ型 | 情報のタイプ | 備考 |
int | 整数 | 1個2個などものを数える時などの整数値 |
float | 浮動小数点(数値) | 小数点を含む数値 |
string | 文字列 | ものの名前など文字列 |
boolean | 真or偽 | TrueかFalse、オンオフで認識されるもの |

booleanっていうのはどうやって使うのかな?

次のduplicateコマンドの例で見ていこう!
duplicateコマンドでフラグに慣れよう
先ほどの「tama」をスクリプトからduplicateしてみましょう。
コマンドとフラグの説明
cmds.duplicate()
これが素の状態のduplicateコマンドです。名前をtama02に、
子ノードに固有の名前を割り当てるオプションを設定したいと思います。

名前はsphereの時と同様に記入します。
cmds.duplicate(name="tama02")
次に「子ノードに~~」のフラグをヘルプから確認します。

フラグ名「renameChildren」とありました。
こちらの引数タイプは「boolean」です。boolean値はTrueかFalse、オンオフのデータ型です。
このフラグの場合のbooleanは「renameChildren」フラグをオンにしますか?しませんか?
の意味になります。
オンにしたいので、このように記述します。
cmds.duplicate(name="tama02",renameChildren=True)
「renameChildren」の後にboolean値のTrueを入れることでこのフラグがオンになります。
もう一度フラグの書き方を復習しましょう。
cmds.「mayaコマンド名」(フラグ名=○○)
フラグ名はrenameChildren、引数タイプがboodeanなので、
○○の部分は引数タイプのデータ型に沿ってTrueと記入しました。
スクリプトを実行
それでは、「tama」を選択してスクリプトを実行します。
cmds.duplicate(name="tama02",renameChildren=True)
無事、名前がtama02、子ノードに固有の名前のsphereが作成されました。

まとめ
今回学習した内容のポイントをまとめます。
- コマンド名の後ろの「()」にはフラグを記入する
- フラグの記入方法は ()の中に「フラグ名=○○」という形で記入
- ○○の部分は、ヘルプに指定があるデータ型にのっとって記載する
- フラグの詳細はヘルプの テクニカルドキュメント>pythonコマンドの中
この回では、コマンドの実行、フラグの記入、データ型を学びました。
次回は、階層内の骨だけを選択するスクリプトの作成を通して学習を進めたいと思います。
はじめてプログラミングを勉強するとき、エラーはつきものですよね。
何時間もスクリプトが動かないこともしばしば。。
そんな時、くわしい人に教えてもらいたい、と思うことはありませんか?
侍テラコヤは、はじめてpythonを学習する方にピッタリのサービスです。
サブスク型オンラインスクールで、月¥2980~の良心的なお値段!
現役エンジニアのサポートが充実しており、
オンラインのマンツーマンレッスンとQ&A掲示板で即座に悩みを解決することができます。
本サイトの【まとめ】 maya python 基礎 入門!では、
10回シリーズでmaya pythonの基礎が習得できるコンテンツを発信しています。
- ちまたのスクリプトを読んで、内容を理解したい
- mayaのスクリプトリファレンスの読み方を習得したい
- 自分で簡単なツールを書きたい
- 基礎的なmayaコマンドをpythonで使えるようになりたい
など、mayaでpython基礎を身に着けたい方は、ぜひご活用ください♪
オススメの本。pythonが楽しく学べます☆


コメント