📚

MayaでPythonを使ってみよう!④~繰り返し処理~

に公開

こんにちはkazinosです。

前回は条件分岐(if文)の解説と簡単な例題を解説しました。
今回の記事で紹介する繰り返し処理 for文は似たような処理を何度も実行したいときに使用される記法です。
if文と今回紹介するfor文はMayaの操作に関わらずどんな処理をする上でも必要な基礎知識なので、しっかりと覚えておきましょう!

▼前回の記事「MayaでPythonを使ってみよう!③~条件分岐~」
https://zenn.dev/kazinos/articles/0d0d20e9e52551

今回は、「特定の処理を繰り返し行う方法」について執筆したいと思います。

環境

Autodesk Maya2024.2
※別のバージョンでも基本的に同じ操作が可能です。

前提知識

Mayaのスクリプトエディタが操作できる
cmdsコマンドを使って操作をしたことがある
if文の記述が出来る

繰り返し処理「for文」をつかってみよう

繰り返し処理とは「配列の中身一つ一つに対して同じ処理を行う」のように、処理をまとめて行いたい場合に使用する記述方法です。

まずはサンプルコードを見てみましょう。

objectList = ["body","mesh_head","arm","leg","head_end"]
for object in objectList:
    if "mesh_" in object:
        continue
    if "end" in object:
        break
    print("mesh_{}".format(object))
結果:
mesh_body
mesh_arm
mesh_leg

このサンプルコードは
・文字列の中に”mesh_”が無ければ先頭に”mesh_”をつけてプリント
・ただし、文字列の中に”end”があったら無視する
というプログラムです。

ここで注目してほしいのは、2行目のif、4行目のcontinue、6行目のbreakです。
2行目のfor~という記述がありますが、これがfor文(繰り返し処理)の命令文になります。
4行目、6行目はfor文を操作する特殊な命令文です。内容を確認していきましょう。

■ for

繰り返し処理をする場合に必ず必要な命令文です。
書き方としては、forの後に変数、inの後に対象の配列を書いてその後に「:(コロン)」を書きます。
その次の行からはインデント(文字全体を右にズラす事)を下げて実行したい処理を記述します。

for 変数名 in 配列:
    処理

■ continue

continueはfor文の中で以降の処理を行わず、次のfor文の処理に飛びたいときに使用します。
if文と組み合わせて特定の条件の場合はスキップする のような使われ方をします。

for 変数名 in 配列:
    if 条件式:
        continue
    # これ以降の処理は行われない(for文は続く)

■ break

breakはfor文の処理を抜ける場合に実行する処理です。
こちらもif文と組み合わせて使用され、特定の条件に合ったらfor文の処理をやめる のような使われ方をします。

for 変数名 in 配列:
    if 条件式:
        break
    # これ以降の処理は行われない(for文を抜ける)

まとめとイメージ図

命令文 必要性 意味
for 必須 配列の中身を繰り返し処理する
continue なくてもOK for文を中断して、次の処理に行く
break なくてもOK for文を中断して、for文自体を抜ける

if文を使った最小構成

複数の条件分岐を行う構成

まとめ

今回は、「特定の処理を繰り返し行う方法」について書いて行きました。
for文はif文と同じく、どのプログラミング言語でも使用する考え方で、とても良く使用されます。

たくさんのデータを処理したい時に一つ一つ命令を書くのは大変なので、共通している処理があるならまとめて実行できるfor文を使用しましょう。

今回の例では配列の中身の文字を変更してプリントするだけでしたが、最後のPrint部分を書き換えて、リネームする処理や特定のオブジェクトをまとめる処理などにも使えるので、目的に合わせて色々変更して遊んでみると良いでしょう。

この記事が、これからMayaでPythonを始める方の参考になれば幸いです。

参考リンク

https://docs.python.org/ja/3/reference/compound_stmts.html#the-for-statement

Discussion