liquidjumper MEL,Python Visual Studio Codeの機能拡張「MayaCode」でスクリプトを直接MAYAに送信・実行する方法

Visual Studio Codeの機能拡張「MayaCode」でスクリプトを直接MAYAに送信・実行する方法

vscode_mayacode_topimage

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)


この便利な 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」

マーケットプレイスで「MayaPort」を検索・インストール

機能拡張の検索窓で”maya”と入力すると、MAYA関係の機能拡張がリスト表示されるます。
上から2番目あたりに「MayaCode」と表示されるのでボタンを押してインストールします。

機能拡張の検索窓で"maya"と入力


Visual Studio Codeへの機能拡張「MayaPort」のインストールは完了しました。

MAYAのcommandPort(コマンドポート)をオープンする

次はMAYAのコマンドポートをオープンする為のスクリプトを実行する必要があります。

MAYAのスクリプトエディタの MELPython どちらかのタブで次のスクリプトコードを実行します。この方法は、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
コマンドパレット(macOSではCommand+Shift+P、Windows/LinuxではCtrl+Shift+P)を開


また、エディタでコードのブロックを選択して 右クリック -> Send Code to Maya で送信することもできますが、ショートカットキー[Shift]+[Alt]+[P]でも送信できます。
これは現在設定されている作業言語(Mel または Python)に基づいています。

コードを選択せずに送信すると全コードが、選択して送信すると選択した範囲のコードが送信されます。

右クリック -> Send Code to Maya
▲右クリックメニューから「Send Code to Maya」を選択、もしくはショートカットキー[Shift]+[Alt]+[P]で送信


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 )

実行:

Pythonで作成したスクリプトをMAYAに送信して実行

VS Code:「MayaCode」のMELスクリプティング入力補完機能

「MayaCode」はMELスクリプティングの入力補完機能が実装されています。
普段MAYAのスクリプトをMELで書いてる人にとっては、この機能だけでも「MayaCode」をインストールする価値が在るのではないでしょうか。

ファイルを拡張子「.mel」で保存するとMELスクリプティングの入力補完機能が利用できます。

構文のハイライト 表示

特定のキーワードや正規表現パターンにマッチするテキストを別のフォントや色でハイライト表示します。

構文のハイライト 表示

予約語や関数名の補完

■MEL コマンドのオートコンプリート (フラグ情報と一緒に)

入力中の文字列から推測したコマンドの候補を提示して入力操作を補完してくれるオートコンプリート機能

MEL コマンドのオートコンプリート


■MEL 変数のオートコンプリート

入力中の文字列から推測した 変数の候補を提示して入力操作を補完してくれるオートコンプリート機能

MEL 変数のオートコンプリート


■Visual Studio Codeの便利な入力補完機能のスニペットにも対応しています。

例えば if と入力すると補完機能のコードが表示されるので、そこから先頭に「□」 が付いているコードを選択します。

入力補完機能のスニペット


すると、if の構文コードが出力されました。

if の構文コードが出力


対応しているスニペット

PrefixesDescription
ifCode snippet for an if statement
if/elseCode snippet for an if statement with else
elseifCode snippet for an else if
elseCode snippet for an else
do/whileCode snippet for a do while loop
switch/caseCode snippet for a switch case
procCode snippet for a procedure
proc(global)Code snippet for a global procedure
for/inCode snippet for a for loop
forCode snippet for a for loop with counter
whileCode 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無料動画説明会 も実施されているので、ぜひ参加してみてください。


𝕏 ( 旧Twitter ) Facebook Pocket LINE はてブ

おすすめの関連記事



あわせてよく読まれている記事