モーション研究室

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

【MAYA】リグ編 IKFK Switch

f:id:generalion:20200329220610j:plain

【MAYA】リグ編 IKFK Switch

IKとFKをスイッチングする構造の説明です。

骨1本で制御するパターンと3本で制御するパターンの2種類をご用意致しました。
  
なお、このやり方以外にもいろいろ方法はあります。ほんの一例として御覧下さい。

IKFK Switch 骨1本Version

以下の動画に注釈を随所に入れております。
これを見れば構造を理解できるようになるかと思います。

大雑把な流れの説明

2関節の骨を用意(足想定)

f:id:generalion:20200328020157j:plain
まずは元となる骨の作成です

FK構造の作成

f:id:generalion:20200328020201j:plain
FK【フォワードキネマティクスを作成します

IK構造の作成

f:id:generalion:20200328020204j:plain
次にIK【インバースネマティクス】を作成します。
FK,IKの作成順序は逆でも大丈夫じゃないかと思います。

スイッチ作成 機能切替

f:id:generalion:20200328020208j:plain
スイッチ用のカーブを用意します。
アトリビュート制御でも良いのですがパースペクティブで完結する為に用意しています。
形状や連結する箇所はリガーによって様々です。
私ももっと分かりやすい制御系に出来ないか試行錯誤中。

スイッチ作成 表示切替

f:id:generalion:20200328020212j:plain
切替と同時に表示/非表示も行うようにします。
ちなみに消すのではなく、テンプレート状態にするやり方もあります。

完成!(所要時間は12分程度)

f:id:generalion:20200328020216j:plain
これで完成です。
10分少々で完成。しかし何度もやるとなると大変なのでスクリプトで一発作成が理想ですね。
自分はまだ『出来ない』ので勉強あるのみです。 

参考動画

なお、とても参考になった海外のYoutube動画はコチラになります。
私はこの方の動画を見てやり方を覚えました。

 
私の説明で不足している部分もこの方の動画を見れば分かるかも知れません。
(ただし英語です)
 

IKFK Switch 骨3本Version

次に骨3本バージョンです。
1本バージョンと似た部分もある為、ある程度割愛しています。
1本バージョンで補間しながら見て頂けると助かります。

 
相違点

・骨を複製し3本で組んでいます
・各骨にFKとIKリグを構築しています
・Orientコンストレインを3点制御しています
・スイッチはik_BlendではなくOrientコンストレインとで連結しています

大雑把な流れの説明

2関節の骨を3本用意(複製)

f:id:generalion:20200329223615j:plain
今回はBaseとなる骨から複製しIK用、FK用と3本用意します。
予め、スイッチのカーブ / 各骨にIK/FKリグ / グループ分け を設定済です。

Orientコンストレイン

f:id:generalion:20200329223618j:plain
FK⇒IK⇒BASE の骨で3点でOrientコンストレインをかけます

DrivenKey

f:id:generalion:20200329223622j:plain
スイッチとOrientコンストレインノードとでDrivenします

スイッチ作成 表示切替

f:id:generalion:20200329223628j:plain
表示切替をします。
これは1本制御時と同様なので説明は割愛しています。
  

参考動画&記事

なお、こちらも参考になった動画を貼っておきます。(英語です)

いのぽあさんの記事も参考になりますので、ご覧になられると良いかと思います!

まとめ

以上。【MAYA】リグ編 IKFK Switch でした。
 
リガー専門の方が社内にいればリグを作る機会もほとんどないかと思いますが、知っていると知らないとでは差が出てきます。
リガーさんの工夫や苦労も分かるでしょう。
リガー側も理解して貰えてると話が通じるので円滑に進められます。
作業者もどう動かしたいのかを説明する事ができます。
 
『こんな注文したいのだけど結構大変なお願いしているのではないか』
『ここの制御はFKよりIKの方が動かしやすいんだけど』
 
