MAYAのスクリプト開発でこんな事を思ったことはありませんか?
「スクリプティングに使っているIDE(統合開発環境)から、直接MAYAに送信して実行できたら便利なのに」
MAYAのスクリプト言語MELやPython のスクリプト開発に、入力補完機能などがある IDE(統合開発環境)を使用したとしても、作成中のスクリプトを一旦保存しMAYAの操作で実行するのは効率が悪く、IDE(統合開発環境)の性能も活かしきれてません。
近年人気のMicrosoftが開発しているWindows、Linux、macOS用のソースコードエディタ Visual Studio Code(VS Code)をMAYAのスクリプト開発に使用している人も多いのではないでしょうか。
拡張機能をインストールすることによって機能を追加する事ができたりと、とても柔軟性の高い、統合開発環境(とうごうかいはつかんきょう)ツールです。
>>Visual Studio Code(VS Code)のダウンロード・インストール
この便利な Visual Studio Code(VS Code)を使用したMAYAのスクリプト開発でも、一旦保存しMAYAの操作で実行する使い方は効率が悪くモッタイナイ。
では、Visual Studio Codeで作成したスクリプトを直接MAYAに送信して実行するにはどのようにしたら良いのでしょう。
先述したように、Visual Studio Codeにはインストールで機能を追加する事ができる拡張機能があります。
そしてVisual Studio Codeの拡張機能「MayaCode」を利用すると、スクリプトコードをMAYAに送信・実行する事が簡単に実現できます。
この記事では、Visual Studio Codeでスクリプトコードを直接MAYAに送信・実行できる機能拡張「MayaCode」を紹介します。
|
VS Codeの機能拡張「MayaCode」をインストール
マーケットプレイスで「MayaPort」を検索・インストール
機能拡張の検索窓で”maya”と入力すると、MAYA関係の機能拡張がリスト表示されるます。
上から2番目あたりに「MayaCode」と表示されるのでボタンを押してインストールします。
Visual Studio Codeへの機能拡張「MayaPort」のインストールは完了しました。
MAYAのcommandPort(コマンドポート)をオープンする
次はMAYAのコマンドポートをオープンする為のスクリプトを実行する必要があります。
MAYAのスクリプトエディタの MEL、Python どちらかのタブで次のスクリプトコードを実行します。この方法は、MAYAを起動する度にスクリプトコードを実行する必要があるので、シェルフに登録するのが良いでしょう。
MEL:
commandPort -name "localhost:7001" -sourceType "mel" -echoOutput;
Python:
import maya.cmds as cmds
cmds.commandPort(name=":7001", sourceType="mel", echoOutput=True)
MAYAを起動時にコマンドポートを有効にするには、以下のフォルダにあるuserSetup.melというファイルに同様のMELコマンドを記述します。
(以下のフォルダにuserSetup.melが無い場合は作成します。)
Windows: <drive>:\Documents and Settings\<username>\My Documents\maya\<Version>\scriptsMac
OS X: ~/Library/Preferences/Autodesk/maya/<version>/scripts.
MEL: userSetup.melに次のMELコマンドを記述します。
commandPort -name "localhost:7001" -sourceType "mel" -echoOutput;
|
VS CodeからスクリプトをMAYAに転送・実行
コマンド ポート(MEL または Python)を介して Maya にコードを送信します。
コマンドパレット(macOSではCommand+Shift+P、Windows/LinuxではCtrl+Shift+P)を開き次のどちらかを選択します。
- エディタから Python コードを送信する場合:Send Python Code to Maya
- エディタから MEL コードを送信する場合:Send MEL Code to Maya
また、エディタでコードのブロックを選択して 右クリック -> Send Code to Maya で送信することもできますが、ショートカットキー[Shift]+[Alt]+[P]でも送信できます。
これは現在設定されている作業言語(Mel または Python)に基づいています。
コードを選択せずに送信すると全コードが、選択して送信すると選択した範囲のコードが送信されます。
Pythonで作成したスクリプトをMAYAに送信して実行しました。
Python:
import maya.cmds as cmds for i in range(5): polycube_name = cmds.polyCube(w=1, h=1, sx=1, sz=1, ax=(0,1,0), cuv=4, ch=1) cmds.move( -i, i, -i )
実行:
VS Code:「MayaCode」のMELスクリプティング入力補完機能
「MayaCode」はMELスクリプティングの入力補完機能が実装されています。
普段MAYAのスクリプトをMELで書いてる人にとっては、この機能だけでも「MayaCode」をインストールする価値が在るのではないでしょうか。
ファイルを拡張子「.mel」で保存するとMELスクリプティングの入力補完機能が利用できます。
構文のハイライト 表示
特定のキーワードや正規表現パターンにマッチするテキストを別のフォントや色でハイライト表示します。
予約語や関数名の補完
■MEL コマンドのオートコンプリート (フラグ情報と一緒に)
入力中の文字列から推測したコマンドの候補を提示して入力操作を補完してくれるオートコンプリート機能
■MEL 変数のオートコンプリート
入力中の文字列から推測した 変数の候補を提示して入力操作を補完してくれるオートコンプリート機能
■Visual Studio Codeの便利な入力補完機能のスニペットにも対応しています。
例えば if と入力すると補完機能のコードが表示されるので、そこから先頭に「□」 が付いているコードを選択します。
すると、if の構文コードが出力されました。
対応しているスニペット
Prefixes | Description |
---|---|
if | Code snippet for an if statement |
if/else | Code snippet for an if statement with else |
elseif | Code snippet for an else if |
else | Code snippet for an else |
do/while | Code snippet for a do while loop |
switch/case | Code snippet for a switch case |
proc | Code snippet for a procedure |
proc(global) | Code snippet for a global procedure |
for/in | Code snippet for a for loop |
for | Code snippet for a for loop with counter |
while | Code snippet for a for while loop |
まとめ:VS Codeの機能拡張「MayaPort」で開発環境をスマートに
Visual Studio Codeでスクリプトコードを直接MAYAに送信・実行できる機能拡張「MayaCode」を紹介しました。
勿論、入力補完機能の利用だけでも、スクリプト開発に IDE(統合開発環境)を使用する価値は十分ありますが、折角備わっている機能を使わないのはモッタイナイ。
Visual Studio Code は機能拡張で簡単に機能を追加する事ができます。機能拡張「MayaCode」をインストールして、ワークフローの改善に利用してみてはどうでしょうか。
>>Visual Studio Code(VS Code)のダウンロード・インストール
【TechAcademy(テックアカデミー)ブートキャンプ】
TechAcademy [テックアカデミー]
では、初心者でも短期間でPython・機械学習が学べるオンラインブートキャンプPythonコース
を開催しています。
過去に独学のプログラミング学習で挫折した経験のある方でも、パーソナルメンターがビデオとチャットでサポート。疑問点を直ぐに解決して次の課題に取り組めます。
オンラインプログラミングスクール受講者No.1、TechAcademy(テックアカデミー)の学習システムの内容や疑問点を聞く事ができるTechAcademy無料動画説明会
も実施されているので、ぜひ参加してみてください。
|
|
BTOパソコンの草分け的ブランドFRONTIER(フロンティア) 3DCG/動画編集/ゲーム用途に合わせてCPUやGPUなどパーツを自由に選べてコスパにもこだわる方にオススメ。 |
|
|
|
|
|