こんにちは!ビーバー@ゲーム業界歴約20年 です。
maya python初心者の方のために、カンタン・わかりやすい解説サイトを作っています。
maya pythonの学習情報って少ないですよね。(最初のころは本当に苦労しました。。)
自分が骨を折った経験をもとに、
maya python基礎を最速で習得できる10回のチュートリアル
を作ってみたので参考にしていただければ幸いです。
今回は、3回目。スクリプトからduplicateとオプション設定を行う方法を学んでいきます。
※当サイトで紹介する商品は、アフィリエイトプログラムを利用しています。
フラグって何?フラグの書き方を学ぼう
「○○のフラグが立ってる」とかいうけど、
フラグってなんなの?
GUIから実行する場合、オプションはこの画面で設定するよね。
それと同じことをフラグの指定でやるんだよ!
なあんだ、オプションだったのか~
スクリプトではもっと複雑なこともできるんだ。
まずは「オプション設定」と理解するとわかりやすいよ。
では、polySphereコマンドでオプション設定をしてみましょう。
半径4、tamaという名前のsphereを作成するには、下記のように入力します。
cmds.polySphere(radius=4,name="tama")
()の中の「radius」「name」これがフラグです。
書き方は「フラグ名=○○」、複数フラグがある場合は間を「,」カンマで区切ります。
○○の中身は、ヘルプにある「引数タイプ」の指定に沿って書きます。
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を入れることでこのフラグがオンになります。
もう一度フラグの書き方を復習しましょう。
フラグ名はrenameChildren、引数タイプがboodeanなので、
○○の部分は引数タイプのデータ型に沿ってTrueと記入しました。
スクリプトを実行
それでは、「tama」を選択してスクリプトを実行します。
cmds.duplicate(name="tama02",renameChildren=True)
無事、名前がtama02、子ノードに固有の名前のsphereが作成されました。
まとめ
今回学習した内容のポイントをまとめます。
この回では、コマンドの実行、フラグの記入、データ型を学びました。
次回は、階層内の骨だけを選択するスクリプトの作成を通して学習を進めたいと思います。
オススメの本。pythonが楽しく学べます☆
コメント