などなど
自分で作業&リグを組む人は良いのですが、担当が分かれているとコミュニケーションも重要になってきます。
 
良いリグのお陰で良いモーションが作れる。
 
リガーとモーション、お互いに尊敬し合えると仕事がより楽しく厚みが出てきますよ^^


【MAYA 初心者講座】ジャンプ Lv23

f:id:generalion:20200322124348j:plain

攻撃モーション 前回の記事はコチラ▼

【MAYA 初心者講座】ジャンプ Lv23

ジャンプ編 第3回です。
この回でジャンプ編は終了となります。
 
ボールから人型へ進みます。
 
【ご注意】 
以下、Gif動画多めでやたら飛び跳ねてます。そういう回なのでご了承下さい。
(ウザイくらいに飛んでます!)

人型ジャンプ

まずはボールとの比較動画から。
ボールと人型、似ているのがお分かり頂けますでしょうか。
f:id:generalion:20200322123335g:plain:w200f:id:generalion:20200322123329g:plain:w200



何となく矢印のような流れを意識して動きを付けています。
上昇時に手足は中央に寄せ細いシルエットになるようにし(サイドも同様)
下降時は足は細く、手はフワッと残します。
f:id:generalion:20200322123340g:plain:w200f:id:generalion:20200322163743g:plain:w200
それと、ボールが縦に伸びているのと同様にシルエットで細くしています。
 
スケールで伸ばした方がより長く(ねちっこく)印象付けられますが、動きの末端まで流れを意識すればスケールはしなくても目に残りやすくなります。
(今回は指先まで作り込んでいませんが、指まで流れを作るとより効果的です)
  
加えて、地味に効果的なのが着地の際の足スライド
着地と同時に終了位置で足を固定すると動きが無く勿体ないので僅かに動きを加え馴染ませています。
f:id:generalion:20200322140144g:plain:w300
着地時に外側に向けて負荷がかかっているのを伝える小技ですが、ちょっとタイミングを外すと接地感がなく、足が滑っているだけに見えてしまうので注意が必要です。
 
大雑把に説明しますと、まずはカカトが大きく外へスライド、遅れてつま先、若干のオーバーシュートの後に待機の足に繋げています。

ジャンプNG集

それでは次にNG例を5つ程ご紹介します。
いずれも、あるあるパターンです。

NG1 空中停止

f:id:generalion:20200322123227g:plain:w200f:id:generalion:20200322123235g:plain:w200
空中で手足が一定の場所に留まっている状態です。
グローバル制御(手足が腰の子ではなく独立している)の際に起こりがちで、このように固定していると不自然なので、全方位で確認しゆっくりと流れを加えましょう。 

NG2 X軸付け忘れ

f:id:generalion:20200322123242g:plain:w200f:id:generalion:20200322123248g:plain:w200
横からの動きは出来ているのに正面から見るとこのように動きが薄いパターンがあります。
X軸でも体に寄せる、離れる等、動きを加える部分は多いので忘れないように気を付けましょう。
横と正面で印象が大きく異ならないように。

NG3 親の動きと同調

f:id:generalion:20200322123254g:plain:w200f:id:generalion:20200322123259g:plain:w200
主にローカル制御(手が腰の子になっている状態)の際に多く見られます。
よーく見ないと分からないレベルですので見落としがちですが、腰と同じタイミングで動くのは凄く勿体ないです。僅かなズレを加えましょう。
(下のNG4の腕の動きと見比べると分かるかと思います。フワっとした浮力が効果的に目に残ります)

NG4 地面から引っ張られている

f:id:generalion:20200322123306g:plain:w200f:id:generalion:20200322123312g:plain:w200
足が重力から解き放たれておらず、何だか地面からロープで繋がれ引っ張られているように見えます。重力から解放されたような軽やかさを持たせ、見る側に気持ち良さを与えましょう。

NG5 見えない天井

