モーション研究室

ゲーム業界のモーションデザイナーが書いてるモーション講座

【Python学習】Lv04 有料本に突入

スポンサーリンク

f:id:generalion:20200113184310j:plain

Python学習】前回の記事はコチラ▼

Python学習】Lv04 有料本に突入

Python勉強を始めて半月程が経過しました。
 
最初は無料の範囲内で情報収集し、ある程度脳に叩き込めたのでいよいよ有料本に突入です。
 
購入したのは以下の2冊

たっきゅんのガチンコツール開発部 Maya Python 101 (CG Pro Insights)

たっきゅんのガチンコツール開発部 Maya Python 101 (CG Pro Insights)

  • 作者:伊藤 達弘
  • 出版社/メーカー: ボーンデジタル
  • 発売日: 2016/05/27
  • メディア: 大型本
Pythonスタートブック [増補改訂版]

Pythonスタートブック [増補改訂版]

 
いずれも評価の高い本となります。
 
どちらから読み始めるか迷いましたが、まずは『MAYAで使えるようになる』というのを目標に『たっきゅんのガチンコツール開発部』から進めていきます。
 
現在55ページ(第3章が終わった付近)までコードを書きつつ読み進めたところです。
 
フルカラーで画像付きの為、とても読み易いですしMAYAでPythonを使うのを前提に構成されているので目的と合致しまくりです。
 
全てを情報共有するのは難しいですが幾つかピックアップして書いてみます。

Notepad++

この本ではNotepad++を主に使用すると冒頭に説明がありました。
 ⇒Notepad++
 
ホント、コーディングするのにいろいろなソフトがありますね。
Anaconda
Visual Studio Code
Python IDLE
Google Colaboratory
Notepad++

  
他にもいろいろありそうですが、自分が使いやすいコーディングツールでやれば良いでしょう。
私もいずれは自分に合ったコーディングツールを改めて吟味してみようと思います。 
  

コマンドエンジンとAPI

コマンドエンジンとは

Mayaに対する「呪文(コマンド)」を処理するシステム

APIとは

Application Programming Interfaceの略。
Mayaの機能や管理するデータなどを操作する為のシステム

 
簡単に言うと

コマンドライン『Mayaでいろいろ呪文が用意されていますよー!』
API『機能拡張して更に便利に使えるようにできますよー!』

 
という事ですかね。
 
MELはコマンドエンジンのみですが、Pythonは両方を扱えます。
ではそれぞれの利点、欠点はどうなのでしょうか。

コマンドエンジン
■利点
 ・MAYAで実行された内容が見られる仕組みになっていて、それを真似すればいいので分かりやすい。
 ・日本語ヘルプが用意されている。
■欠点
 ・MAYAに対して高度な処理ができない
 ・処理速度が遅い
 ・オブジェクト指向でない

 
