今日はMayaを使って、超初級者向けにスクリプトの解説をしていこうと思います。
そもそも僕はプログラミングは全くわかりません。少しだけ知っていますが、全然仕事で使えるレベルではないです。そして、普段のCGアニメーションの仕事でプラグラミングを使うことは皆無です。
ただ、本当に本当の少しだけでもプラグラミングやスクリプトの知識があると少しアニメーションやクリエイティブな仕事に役立ちます。特に効率化という意味で役立つこと多いので、そういう意味で今回はクリエイティブな内容ではないのですが記事を書いています。
今回の記事は、、、
- そもそもスクリプトって役に立つの?
- 理系でもないしプログラミングとかイミフ
- 知識なくてもスクリプト書けるならちょっと興味ある
という人に向けて、プログラミング知識ゼロでもわかるMayaスクリプト作り方について解説していきます。
プログラミング知識ゼロでもわかる!Mayaスクリプトの作り方 初級編
僕はスクリプトも独学で、今も勉強中なのですが、じゃあ実際どれくらい出来る出来るのかというと普段の仕事で使っているのはこんな感じのスクリプトで自分で作りました。
一回ボタンを押すとタンジェントのタイプが切り替わって、長さ調整が出来て左右のタンジェントが割れる、そして、もう一回押すと長さ調整はロックされて角度だけ調整出来る、、、これの繰り返し(トグルといいます)みたいなことが出来るスクリプトです。ちなみにその他大小含めて50個くらいは自分のショートカットに入っています。どれも適当スクリプトなのでたまに壊れます。
で、今回はそういう本格的なプラグラミングの概念からがっつりやるということではなくて、あくまで最低限簡単なスクリプトを作れるレベルまでの話をしようと思います。
例えるなら、信号機ありますよね。信号機ってどういう仕組みか分からないけど、とりあえず歩行者ボタン押しといたら青に変わりますよね。ああいう感覚です。
このスクリプト何がなんだか分かんない!分かんないけどこれを実行したら何か使える。クリエイティブ寄りのアーティストならこれくらいの感覚で十分です。
ただ、少し知っておいたらソフトというものの仕組みも少しわかって、実際仕事でも地味に役に立ちますし、今回の記事で面白い!と思って頂けたらもっともっと深く勉強し始めてもいいと思います。
注意点としては、今回のスクリプトの内容はもしかしたら専門で勉強している方からすると少し語弊がある内容も含んでいるかも知れないです。
今回の記事は、あくまでアーティスト目線で「スクリプトわけ分かんないです」という人に向けて、少しくらいなら簡単だし知っておくと便利だよと紹介する内容です。
なんでスクリプトって必要なのか?
そもそもの話なのですが、これはショートカットの話にも通じるのですが、皆さん想像してみてください。Mayaで作業をしているとき同じようなボタンを毎回毎回押したり似たような作業を繰り返しでやってることとかないですか?
一回一回の動作は1秒とかですが、それを何百回、何千回と繰り返すとものすごい時間の浪費になってしまいます。
そこで、ある程度繰り返すような作業などはスクリプトに置き換えることによってこの一回の作業を単純化することが出来ます。例えばこんな感じです。
<グラフエディターを開くという操作>
- 手順1メニューのセットをAnimationにする
- 手順2Windowsメニューを開く
- 手順3Animation Editorsを開く
- 手順4Graph Editorをクリック
それに対して僕はスクリプトを作っているので、gを押したらGraph Editorが開いて、もう一回押したら閉じるようになっています。
繰り返しになりますが、一回の動作ではそこまで大差ないかもしれないですが、上の作業を何百回、何千回と繰り返したらどれくらい差が出るのかは簡単に想像出来ると思います。
スクリプトってちょっと知っといた方がいいかも、、、と思いましたか?それでは早速いってみます。
まとめ何百回、何千回と繰り返す操作はスクリプトにするべき
1、Mayaってどうやって動いてるの?
では、そもそもMayaってどうやって動いているのかみなさん知っていますか?何となくクリックとかボタン押したら、キーが打てたり、キャラクターを動かせたり出来ますよね?
あれって実は表向きはクリックとかボタンとかで動いているように見えるのですが、裏では毎回毎回スクリプトが実行されて動いているんです。つまりMayaの全ての操作や動作はスクリプトによるものだったんです。(このMaya上でのスクリプトの事をMelと呼びます)
だから、実は僕らはスクリプトのことなんか全然知らないわと思いながらも、毎回毎回スクリプトを実行しながら操作してたんですね。
先程の信号機の例がわかりやすいと思います。裏では電気信号が走っているんですが、自分たちが直感的に感じるのはボタンを押す→信号が変わるですよね。
とりあえずここの話めっちゃ大事なので覚えておいてください。
まとめMayaでの操作は実は全てスクリプトによって動いている
2、どこからスクリプトが見れるのか?
裏でどんなスクリプトが実行されて動いているのかを見るためには、
Windows→ General Editors→ Script Editor
でウィンドウを開きます。そしてHistory→Echo All Commandsをオンにします。これでMayaで行われる全ての作業がここの画面に反映される状態になります。
実際に画面上で色々な操作をすると、ウィンドウの中の文字がどんどん流れて行くのがわかると思います。
スクリプトやプログラミングが嫌いな人はこの画面を見ただけで頭がおかしくなってしまうかもしれないですが、僕も訳が分からないので大丈夫です。
とりあえず、ここで覚えておいて欲しいのはこれだけです。
まとめ画面上での操作はすべてScript Editorにスクリプトの形で表示される
3、実行されたスクリプトを拾う
ここからが本題です。Maya上で実行された操作が全てScript Editorに表示されるということは「カーブをいじる」や「ポーズを作る」と言ったアニメーションの作業なども全てここに表示されます。
つまり、もしその「カーブをいじる」や「ポーズを作る」というスクリプトを作りたかったら、最初からスクリプトを書く必要はないんです。このScript Editorから拾うんです。
では、実際にここで、アニメーターにとって便利そうな「リグのコントローラの表示のオンとオフ」のスクリプトを作ってみましょう。まずは手作業でリグのコントローラー(Nurbs Curves)の表示をShowのメニューから消してみます。
すると、先ほどと同じくScript Editorのウィンドウがカタカタと進んでいくのが分かると思います。ぶっちゃけどこが何をやっているのか分からないです。ただ、今進んだどこかに「リグのコントローラーの表示をオフにする」という操作のスクリプトが実行されたはずなんですね。
ここからは勘でいきます。おそらくそれっぽいやつ。例えば今回の場合は、Nurbs Curvesを扱っているので、Nurbs Curvesという文字が入っていたり、表示なのでShow、また、onとoff(もしくはプログラミングでは、onとoffをtrueとfalse、 1と0などで表現することも多いです)のようなキーワードを探してみましょう。
すると、明らかにそれっぽいやつがあります。
この怪しい一文をコピーして、Script Editorの下半分の入力エリアにペーストします。そして、上の実行ボタンで実行してみます。すると、コントローラーの表示が消えました!
そしてさらに、このスクリプトの中にfalseという文字があるので、falseをtrueに変えたら「あれ?もしかしたら逆に表示が出来るんじゃない?」という想像が出来ます。そこで実験的にそこの部分だけ書き換えてtrueのバージョンを実行してみると、
なんと表示出来ました!
ちなみに、え、何のスクリプトが動いたか分からない、このスクリプト何なのかさっぱりわかりませんという人、「いいじゃないですか、動いたんだから」
もし、これ以上深堀りしたい人は、ここからスクリプトの勉強を本格的に始めましょう。ちなみに当たり前ですが、もっと本格的に勉強すればもっと複雑で便利なスクリプトを自分で0からでも作れるようになります。
なので、プログラミング嫌いじゃなくて、少し面白そうと思った人は是非勉強するのをおすすめします!プログラミングも面白いですよ!
4、作ったスクリプトを使う
ここで作った(と言っていいのかわかりませんが 笑)スクリプトはドラッグしてシェルフに入れることも出来ますし、このスクリプトをコピーして、下のショートカットの入れ方と合わせてショートカットとして使うことも出来ます。
これで今後はボタン一つでコントローラーの表示をオンにしたりオフにしたり出来ます。
ちなみに、一つのボタンで押すたびにオンとオフを切り替えるのはトグルというのですが、トグルにするためには、そこまで難しくは無いですがガチのスクリプトの知識が必要です。なのでここではやりません。結構便利なのでまた今後どこかで紹介するかもです。
とりあえず、プログラミング知識ゼロでもわかる!Mayaスクリプト作り方 初級編でした。
今回の記事も少しでも参考になっていたらうれしいです、読んで頂いてありがとうございました。
わかすぎ
コメントを残す