f:id:generalion:20200322123319g:plain:w200f:id:generalion:20200322123324g:plain:w200
前回のボールの際にも書きましたが、見えない天井もよくあります。
頂点に達した付近でも僅かながらも移動をしています。
Fカーブを確認し、平らな状態になっていないか確認してみましょう。

まとめ

以上。【MAYA 初心者講座】ジャンプ Lv23 でした。
  
オーソドックスなジャンプです。
マリオのように片手片足を上げたもの、武器を所持したもの、キャラクターの個性を活かしたものなど様々ありますが、上記に挙げたNG例は割と見ますので気を付けてみて下さい。
 
『ジャンプ Lv21』でも書きましたが、ジャンプは必ず制作する機会はあります。
 
ジャンプは地面から離れる練習と言っても良いかも知れませんね
 
ちょっとした体重移動でも、慣れないうちはなかなか足と地面が離れません。
片足ずつであっても足を上げて着地までって作るの大変で、なるべく最小限の動きで済ませようとしてしまいます。
それだと足に動きが無い、重たい印象となりますので微細な一歩でも足を動かせるように、地面から解放する練習をしてみて下さい。
   
 

それでは、ジャンプ編 終了です。
ありがとございました!

次回

『揺れモノ』の回を、そのうちやります。
Pythonやリグのお勉強もしたい(ゲームも遊びたい)ので、気長にお待ち頂ければmm



 

【MAYA】リグ編 set Driven key

f:id:generalion:20200318003056j:plain

【MAYA】リグ編 set Driven key

リグ編 第1弾。まずは、set Driven keyについて書きます。
 
読み方は 『セット ドリヴン キー』
 
ドリブン ではなく ドリヴン と 『ヴ』 と表現した方がちょっとカッコイイです。
 
そういう訳なので以降はDrivenではなく『ドリヴン』と書いていきます。
ちなみにドリヴンは日本語では『駆動』(たぶん駆動で合ってると思う)
  
ドリヴンキーのある場所は
key > Set Driven Key >Set... □
(右の□は2018では無いみたいですね。ほほー何か変わってるのかな)
f:id:generalion:20200316235939j:plain:w600
 
ShelfではRiggingタブの中に『ドリヴンキーアイコン』があります。
f:id:generalion:20200316235943j:plain:w600
 
そしてこの画面についてですが、これだけ見てもよく分からないですよね。
f:id:generalion:20200316235947j:plain:w300
まずは以下の2つを覚えて下さい。

Driver 運転手
Driven 駆動するもの

と覚えておくと分かりやすいかと思います。
 
上に運転手にしたいものを選択して『Load Driver』で設定
下に駆動するものを選択して『Load Driven』を押して設定します。

ではドリヴンしてみましょう

では動画を見つつ設定手順を見ていきましょう。
機能自体はそんなに難しいものではありません。

 
動画の説明を軽くしますと

①レバーの回転X軸とドアの回転Y軸を選択して、まずは初期状態のキーを打ちます。
②今度はレバーを下げた状態とドアを開けた状態にして、またキーを打ちます。

キーを打つとこのように指定したアトリビュートが青くなります。(駆動側)
f:id:generalion:20200316235950j:plain
 
以上で完了です。ちゃんと連動しているかレバーを回転させてみて下さい。
 
簡単じゃないですか?
なお、削除する場合は青い箇所を右クリ > Break Connections です。
(どうでもいいですけど、アトリビュートエディタの部分だけ複数形なんですね)
f:id:generalion:20200318091556j:plainf:id:generalion:20200318091600j:plain

 
応用すればレバーを下げるとドアを消したり(ドア Rot Y軸 ⇒ Visibilityに設定)
レバー移動でドアを引き戸にしたり(ドアRot Y軸 ⇒ Trs X軸に設定)
逆にドアをドライバー側にして何かをやる事もできます。
ドア単体でドライバーとドリヴンの設定も可能です。(移動⇒回転を連動したり)
 