API(Application Programming Interface
■利点
 ・MAYAに対して高度な処理ができる
 ・オブジェクト指向
 ・処理が高速
■欠点
 ・プログラマー以外には分かり難い
 ・ヘルプが英語のみ

 
MELは簡単(…難しいですが)やれる事が限られる、Pythonは難しいけど高度な処理ができる。
 
自分は難しいが自由度の高いPythonに挑戦している訳なのですが、Pythonを勉強すれば結局はMELの事も分かってくるんじゃないかと思うので、勉強するならPythonがお得!です。

オブジェクト指向

さて、先程の利点と欠点の項目にサラっと出てきていたオブジェクト指向
 
普通に聞いても『は?』ってなる言葉ですよね。
最初にYoutubeでお世話になった伊沢先生も頻繁に使ってました。
それだけオブジェクト指向は大事なのに、どういうものなのかハッキリ書かれていない、もしくは例えがしっくり来ないものが多かったのですが
 
今西先生がとても分かりやすい説明をしておられたので共有しておきます。
今西先生の説明はとっても分かりやすくて素晴らしいです!オススメ!!
オブジェクト指向とは? | 知っておきたいIT用語シリーズ

オブジェクト指向とは

如何に効率良く開発を行うかを突き詰めた考え方。
オブジェクトの意味自体は物体、目標物、対象、目的語などの意味を持つ。
事前に目的、目標、用途を定めて物事を進めていくという考え方

  
こういうのっていろいろな事に当てはまりますよね。
 
とても勉強になりました。

ガチンコツール開発部3章

3章は本に書かれている通りにひたすらにコードを書く章でしたが、これがなかなか大変。
 
transfarWeight.py - Google ドライブ
 
上記のコードを本の通りに書いたのですが、途中で答え合わせも無くMAYAで案の定エラーが出まくりでした。。。

主なエラー部分

・大文字と小文字の間違い
・スペルミス
・インデント(スペースで空ける段落)の間違い
・MAYAのサンプルシーンをどう扱えば良いのか詳しく書かれていない

など、かなり迷走してしまいました。
最終的には何とか機能しましたが、これを答えもなくエラー部分を探すのは相当大変ですね。
『あまり気にせずマイペースにいきましょう』とのお言葉がありましたので気にせず先に進みますがこの先も容易ではなさそうだという覚悟ができたように思います。

その他のメモ書き

ユニコードエラーが出た場合の対処】
# Error: UnicodeEncodeError: file line 5: ascii #
こういうエラーが出た場合はPathに日本語が使われている為に起こっている(はず...)なので
以下のコマンドを冒頭に加える事でコマンドが動くようになりました。
(合ってるのかは分かりませんけど)

import sys
# sysモジュールをリロードする
reload(sys)
# デフォルトの文字コードを変更する.
sys.setdefaultencoding('utf-8')
# デフォルトの文字コードを出力する.
print 'defaultencoding:', sys.getdefaultencoding()


【サンプルPythonの活用】※サンプルMELもあります
Script Editor > Help > Python Command Reference
f:id:generalion:20200126000408j:plain
f:id:generalion:20200126000416j:plain:w500
f:id:generalion:20200126000412j:plain:w400
いろいろコマンドがあり、一番下にはPython例(コマンドサンプル)があるので実際にコピペして試せる。
 
【英語版のMAYAだが、ヘルプのみ日本語化したい場合】
preferences > Help > Help Location のLangage:をJapaneseに変更
f:id:generalion:20200126000904j:plain

【Cube作成時のMELとPythonでのコマンドの違い】
▼ MEL ▼
polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0 -cuv 4 -ch 1;
▼ Python ▼
cmds.polyCube( w=1, h=1, d=1, sx=1, sy=1, sz=1, ax=(0,1,0), cuv=4, ch=10)
=============================================================
⇒フラグ名の指定方法が違う
  MELは「-(ハイフン)フラグ名 値」となるが、Pythonは「フラグ名=値」となる
⇒区切り方が違う
  MELはスペースで区切るがPythonは ,(カンマ)で区切る
⇒冒頭処理
  Pythonは冒頭に cmds. と指定し( )で囲む
⇒最後の処理
  MELは最後に ; が入る
=============================================================

今後の流れ

引き続き、ガチンコツール開発部を読み進めます。
 
その後はPythonスタートブックへ。
それとProgate!こちらも気になるので、もっと勉強したいとなっていたらやってみます。

まとめ

以上。【Python学習】Lv04 有料本に突入でした。
 
『たっきゅんのガチンコツール開発部』はTwitter経由でTAさんからオススメされておりましたのでMAYAでPythonを始めたい人なら買って損は無いと思います。
自分はまだ30ページ目なので、読み終えた後にオススメ度を明記して改めてご報告します。
 
   
以下、学習が終わったものをまとめておきます

学習済まとめ

Python入門第1回 Pythonの概要 プログラミングを始めよう!
オススメ度 ★★☆☆☆
媒体:Youtube
感想:専門学校講師の伊沢さんが教えてくれる。中盤以降は超初心者にはちょっと難しかった。

 

プログラミング超初心者が初心者になるためのPython入門  
オススメ度 ★★☆☆☆

媒体:本 
感想:Vol1のみAmazonPrimeで無料。1日もあれば読めます。
   分かりやすい文章だったが、情報がちょっと古いのと文字のみなのでやる気がないと読むのは大変かも。

 

【vol.001】Pythonとは | 中学生でもわかるPython入門シリーズ
オススメ度 ★★★★☆
媒体:Youtube
感想:Google Colaboratoryは少々クセがあるが、とても分かりやすい講義です。

 
  
それではまたある程度進んだらまとめます!

次回


プライバシーポリシー お問い合わせ