【ArtistでもMELが書きたい】Maya MEL入門(1)【初めてのMEL】

# はじめに
この記事は、3DCG業界で働く**Artist向けのMEL入門記事**です。
普段の業務を効率化したいけど、MELの書き方が分からない、調べたけどイマイチ分からなかった、そんな方向けに書きました。
本記事は「MELでキューブを生成する」をゴールとします。

# 環境
Autodesk Maya 2022.2

# MELとはなんぞや？
簡単にいうとMaya上で動作する**スクリプト言語**です。
スクリプト？なんか難しそう...と思われるかもしれませんが、心配は無用です。
プログラマに必要なスキルが自動車だとすれば、MELに必要な技術は自転車のようなものです。
プログラミング未経験でも一つずつ覚えていけば、業務を楽にするためのシンプルなツールを作ることができます。

https://knowledge.autodesk.com/ja/support/maya/troubleshooting/caas/CloudHelp/cloudhelp/2023/JPN/Maya-Scripting/files/GUID-60178D44-9990-45B4-8B43-9429D54DF70E-htm.html

# Maya上でMELを実行するには？
MELはMaya上で簡単に実行できます。
Mayaを立ち上げたら、画面左下にある「MEL」と表示されているUIを探してみてください。
(代わりに「Python」というUIが表示されている場合は、「Python」を1度クリックすると「MEL」に切り替わります。)
![MEL_learning01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/ee67db8d-b1e9-d716-8bca-6fcfbbd648d2.png)
「MEL」と表示されているUIの横一列すべては**コマンドライン**と呼ばれます。
![MEL_learning_ex01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/bfd580bd-8a5b-93ee-429b-b318c658a06f.png)
コマンドラインの左側(MELと表示されている部分の右側)はテキストフィールドになっており文字が入力できます。
![MEL_learning02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/0d1cc6d9-e23b-859e-072e-8cfe956071fd.png)
コマンドラインのテキストフィールド(便宜上以下コマンドラインと呼称します)に**コマンド**を打ち込んでEnterを押すと、MELが実行されます。

https://knowledge.autodesk.com/ja/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2020/JPN/Maya-Basics/files/GUID-4981A0A5-9418-4274-918C-561E33B0102D-htm.html

# コマンドラインに入力すべきコマンドとは？
コマンドとは一体何なのでしょうか？
何がコマンドなのかが分からないので、
試しに実行してほしい内容を日本語で入力して、Enterを押してみましょう。
```
キューブを生成する
```
![MEL_learning03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/efd94ee6-2fe7-1aa5-5387-58fb779e0e33.png)

シーンビューにキューブが生成されたか見てみましょう。
![MEL_learning04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/f8195d79-5798-025b-62e8-d6e9aa80b9f4.png)

なにも生成されていないようです。
実行してほしい内容をそのまま記述するのは適切ではないのかもしれません。

コマンドというくらいですから、英語かもしれません。英語だとどうでしょうか。
```
Generate a cube
```
![MEL_learning05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/0daeae86-6033-e0fe-8615-fa47e3831ee1.png)
![MEL_learning04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/1de9c9ff-7754-f166-c17d-d76b2f38d711.png)
英語で書いてもキューブは生成されませんでした。
![MEL_learning_ex02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/5952397b-027f-ac5d-d22d-410fd724c72e.png)
しかもコマンドラインの右側には赤いエラーが表示されています。

少なくとも「キューブを生成する」や「Generate a cube」は適切なコマンドではないようです。
この調子で当てずっぽうに試していても適切なコマンドには辿り着けそうにありません。

# コマンドの調べ方
実は、Maya公式が出している[MELコマンドリファレンス](https://help.autodesk.com/view/MAYAUL/2022/JPN/index.html?contextId=COMMANDS-INDEX)があります。
![MEL_learning06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/fc6e9c8a-bbd6-2ba6-9d8a-c1d5e3c7a1ce.png)
開くと英語だらけで圧倒されるかもしれませんが、心配は不要です。一つひとつの意味が分かればシンプルなものです。
とはいえ、ここからどうやって「キューブを生成するコマンド」を探し出すのでしょうか？

幸いなことに**検索ボックス**が用意されているので、そこでキーワードをピックアップして検索しましょう。
![MEL_learning07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/8e3911e0-f5a7-15ee-30eb-644b4c94e93a.png)
このMELコマンドリファレンスからは日本語が歓迎されている雰囲気は感じられません。
検索キーワードとしてはおそらく**英語**が好ましいです。
まずは「generate」で検索しましょう。
![MEL_learning08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/63c0ea07-2297-c2f3-9520-b9b63f3d5bc3.png)
なにも出てこないようです。「generate」に関連するコマンドは存在しないのかもしれません。
次は「cube」で検索しましょう。
![MEL_learning09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/00a0b9cd-bbf7-fd48-adfb-c78b1405e3b4.png)
やりました！
「nurbsCube」と「polyCube」の2つがヒットです。
この文章がコマンドそのものかはわかりませんが、物は試しです。Mayaに戻ってコマンドラインにこの文章を打ち込んでみましょう。

# MELでキューブを生成する
早速、「nurbsCube」をコマンドラインに入力してみましょう。
![MEL_learning10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/4cce731a-1007-cd0b-5316-db92ee228208.png)
![MEL_learning11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/d9810c25-9acd-44b5-86f8-ec47040f7b91.png)
やりました！成功です。
どうやらNURBSのキューブが生成されたようです。
「nurbsCube」はコマンドだったんですね。

「polyCube」も試してみます。
![MEL_learning12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3121056/0fccbf31-3a2b-7f17-041c-7d7dfab1da31.png)
こちらも成功です。ポリゴンのキューブが生成されました。

紆余曲折を経て、無事に**MELでキューブを生成する**することができました。

# おわりに
いかがでしたか？

MELを書くということはシンプルに言ってしまえば、
**実行したい内容のコマンドを調べる**、ただそれだけの積み重ねです。

最後まで読んでいただきありがとうございます。
今日はMELを実行できたという越に浸りながら過ごしてもらえたら嬉しいです。


次回はこちら→[【ArtistでもMELが書きたい】Maya MEL入門(2)](https://qiita.com/Hum9183/private/5cee29b1e227834b2f8e)