注意点

ドリヴンキーは キーと言うだけあってキーがグラフエディタに打たれます。
f:id:generalion:20200318000451j:plain
ですので間違えてそのキーを消してしまうと、機能が消えてしまいます。
 
【Fカーブを選択したくない場合】
f:id:generalion:20200317235635j:plain
グラフエディタ 右クリ > Hide In Outliner > Hide
 
これでアウトライナーやグラフエディター上で隠す事ができます。
(自分はこうやって回避してましたが、これ以外の方法あったら教えて下さい!)
 
再度表示させたい場合はパースペクティブかハイパーグラフ上でノードを選んで
先程の Hide In Outliner > Unhide で表示されます。
f:id:generalion:20200318003051j:plain

まとめ

以上。 【MAYA】リグ編 set Driven keyについてでした。

上に書いた通り、機能自体はそんなに難しくありません。
要は『この機能を使ってどういう仕掛けを作るか』です。

ドリヴンキーだけでなく、Expressionやコネクション、ノードエディターなど他の要素も駆使すれば
発想次第でいろんな仕掛けが作れちゃいます。
 
まずはドリヴンで軽い仕掛けから作ってみましょう!
いろんなパターンを覚えると仕掛けを組み立てるのがどんどん楽しくなってきますヨ^^
 


【MAYA 初心者講座】ジャンプ Lv22

f:id:generalion:20200229171412j:plain

攻撃モーション 前回の記事はコチラ▼

【MAYA 初心者講座】ジャンプ Lv22

それではジャンプ編 第2回です。
今回は動きを踏まえた内容で進めて参ります。
   
  
  
  
動きといっても今回扱うのはコレ。
f:id:generalion:20191230203916j:plain
 
バウンシングボール
  
単純なこの球体で今回は進めて参ります。

バウンシングボールはジャンプの基礎

ジャンプの基礎となる動きは『バウンシングボール』に詰まっています。
ジャンプに限らず、バウンシングボールでアニメーション12原則は学べるので、『人型まだ大変だなー』と感じた場合は改めてバウンシングボールに戻ってみるのもオススメです。
  
試しにジャンプ、2段ジャンプ、壁ジャンプをバウンシングボール化してみました。
f:id:generalion:20200308181329g:plainf:id:generalion:20200308180846g:plainf:id:generalion:20200308180854g:plain
  
ただのボールですが表現上、特に問題ありません。
むしろ素早く作れるのでやりやすいです。
  
キャラクターを遠目から見るような大まかな流れ、全体像を見る訓練になります。
  
『大まかな流れ』で特に重要なのがタイミングとスペーシング
この段階で気持ち良い動きを作れると後が楽です。
  
ちょっと良くない例として、いろいろ詰め込んでみました。
分かりやすいようにスローverも置いておきます。
f:id:generalion:20200308184321g:plainf:id:generalion:20200308230602g:plain

・見えない天井に当たっている
・重力に引っ張られているように見える
・地面と頂点の印象が強く過程の絵の印象が薄い
・ストレッチを入れすぎて丸い形状が維持できていない
・上昇と落下が一定速度になっている
・滞空時間が不十分

特に良く見かけるのがストレッチを入れ過ぎた状態
まずは何故伸ばすのかを理解する必要がありそうです。
  
次の項目で説明します。
  

伸びの正体

ボールの上昇や落下時に伸びていますが、果たして現実でも伸びているのでしょうか。
 
 
ハイスピードカメラ映像で見てみましょう。
【テニスボールの場合】

動画のようにインパクトの瞬間に圧縮はされますが、インパクト前後は伸びていません。
【野球ボールの場合】

 
硬質の野球ボールはバットで打ってもほとんど圧縮はされませんし伸びません。
 
もっと硬いボウリング玉は現実では伸びる事はないですね。
 
では伸びる正体は何か。
 
それは残像(ブラー)
f:id:generalion:20200308191306p:plain

落下する物体はモーションブラーによって垂直方向に伸びたように見える。
しかしアニメーションでは上下に物体が伸びただけでは物体の容積が変わってしまったようにも見える。
従ってアニメーションにおいては、そのような場合上下に伸びた分、横(左右)を縮めて容積の一致を保てるようにする。

上記の文章はMOX MOTION様がご紹介されている『Animation Physics』からの引用です。

 ⇒https://mox-motion.com/wp-content/uploads/2011/09/Physics-of-Timing-and-Spacing1_28.pdf 
20ページ目 『加速”ストレッチ”』 を参照しています。
2011年のものですが、とても分かりやすく解説されてます。
  

つまりは伸びる正体が残像であるならば、伸びる長さは速度と比例します。
速ければ速いほど伸びるという訳ですね。
 
 
そして上記を知った上でちょっと疑問。
f:id:generalion:20200308205430j:plain

①残像であるならば軌道上のボールの後ろが伸びるのが正しいのではないか。
  └ 楕円ではなく隕石のように流れてきた方向が伸びるのが正しいのではないか
f:id:generalion:20200310091338j:plain 
②落下前(画像赤い部分)のボールは何故伸びているのか。
  └ 速度が一番ついているのは着地後に跳ねた部分。ここが残像なのは何となく分かるが
    そんなに高い場所から落下していない前半が伸びているのはおかしくないか

 
①はまあそうですね。
ただ初心者用のバウンシングボールでそこまで追求しない、簡易構造になっているだけ(なはず)
  
②については次の項目で

前半が伸びるワケ

f:id:generalion:20200308205430j:plain
前半が伸びるのは単なる残像(ブラー)という訳でもなさそうです。
 
2つ例を挙げます。
 

ストロボ効果

21ページ目 『ストロボ効果&ストレッチ』参照
https://mox-motion.com/wp-content/uploads/2011/09/Physics-of-Timing-and-Spacing1_28.pdf 

 
動きが速過ぎると絵が飛んでしまったように見え、動きを正しく認識できない事がある。
それを回避する為にストレッチを用いて繋がった絵に見せている。
 
ストロボ効果で検索するとこのようなページもHITしました。
先に残像が現れて実像化しています。

いずれも連続した絵に見せる為に先行した動きを介入しています。

Smear(スミア)

Rory Alderton氏のページは個人的に好きでちょくちょく紹介しているのですが、この方の着地時の足の伸びもボールに近いものがあります。
League Animation Deepdive 1

 
 
f:id:generalion:20200309000908j:plain:w300
動画を見ると注釈に Stretch * Smear と書かれています。
  
Smear(スミア)とは直訳すると 汚れ、染み、一筆
 
ブレや一筆の軌道をイメージすると良いでしょう。
 
わかすぎ氏のサイトでも説明されておられます。

前のフレームからの移動距離が長いとどういう軌道を通って動いているのか見てる人にとって分かりづらくなる。

 

以上をまとめると

前半の伸びは動きを印象付ける為の効果 +ブラー
  
伸縮させる事で、長くポーズを見せる事ができます。
また流れをライン(軌道)として捉え 滑らかな動きの表現ができます。
 
ただし上手くやらないと伸びた印象が強くなり、不自然になったり、クドくなったりする恐れも。。。なかなか難しい技でもあります。

まとめ

以上。【MAYA 初心者講座】ジャンプ Lv22 でした。
 
今回はバウンシングボールを使ってのボールが伸びる理由について解説しました。
  
バウンシングボールのダウンロードについてはコチラをご参照下さい。

 
伸縮する事で残像を表現していますが、ゲームによってはスケール不可の場合もあります。ゲームのリグ構造では制約だらけだったりしますが、スケールを使わずとも印象付ける方法はあります。
 
それはまた次回に。

それでは!

次回

【MAYA 初心者講座】ジャンプ Lv23につづく...


 

【MAYA 初心者講座】ジャンプ Lv21

f:id:generalion:20200229171408j:plain

攻撃モーション 前回の記事はコチラ▼

【MAYA 初心者講座】ジャンプ Lv21

久々ですが実践編の続きとなります。
 
揺れモノかジャンプか迷いましたが今回は『ジャンプ』でいきます。
 
ジャンプはゲームでは欠かせない動きの一つ。
ゲームに関わらず上下に移動する手段として必要なモーションです。
 

アニメーションに携わる中で作った事無いって人は、まーずいないでしょう。
  
『ジャンプ』は歩きや走りなど基本動作セットに必ずと言っていい程入っていますが
歩きや走りに比べると、ジャンプはかなり人間離れしています。
実際に自分で飛んでみると思ったより地面から離れませんし、対空時間も微々たるもの。
リアルよりの作品であっても大袈裟に動きがついている事が多いです。
そのため『ジャンプ』は想像して作る割合の高いモーションと言えるでしょう。

ジャンプの種類

『ジャンプ』といってもいろいろあり、その中でも代表的なものを3つご紹介します。

①2段ジャンプ

現実世界では2段ジャンプをやるのは不可能。 ですがゲームの世界ではできます!
2段ジャンプが何なのか、説明せずとも『あーアレか』と容易に想像はつくかと思います。
空中で再度もう一回飛ぶアレです。
  
自分でリファレンス撮る事は、、、できませんね。
しかし参考動画は世の中にたくさん溢れています。
ゲームやアニメ作品には数えきれないくらい2段ジャンプあります。
  
今では慣れてしまって誰も違和感を覚えませんが当時2段ジャンプは特別な存在でした。
より高い場所に行く手段。
序盤に行けなかった場所に行ける喜びを味わえる貴重な技でありキャラクターの成長を感じられるものでした。
 
発明した人は凄いですね。この技一つでゲームの幅が広がりますから。
 
では最初に2段ジャンプを始めたゲームは何なのでしょう?
 
2段ジャンプを最初に取り入れたのはドラゴンバスター』(1985年)[ナムコ]だそうです。
(当時はnamcoではなく、namcoTですね。 しかも今気づきましたが Tだけ大文字)
f:id:generalion:20200229161325j:plain
スーパーマリオブラザーズ(1985年)でも最初はジャンプは1段のみ。
 
その後、徐々に横スクロールアクションゲームを中心に多くのゲームで模倣され、ジャンルを超えて格闘ゲームやRPGなどでも取り入れられていきます。
そして3D世界になった今でも2段ジャンプは健在です。
 
何も無い空中でもう一回飛ぶ!
子供の頃に何とかできないものかとカメハメ波と同様に頑張っていましたが無理でした。

②壁ジャンプ

もう一つは壁ジャンプ。
これもゲームやアニメの世界では良く見ますね。
 
壁を蹴って上昇したり落ちかけているところから復帰する手段です。
始まりかどうかは定かではないですが有名どころで言えば忍者龍剣伝(1988年)[テクモ]
f:id:generalion:20200229161059j:plain
説明書10ページ目 [壁ジャンプ] 
https://www.nintendo.co.jp/clv/manuals/ja/pdf/CLV-P-HACBJ.pdf
壁ジャンプと言うより壁に張り付いていますが。
  
後は個人的にはキャプテン翼の若島津くんですね。
https://cdn-ak.f.st-hatena.com/images/fotolife/B/BluePhobos/20050602/20050602233520.jpg
  
当時カッコイイ!!と思っていましたが、今見てもカッコイイです!
イナズマイレブンでもっとド派手なものが出てきているので地味に見えますかね・・・)
 
ちなみに壁ジャンプも子供の頃にチャレンジしましたが失敗して膝を擦りむきました。
半ズボンでやるものではないですね。。。

③回転ジャンプ

そして回転ジャンプ!
といっても種類は様々、前回転、後回転、側転にキリモミ。
 
2段ジャンプや壁ジャンプはより高い場所に行く際に用いられますが、回転ジャンプは
真上に上昇するだけでなく、前後に移動する手段としても用いられます。
 
『回転ジャンプ』のルーツはゲームというよりもテレビ。
仮面ライダー(1971年~)に一番影響を受けているかと思われます。
f:id:generalion:20200301193334j:plain:w400 
仮面ライダーは今でもカッコイイ回転ジャンプの代名詞ですからね。(自分はそう思ってますけど)
もう一つ忘れてはいけないのが戦隊モノ『秘密戦隊ゴレンジャー』!
f:id:generalion:20200301193330j:plain:w400
コチラは1975年放送なので仮面ライダーが少し先輩です。
 
回転ジャンプ!といったら『特撮』をイメージしてしまいますが今だと何でしょうね。
トランポリンやパルクール、体操 あたりでしょうか。
令和になった今も仮面ライダーや戦隊モノは継続中なので引き出し増やしたい方は是非!
 
おっと脱線してきてました。

まとめ

以上。ジャンプ3種類についてでした。
【MAYA 初心者講座】ジャンプ Lv21はここまでとします。
 
どのジャンプもほとんどのゲームにはありそうですが最近ですと、やはりスマブラですかね。
キャラクターも多いですし参考になります。
大乱闘スマッシュブラザーズ SPECIAL | Nintendo Switch | 任天堂
 
後は格闘ゲームでも2段ジャンプ、回転ジャンプ(壁ジャンプはどうかな)はありますね。
 
この3種のジャンプの他にも空中でワープしたり、武器を用いてジャンプしたり、変形したり、羽根や尻尾を使ったりと、想像力次第でジャンプの種類は増えていきます。
   
ジャンプの種類や始まりについて書いていたら童心に返って盛り上がってしまいました。
それだけ子供時代のイメージは脳内に強く焼き付いているものです。 
 
次回はジャンプについて動きも踏まえて書いていく予定です。

それでは!

次回

【Python学習】Lv08 ガチンコ8章と9章

f:id:generalion:20200211144202j:plain

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

Python学習】Lv08 ガチンコ8章と9章

では今週の成果まとめです。 
▼ただいまこの本を読み進めています!▼

 
第8章と9章が終わりました。
f:id:generalion:20200224222853j:plain
8章ポリゴンの反転コピーをするツール
f:id:generalion:20200224222857j:plain
9章アトリビュート値をコピー&ペーストするツール
 
すんなりといく方が少なかったですが、無事に動作するところまでいけたので一安心です。
ですが正直ここまでやってきて理解できている部分は2割程度といったところです。
 
本当にこれで自分はプログラムを組めるようになるんだろうか。。。
と不安にもなっていましたが、9章の終わり際に書いてあった言葉に少し助けられました。
 
『ツール作成の雰囲気はお分かりいただけたでしょうか。興味が持てたら少しずつ理解を深めていっていただきたいと思います。』
  
  
現段階では、プログラムの組み方を体験していたに過ぎません。
  
  
大工でいったら家の建て方を棟梁にざっと見せて貰ってたようなものです。
自分で家を建てられるようになるには、木や鉄の素材、工具、コスト、ここで何を用いるか等、技術や知識を更に磨いていく必要があります。
最初は棟梁や先輩のやり方をマネしつつ、やっていくのが新米大工のやり方です。
いきなり家を建てるのは無謀ですよね。焦らずに、まずは椅子制作くらいから始めてみましょう♪
   
   
『焦るな。しかし甘えるな。』
(これは自分自身への叱咤激励です)

その他のメモ書き

QtGuiを使用するモジュールもある

第9章でもPySide2になった影響でまたもや躓いたので共有しておきます。
   
QtGui ⇒ QtWidgets に全て変えれば良いと思ってましたが例外がありました。
 
