140 Views
February 27, 24
スライド概要
2023年5月18日に行われた【TA Night オンライン開催 無料配布MAYA便利ツール徹底紹介】
https://www.creativevillage.ne.jp/category/event-list/seminar/132834/?rls
で紹介され講演の【BOOTH対応_新人の取り組み】スライド資料です。
紹介ツールはこちらから入手できます。
Booth Coyote Joint Orient To Rot with Joint Size Edit
https://coyotec.booth.pm/items/4553686
Booth Detach Poly
https://coyotec.booth.pm/items/4600872
Booth Auto Same Name Renamer
https://coyotec.booth.pm/items/4654971
Booth Set Joint Label
https://coyotec.booth.pm/items/4761771
クリーク・アンド・リバー社 所属 国内最大級のテクニカルアーティストチーム 約30名が在籍中⚡ MayaやPsなど便利ツールの頒布や技術情報を発信します🐺📢 Booth :https://coyotec.booth.pm ブログ:https://3d.crdg.jp/tech/
BOOTH対応 新人の取り組み COYOTE 3DCG STUDIO 小林 由佳 COYOTE 3DCG STUDIO所属、TAの小林です。 新人である自分が最初に携わったBOOTH対応について、新人目線での良かっ た点/苦戦した点などを紹介できればと思います。 まず初めに、軽く自己紹介の方をさせていただきます。 C&R社に当初は2Dアニメーターとして中途で入社しました。 2020年のCEDECにてTAという職種に興味を持ち、今までの経験を活かしつ つTAを目指すため、3Dアニメーターへ転向し、さらに現在TA業務を対応し ています。 プログラミングも未経験の自分が、TA業務の最初の仕事として対応させて頂 いたのが、こちらのBOOTH対応になります。 1
ツール作成について 対応/工夫/学んだこと 「Joint Orient To Rot」/「Detach Poly Move」 「Auto Same Name Renamer」/「Set Joint Label」 2 早速ですが、今まで対応させて頂いた4つのツールについて、それぞれ行っ た対応や工夫、学んだことなど紹介させて頂きます。 2
「Joint Orient To Rot」 対応したこと ⚫ 命名の変更 ⚫ 警告文の追加 学んだこと ⚫ Mayaコマンドリファレンス ⚫ エディタの使い方などの基礎 ⚫ グレップ検索(Ctrl + G) ⚫ 検索(Ctrl + F) 苦戦したこと ⚫ このツール専用のoptionVarの用意 ⚫ 警告文の追加 3 一番初めに対応させて頂いたのが、「Joint Orient To Rot」になります。 こちらはジョイントの方向を回転に出すよう改良されたツールになります。 この時点ではあらかじめMelの基礎を教わり、printの使い方やif文/for文等の 知識を身に着けている状態になります。 ですが、実際のまとまったコードを見るのは初めてで、処理の中を見ても知 らないコマンドばかりなので、 Mayaコマンドリファレンスで調べたり、エディタの「検索」や「グレップ検 索」を駆使し、初めて「多くのソースの中から必要な処理をピックアップす る方法」を学びました。 ウィンドウを開きなおしたときも同じ設定を維持するように作成したかった のですが、 元のツールは色んな機能をまとめており、optionVarが複雑だった為、この ツール専用にoptionVarを用意する必要がありました。 しかし、ボタンの種類によって、optionVarのコマンドが違うため、苦戦しま した。 3
また、警告文の追加に関しては、エラー文で終わらないように、エラーの出 る状況をできるだけ洗い出すことが難しかったです。 3
「Detach Poly Move」 対応したこと ⚫ 命名の変更 ⚫ 警告文の追加 学んだこと ⚫ このツール専用のoptionVarの用意 工夫したこと ⚫ UIを少し変更 (上がBooth用、下が元のツール) 苦戦したこと ⚫ 警告文の追加 4 次に対応させて頂いたのが、「Detach Poly Move」になります。 こちらはフェースの分離と移動を同時に行うことができるツールになります。 こちらでは少し工夫をして、UIに少し手を加えました。 元ツールでは「フェースの分離+頂点の法線方向へ移動」の所に「チェック が入っている場合」と「入っていない場合」で、 文面が変わるような処理をしていたのですが、プルダウン式の方が分かりや すいのではないかと思ったため変更しました。 また、前回とは違うUIもあったため、optionVarの対応と警告文の追加対応に 苦戦しました。 4
「Auto Same Name Renamer」 対応したこと ⚫ 命名の変更 ⚫ 警告文の追加 ⚫ UIの作成 学んだこと ⚫ Python ⚫ 命名の判定処理 工夫したこと ⚫ UIがそもそもないツールだったが、「昇順」「降順」で選べるようにボタンを追加 5 3つ目に対応させて頂いたのが、「Auto Same Name Renamer」になります。 こちらは同名オブジェクトを自動でリネームするツールになります。 今まではmelでの作成でしたが、こちらのツールからPythonで対応しました。 同名オブジェクトを判定する処理があるのですが、初めて見た時は正規表現 がただの謎の記号にしか見えませんでしたが、 要素を一つ一つかみ砕いて調べたり、教えていただき、正規表現の使い方の 一つとしてとても勉強になりました。 元はそもそもUIが無いツールでしたが、自動でリネームを行うので選択肢を 持たせるため「昇順」「降順」を選べるようにUIを作成しました。 5
「Set Joint Label」 対応したこと ⚫ 命名の変更 ⚫ 警告文の追加 学んだこと ⚫ 左右判定の処理の仕方 ⚫ Qt Designerを使用した作業の流れ 6 4つ目に対応させて頂いたのが、5/17に頒布開始しました。「Set Joint Label」になります。 こちらはジョイントラベルの命名や表示非表示を行うツールになります。 このツールの見どころが、「左右にジョイントがあった場合の命名処理」で、 左右判定が幅広く対応できるようになっており、自分にはまだない発想の処 理だったのでとても勉強になりました。 また、このツールからQt Designerを初めて使用し、QtでUIを作成した際の ファイル構造等を学ぶことができました。 6
まとめ 自走できるまでに必要だった知識/特に参考にしたCOYOTEブログ記事 苦戦したこと/楽しかったこと 7 最後に ・自走できるまでに必要だった知識 ・特に参考にしたCOYOTEブログ記事 ・苦戦したこと ・楽しかったこと をまとめて紹介させて頂きます。 7
自走できるまでに必要だった知識 Mayaコマンドの調べ方 ⚫ Mayaコマンドリファレンス ⚫ ls -sl ⚫ Undo ⚫ すべてのコマンドをエコー ⚫ Google先生 言語の基礎 ⚫ if文/for文/print ⚫ 変数/リスト/関数 元ソースの検索の仕方(エディタの使い方) ⚫ グレップ検索(Ctrl + G) ⚫ 検索(Ctrl + F) 8 自走できるまでに必要だった知識としまして、簡潔にまとめるとこちらの3点 になります。 ・Mayaコマンドの調べ方 ・言語の基礎 ・元ソースの検索の仕方 この3つを知った時に、ある程度自分で調べて解決ができるようになりました。 Mayaコマンドの調べ方については、(「Mayaコマンドリファレンス」「ls sl」「Undo」「すべてのコマンドをエコー」「Google先生」)この5つの手 段を駆使しました。 また、後で紹介しますが、COYOTEブログにてまとめている記事もとても参 考になりました。 言語の基礎について、こちらは「mel」と「Python」で共通なのですが、 「if文/for文/print」「変数/リスト/関数」を知った時に、コードの全体 像が分かりやすくなり、見え方が特に変わりました。 8
ツールの元ソースの検索の仕方に関して、 こちらは主にエディタの使い方になるのですが、特に「グレップ検索」を 知ってからフォルダ間をまたいでいる処理も探しやすくなりました。 主に「プログラミングの全体構造」や「検索の方法」を知った時に目の前の 景色が変わったような印象を受けました。 8
特に参考にしたCOYOTEブログ記事 Melのlsコマンドの可能性 ⚫ Mayaツール開発入門!コマンド調査テクニック ⚫ https://3d.crdg.jp/tech/archives/3016 Melのglobal変数とoptionVarでメニューの値を保存 ⚫ https://3d.crdg.jp/tech/archives/384 https://3d.crdg.jp/tech/archives/378 超初心者向け、MelからPythonへのコマンド変更方法 ⚫ https://3d.crdg.jp/tech/archives/1938 9 自走にあたって、特に参考にしたCOYOTEブログ記事を4つ、軽く紹介させて 頂きます。 【Melのlsコマンドの可能性】 こちらは、lsコマンドの基本的な使い方についてまとめられています。 【Mayaツール開発入門!コマンド調査テクニック】 こちらは、分からないコマンドがあった時の調べ方についていろんな方法が まとめられています。 【Melのglobal変数とoptionVarでメニューの値を保存】 こちらは、自分がとても苦戦した、optionVarの使い方についてまとめられて います。 【超初心者向け、MelからPythonへのコマンド変更方法】 こちらは、使用言語が「Mel」から「Python」へ移行した際に、何度もこち らの記事を確認しました。 9
苦戦したこと 必要な処理の検索 最初、プログラムの構文とコマンドの意味等を知らず、 関数が複数個に分かれていた時に、必要な処理を探し出したこと optionVarの用意 切り出す際に、元ソースのoptionVarの処理が複雑だったため、 optionVarの部分を用意したこと 警告文の追加 出来るだけエラー表示で終わらせないように、 エラーが出そうな条件を洗い出したこと 10 次に、苦戦したことについて、主に苦戦した3つについて紹介させて頂きま す。 【必要な処理の検索】 最初の頃は「特に」ですが、プログラムの構文やコマンドに不慣れな時 関数が分かれている場合に、処理のつながりを探すことが難しかったです。 【optionVarの用意】 UIとoptionVarを結びつけるところが、変数の型ごとにコマンドが少し違って いたため、思ったような処理に中々できず苦戦しました。 【警告文の追加】 やさしさ機能として、できるだけエラー表示で終わらせないよう、デザイ ナーに分かりやすい警告文を心掛けて追加しました。 しかし、エラーが出る条件を洗い出したと思い、テストしたときに新たなエ ラーを見つけてしまったりして、 まだ甘かった…ということが多々あり、苦戦しました。 10
楽しかったこと 自分で解決できた時 今まで学んだ事や調べた事を頼りに、質問する前に解決できたこと 工夫箇所を見つけ、反映ができた時 自分で「こうした方が分かりやすいのでは?」と思いつき、反映できたこと アハ体験の様に、だんだんコードへの見え方が変わった時 プログラムの構造を知る前はただの長文にしか見えなかったが 関数や処理ごとにブロックに見えるようになった 11 さいごに、Booth対応に携わってみて、楽しかったことを3つあげて話をしめ たいと思います。 ・まず一つ目が、 今まで学んだことや調べたことを頼りに、質問をする前に色々試してみて、 自分で解決できた時 ・2つ目が、 自分で「こうした方が分かりやすいのでは?」と工夫箇所を見つけ、反映が できた時 ・3つ目が、 プログラムの構造を知る前はただの長文にしか見えなかったのが、アハ体験 の様に、だんだん関数や処理ごとにブロックに見えるようになったり、コー ドへの見え方が変わった時 になります。 TA業務の根幹にもなるかと思いますが、「解決」「工夫」「成長」を自覚で 11
きる場面があり、苦戦した部分もありましたが、すごく楽しいと感じました。 11
ご清聴ありがとうございました 12 以上で「BOOTH対応の新人の取り組み」についての紹介を終わります。 ご清聴ありがとうございました。 12