チュートリアル / 読んで触ってよくわかる!Mayaを使いこなす為のAtoZ
第97回:ChatGPTにMayaのスクリプトを書いてもらおう!

  • Maya
  • ゲーム
  • コラム
  • スクリプト・API
  • チュートリアル
  • 初心者・学生
第97回:AI様にMayaのスクリプトを書いてもらおう!

去年の暮に話題をさらったChatGPT。日々話題が目白押しです。
実はMayaにも対応していて、しかも日本語にも対応しています!

つまり、お願いするとスクリプトを書いてくれます。

しばらく試しているところでは、スクリプトを知らないユーザはChatGPTにまかせて書いてもらうと、あたかも身近なTAにコードを書いてもらえるかのごとく、とても便利です。
スクリプトを勉強し始めた方は、参考となるスクリプトを書いてもらえます。将棋界ではAIと対局して勉強に使うことが増えているとか。Maya界でも同じ様にスクリプトの勉強に使えるではありませんか。
あとは、スクリプトを作るときの簡単なテンプレートとしても使えます。

使い方は簡単で、OpenAIのサイトからChatGPTに入ります。次のようなチャット画面が出るので、日本語でお願いを聞いてもらいます。

ChatGPT

文脈を理解してくれる!

日本語、Mayaに対応していますので「MayaでPythonスクリプトを書くためのサンプルが欲しい。」
というように、普段はどこにお願いしたらいいかわからないお願いをしてみましょう。

「MayaでPythonスクリプトを書くためのサンプルが欲しい。」に対するChatGPTの回答

「サンプルが欲しいといっても、どういうサンプルが欲しいのか具体的に言ってください。」と突き返されそうなところですが、大体こんなところだろうというサンプルを書いてくれます。(ChatGPTを実行するとわかりますが、本当にその場で「書いて」くれます。)

これまでのAIと違って、かなり頭がいいところは、話の流れ、つまり文脈を理解してくれます。
「それをトーラスに変更する場合のコードはどの様に変化しますか?」
という、「それ」とか「どの様に変化」とか、いまいちわかりにくいことをお願いしても「それ」が何で、どう変化してほしいかくみ取ってくれます。

「それをトーラスに変更する場合のコードはどの様に変化しますか?」に対するChatGPTの回答

正しく「それ」が「球体」であることを見抜いて、書き換えてくれます。多分向こう側に小人がいます。
ちょっとわからないところは、聞いてみるとこんな感じで優しく丁寧に答えてくれます。

「moveはどういった処理を行っていますか?」に対するChatGPTの回答

人間と違って時間に追われてないからか、実に丁寧親切でして…。イライラしないから、何度でも同じことを聞けますよ。

複雑なスクリプトも割りといける

「MayaのPythonでキューブを10個ランダムに配置するスクリプト」
というように、つっけんどんに書いても、丁寧に次のコードを書いてくれます。

「MayaのPythonでキューブを10個ランダムに配置するスクリプト」に対するChatGPTの回答
Mayaで試すときちんと動く

うーん、やりますね。
より複雑な例として、引数を取るようなものをお願いしてみます。
「MayaのPythonで選択したオブジェクトをリネームするスクリプト。接頭語と接尾語を指定できるように。」
というように、日本語としてもちょっと難しそうな「接頭語」「接尾後」を指定、という、曖昧なようで、でもそれぞれの意味を知っていれば、文字列の頭とおしりに文字をくっつけたいとわかるようなお願いをしてみます。

「MayaのPythonで選択したオブジェクトをリネームするスクリプト。接頭語と接尾語を指定できるように。」に対するChatGPTの回答

これがコピーして実行すると、ちゃんと動くんです。このあたりで段々とChatGPTの方が、自分より賢いのではないか?という疑念が湧いてきます。

もっと複雑なお願いをしてみる!

これは、自分でパッとキーフレームの操作方法が思い出せなかったので
「MayaのPythonでキーフレームを反転するスクリプト」
とお願いしたケースです。

「MayaのPythonでキーフレームを反転するスクリプト」に対するChatGPTの回答

これが、本当に動くのです。ありがとう、お陰で思い出せたよ!
コメントが的確ですね。もうこの時点では、自分より賢いのだろうと思えてきます。
コードが正常である保証がないはずなのに、コードは絶対動くという確信が湧いてきます。もし動かなければ「ごめん、質問の仕方がわかるかったね」とこちらが悪いような気がしてきます。

もちろんMELも書いてくれる

仕事をしていて、手で行うにはちょっと手間だな、ということをお願いすると、業務の自動化を行えます。もうスクリプトを知らなくても良い時代なのでしょうか。
「MayaのMELで、選択したオブジェクトを100個、TranslateX方向に10ずつ複製するスクリプトが欲しい。」
とお願いすると、しっかりMELで書いてくれます。これでツールが一個できました!シェルフに入れておけば、何度も使えるツールです。

「MayaのMELで、選択したオブジェクトを100個、TranslateX方向に10ずつ複製するスクリプトが欲しい。」に対するChatGPTの回答

自動的に連番をつけてくれるようにしています。あなたは、気遣いまでできるのですか。
と、実はこのコードは動きませんでした。duplicateのところのnameフラグの書き方がうまくいっておらず、このままでは動きません。ちょっと変えれば動きます。
同じお願いをPython版にすると、そちらは正常に動作しました。Pythonの方が得意?

「MayaのPythonで、選択したオブジェクトを100個、TranslateX方向に10ずつ複製するスクリプトが欲しい。」に対するChatGPTの回答

他にもスケルトンを作るなど、複雑なものでも書いてくれます。うまくコードを書いてくれるものもあれば、概ねいい感じだけど、動かないものもあります。
この辺は今後学習が進んで、どんどん正常に動くコードを書いてくれることに期待大です!

まとめ

本当にやりたいことと、それをやるための「やらなければいけない」ことがあります。
AIがMayaの手助けをしてくれるのは、面倒な部分をやってくれる、大きなサポートになっていくような体験です。

「もっと賢くなると、TAの仕事がなくなる!」とご心配の方、今のところ大丈夫らしいですよ。

「テクニカルアーチストは必要ですか?」に対するChatGPTの回答

というわけで、みなさんも機会があればぜひAI + Mayaで遊んでみてください!

ChatGPTにお願いしたまとめの文章

ありがとうChatGPT。今回のコラムは楽できたよ…!

製品購入に関するお問い合わせ
オートデスク メディア&エンターテインメント 製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。