MAYA,Python Python学習 はじめの一歩「Hello world」を表示する- MAYAアーティストのスクリプト入門

Python学習 はじめの一歩「Hello world」を表示する- MAYAアーティストのスクリプト入門

python_helloworld_topimage

新しいプログラム言語を学び始める時の儀式と言っても過言ではないのが

“Hello world”

を表示する事。

当然Pythonでも最初に”Hello world”を表示する事から学習が始まります。

今回はPythonを学び始めるMAYAアーティストのはじめの一歩として
“Hello world”を表示する方法を、

Python標準の”Hello world” を表示する方法



MAYA固有の”Hello world” を表示する方法

の2つに分けて幾つか紹介したいと思います。

MAYAのスクリプティング環境「スクリプトエディター」

MAYAを起動して右下のアイコンをクリックするとMAYAのスクリプティング環境「スクリプトエディター」が立ち上がります。

script_edit_icon


スクリプトコードは下の窓に記述します。
上の窓には実行した結果が出力表示されます。

python_helloworld_script_edit

Pythonスクリプトを書く準備

スクリプトをPythonで書くには[Python]と書かれたタブを選択します。 

python_tab


もし[Python]と書かれたタブが無ければプラスマークをクリック

tab_add_icon


[Python]をクリックするとPythonのタブが追加されます。

tab_add_language


MAYAでPythonスクリプトを書く準備は出来ました。次の項目から実際にスクリプトを書いて実行してみましょう。

※MAYAのスクリプトエディターはスクリプトを記述してファイルを保存しなくても直接実行できるので、スクリプトを学習するのにとても良い環境だと思います。

関連記事:
[初心者]MAYAアーティストが0から始めるPythonスクリプト入門

Python標準の”Hello world” を表示する方法

Pythonに元々備わっているコマンドで”Hello world”を表示します。

MAYAが無くてもPythonの環境さえあれば実行できる記述方法です。

printを使って”Hello world”を表示

早速”Hello world”を表示するPythonスクリプトをスクリプトエディターの下の窓に書いていきましょう。

以下のスクリプトコードをスクリプトエディターに書いてください。

print "Hello world"

書き終わったらスクリプトを選択して

select_scriptcode


[Ctrl]+[Enter] で実行

Hello world

スクリプトエディターの上の窓に”Hello world”と出力表示されたら成功です。

解説

Pythonで文字を出力表示するコマンドは

print

を使います。

print ” ” と書くと 「” “」に囲まれた文字が出力表示されます。


printで出力表示する書き方は他にもあります。
以下のスクリプトコードをスクリプトエディターに書いてください。

print("Hello world")

書き終わったらスクリプトを選択して[Ctrl]+[Enter] で実行

Hello world

結果は先程と同じです。

今回は 出力する文字を「( )」で囲みました。

スクリプトを本格的に書き始めると出力表示するのは文字だけでは無く数値だったりします。「” “」は文字を出力する場合は問題ありませんが、数値や変数を出力する事は出来ません。

次の項目では print() で変数を使って”Hello world”を表示します。

変数を使って”Hello world”を表示

「変数」には データや値、文字 等を格納する事ができます。

変数は自由に名前を付ける事が出来ます。例えば変数名を「hensu」にして

hensu = 値
hensu = 文字
hensu = データ等

のように記述します。

※実際に変数名を付ける時は、どの様な内容物を格納したのか判別しやすい名前にしましょう。

以下のスクリプトコードをスクリプトエディターに書いてください。

hw_str = "Hello world"

print(hw_str)

書き終わったらスクリプトを選択して[Ctrl]+[Enter] で実行

Hello world

スクリプトエディターの上の窓に”Hello world”と出力表示されたら成功です。

解説

hw_str = "Hello world"

変数名「hw_str」に”Hello world”を格納しました。

print(hw_str)

“Hello world”を格納した変数「hw_str」をprint()で出力表示します。


print()と変数が何となく理解できたでしょうか?

for文を使って4連続”Hello world”表示

Pythonで繰り返し処理をする場合は

for

を使います。

以下のスクリプトコードをスクリプトエディターに書いてください。

for i in range(4):
    print("Hello world")

書き終わったらスクリプトを選択して[Ctrl]+[Enter] で実行

Hello world
Hello world
Hello world
Hello world

スクリプトエディターの上の窓に”Hello world”と4回出力表示されたら成功です。

解説

for i in range(4):

range(4)で4回処理する事を指定しました


for文については以下の記事に詳しく書きました。是非よんでみてください。
関連記事:
[Python] for 文 繰り返し処理の使い方MAYAアーティストのスクリプト入門

MAYA固有の”Hello world” を表示する方法

この項目ではMAYAのPythonスクリプトでのみ有効な”Hello world”を表示する方法を紹介します。

何れも基礎的なスクリプトとはいえ、学び始めの段階では意味が分からないと思います。

もちろん一文字づつスクリプトを記述するのが望ましいですが、MAYAで何ができるのかを理解してほしいので、面倒だったらコピー・ペーストでスクリプトエディターに貼り付けても良いです。

そして実行して実際にスクリプトの動きを確認してみてください。

その上でスクリプトの解説を読んでもらえると、何となく意味が理解できると思います。

警告warningで”Hello world”を表示

MAYAには警告メッセージを出力表示できるコマンドが用意されています。