MAYAでこういうエラーが出ました。

#class StockItemModel(QtWidgets.QStandardItemModel):
# AttributeError: 'module' object has no attribute 'QStandardItemModel' # 

 
『moduleオブジェクトにQStandardItemModelがないですよ』というエラーです。
最初はスペルミスかと思いましたが違いました。
完成品と比較しても差異は無し。
後は考えられる事としてはPySide2の影響。。。
  
いろいろググってみて、ようやくHITしました。
 ⇒memox: PySide2 対応メモ
以下引用です。 

モジュールを置き換えて、QtGui → QtWidgets でいける! と思いきや...
このへんは Gui のまま

QtGui.QPen
QtGui.QFont
QtGui.QIcon
QtGui.QColor
QtGui.QImage
QtGui.QCursor
QtGui.QPalette
QtGui.QStandardItemModel

このへんは Core

QtCore.QItemSelection
QtCore.QItemSelectionModel
QtCore.QStringListModel
QtCore.QAbstractProxyModel
QtCore.QSortFilterProxyModel</span>

全部QtWidgetsにすれば良いって訳ではないんですねー。。。
以下のように変更をしたら解決しました。

class StockItemModel(QtWidgets.QStandardItemModel):
        ↓
class StockItemModel(QtGui.QStandardItemModel):
 
冒頭のImportにもQtGuiを追加
from Qt import QtCore, QtWidgets, QtGui

 
『このモジュールは いったい何の中に入っているのか?』
知る方法は無いものかといろいろ調べてみたところ。
このページを見ればある程度は分かるかなーと思えました。
 ⇒Qt Modules — Qt for Python
 
もっと簡単な方法がありそうですが、、、どなたか教えて下さいw

VisualStudioCodeに完全移行

今までは本の通りに Notepad++を使用していましたが、さすがにしんどくなってきたのでVisualStudioCodeに変えてみたら俄然、作業効率がUPしました。

・コードを予測変換してくれる
・機能拡張が豊富
・完成品との比較がしやすい
・インデントが見やすい
デバッグ機能

  
まだまだ使いこなせていない部分も多いですがコードを書くのがだいぶ楽になりました。

Amaterasu

9章を終えて筆者様・伊藤達弘氏とボーンデジタルによるMAYA補助ツール集の存在を知りました。

利用するには株式会社ボーンデジタルからのライセンスが必要との事ですね。 
オンラインドキュメントより内容は確認できます。

今後の流れ

引き続き、ガチンコツール開発部を読み進めます。
 
その後はPythonスタートブック & ツール作成にチャレンジ。

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

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

  • 作者:辻 真吾
  • 発売日: 2018/04/12
  • メディア: 大型本
 
オンライン学習はとりあえずこういうのがありますよとリンクを貼っておきます。
 ⇒Progate
 ⇒PyQ
 ⇒Udemy

まとめ

以上。【Python学習】ガチンコ8章と9章でした。
  
8章と9章はとても長い章、且つ難しい章でしたのでなかなか根気が必要でした。
MAYAでPythonを扱う本としては、比較的分かりやすい部類かと思いますので『ガチンコツール開発部』は買って損はないかと思います。
 
もう少し知識が深まってくるとこの本の価値も更に向上しそうな気はします。
 
まだ自分の知見がいろいろと足りないのを痛感しておりますので、目的意識を明確にして簡単なものから積み上げていけたらと思います。
Pythonについて書いていますが、モーションでも同じですね。
 
いきなりレベルの高いものに挑戦すると自分の不甲斐なさに自信を喪失してしまいがちです。
高難度のものにチャレンジするのも悪くはないですが、まずは簡単なものから入って自信を付けていくのも良い方法かと思います。
モチベーションを持続させる事が重要ですね。
 
本日はここまでとします。
それではまた次回!! 
   
以下、学習が終わったものをまとめておきます

学習済まとめ

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

 

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

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

 

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

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

次回



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