警告メッセージで使用するコマンドは

warning()

です。

print()の出力表示と違いwarning()は表示される文字が「#」で囲われた警告メッセージとして表示されます。(※MELの場合は「//」で囲われます)

以下のスクリプトコードをスクリプトエディターに書いてください。

import maya.cmds as cmds

cmds.warning( "Hello world" )

書き終わったらスクリプトを選択して[Ctrl]+[Enter] で実行

select_warningcode
# Warning: Hello world #

「#」で囲われた警告Warningメッセージとして出力表示されました。

解説

import maya.cmds as cmds

MAYAでPythonを使ってスクリプトを書く場合はじめに記述します。
意味としては、MAYAのコマンド集をインポート みたいな感じです。 

cmds.warning( "Hello world" )

警告メッセージで”Hello world”を表示

どの様な場面でwarning()コマンドを使うのでしょうか?

例えば、作ったスクリプトが想定した使い方とは違う手順で操作された場合に
「手順間違ってますよ!」と操作方法の間違いを指摘する時などに使います。

以下のスクリプトコードをスクリプトエディターに書いてください。

import maya.cmds as cmds

def listWarning():
    list = cmds.ls( sl=True )
    if len(list) == 0:
        cmds.warning( "no objects" )
        
listWarning()

書き終わったらオブジェクト等何も選択してない状態で、
スクリプトを選択して[Ctrl]+[Enter] で実行

# Warning: no objects #

警告メッセージで”no objects”と表示されました。

スクリプトの内容

このスクリプトは、オブジェクトを何も選択してない場合に警告メッセージを表示します。

多くのスクリプトは、対象のオブジェクトを選択した状態でスクリプトを実行しますが、選択するのを忘れてスクリプトを実行してしまった時に警告メッセージを出す事を想定しました。

解説

def listWarning():

def文で関数 listWarning()を定義しました。
※関数とは何らかの処理をするひとまとまりのブロック

list = cmds.ls( sl=True )

オブジェクトを含め何かしら選択したモノをリストにする

if len(list) == 0:

len()でリストの中にモノが幾つ入っているかを確認、if文で0個か0個以外かを判断

cmds.warning( "no objects" )

リストの中身が0個だった場合warning()で警告メッセージ”no objects”を出力表示する

listWarning()

関数 listWarning()を実行


試しにオブジェクトか何かを選択した状態でスクリプトを実行してみてください。

select_object


スクリプトを選択して[Ctrl]+[Enter] で実行

 

リストに選択したオブジェクトが入っていて0個では無いので何も出力表示されません。

ボタンを押したらウィンドウに”Hello world”を表示

今度は少し趣向を変えて、スクリプトエディターにではなくウィンドウを作ってそこに”Hello world”を表示します。

以下のスクリプトコードをスクリプトエディターに書いてください。

import maya.cmds as cmds

def hello_worldButtonPush(*args):
    cmds.text(hw_text, label='Hello world', e=True)

cmds.window( width=150 )
cmds.columnLayout( adjustableColumn=True )
hw_text = cmds.text( label='' ,w=150,h=40)
cmds.button( label='Button', command=hello_worldButtonPush )
cmds.showWindow()

スクリプトを選択して[Ctrl]+[Enter] で実行

表示されたウィンドウの [Button]をクリックしてください。

button_window


“Hello world”と表示されました。

hello_world_window


解説

def hello_worldButtonPush(*args):

関数 hello_worldButtonPush()を定義します

cmds.text(hw_text, label='Hello world', e=True)

部品名”hw_text”のテキストのラベルを”Hello world”にします

cmds.window( width=150 )

幅150のウィンドウを作ります

cmds.columnLayout( adjustableColumn=True )

縦に並ぶレイアウトを定義します

hw_text = cmds.text( label='' ,w=150,h=40)

テキスト文字を表示する部品です。この部品の名前は”hw_text”です。

cmds.button( label='Button', command=hello_worldButtonPush )

“Button”と書かれたボタンの部品です。
クリックされると関数 hello_worldButtonPush が実行されます。

cmds.showWindow()

ウィンドウを表示します。

まとめ

Pythonで”Hello world”を表示する方法を紹介しました。

  • Python標準の”Hello world” を表示する方法
    printを使って”Hello world”を表示
    変数を使って”Hello world”を表示
    for文を使って4連続”Hello world”表示
  • MAYA固有の”Hello world” を表示する方法
    警告warningで”Hello world”を表示
    ボタンを押したらウィンドウに”Hello world”を表示

元々Pythonに備わっている方法MAYAのみで有効な方法の両方を紹介しましたがいかがだったでしょうか?

何となくでも理解できたでしょうか?

紹介したスクリプトには”Hello world”を表示するコマンドだけでは無く、for文やif文など色々なコマンドや機能が使われています。

難しく感じる箇所があったかもしれませんが、スクリプトを書く上で欠かせない基本的な要素は短いスクリプトコードの中に大体記述されいるので少しだけ我慢して読んでみてほしいです。サラッと目を通すだけでも良いので読んでみてほしです。

ぜひ頑張って楽しみながらPythonスクリプトを学習してみてください。


Twitter Facebook Pocket LINE はてブ


おすすめの関連記事:
コチラの記事も読まれています
あわせてよく読まれている記事

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください