2020年12月24日木曜日

回転の拘束を使う場合の注意点

  マントやスカートのリグを組んでいたりするとき、重力みたいなものを手軽に表現するために、回転の拘束にスキップフラグを付けて適用する。みたいな方法を使う場合があります。
  ただ、軽くテストしているときはには気にならないのですが、豪快にアニメーションをさせるようになってくると、フリップしてしまうような場面に出くわすことがあるのです。

  そんな時に確認するポイントをいくつか。

2020年12月17日木曜日

fileコマンドでuiConfigurationScriptNodeを回避する

  uiConfigurationScriptNode を作らせなくするためには、Preferences の UI Elements から、Panel Configurations の項目を編集しなければいけません。※参照

  このノードを作成させなくするために、スクリプトで対処しようとしてグローバル変数なんかをいじったりもしていましたが、もっと簡単に回避する方法があったようです。


2020年11月30日月曜日

constraintノードのweight

  各種コンストレインを適用したとき、コンストレイントノードには W0みたいなアトリビュートがあることに気が付きます。コンストレイントの影響度を設定するアトリビュートですが、なんだか挙動が思っていたようなものと違う印象を持ちます。


2020年11月26日木曜日

parentConstraintの特徴

  Translate を拘束する pointConstraint、Rotate を拘束する orientConstraint。
  そして、Translate と Rotate を拘束する parentConstraint。

  移動と回転の両方を拘束するからと parentConstraintで拘束している人も多かったりするのかなと思ったりします。1回のコマンドで移動も回転も拘束できるので、なんか、お得な感じですが、違いを理解して使用しないと罠に嵌まってしまう事にもなりかねません。

2020年11月19日木曜日

jointOrientの値を計測する

  jointOrient は、Orient Joint ツールで設定できるとはいえ、全てのジョイントがワールド軸に沿って配置されているわけではありません。
  そんな場合、orientJoint の値を決めるのは、なかなか面倒な作業になります。

  MELで計算するのは大変なので、代替案的な値の取得方法なんかを紹介しようと思います。

2020年11月12日木曜日

何かを接続するためのジョイント

  キャラクター、特にロボット系の場合、バインドするジョイントの階層構造を作成するとき、プロップや装備品かなにかをアタッチする為のジョイントを追加する場合があります。
  そういったジョイントはウェイト値をゼロにするので、バインド対象に含めないことにする場合があるようです。

  

2020年11月9日月曜日

Go to Bind Pose

  リグの組み方は色々あると思うんですが、どういった作り方をしていたとしても、基本的にはリグコントローラからバインドしているジョイントへは、コンストレイントを使ってアニメーションを転送するというのが簡単で広く知れ渡っているという感じでしょうか。

  ただ、scaleConstraint だけは上手くスケールを拘束できないようで、worldMatrix から decomposeMatrixを使ってアトリビュートを接続することがあったりします。


2020年11月2日月曜日

pickWalk 使ってますか?

 pickWalk と聞いてピンと来ない人も居るかもしれませんが、mayaのDAG階層は「矢印キー」で選択を変更することができるようになっています。

 プレビューウィンドウだけで作業が完結するようなモデラーさんには馴染みはないかもしれませんが、アウトライナを使うような古いアニメーターさんなんかは知っている人が居るかもしれません。

2020年10月29日木曜日

Orient Joint について

 勤め先では、伝統的に、モーションファイルをBVHフォーマットで取り回していたため、ジョイントを回転させる文化が無かったりします。
 ジョイントは、配置するだけで良いので、誰でも作業できるというメリットもありますが、関節の構造や動かし方なんかを理解していないと問題のある骨格が出来上がってきたりはします・・・。

 けれども、ことリグを作る場合には知っておいた方が良い、もしくは必須の知識だと思います。

2020年10月15日木曜日

アトリビュートエディタの有効桁数が

 ゲームエンジンとかで、ジョイントのスケールをゼロにすると条件によってはエラーになる場合があります。

 子階層の無いジョイントは、まぁ、大丈夫そうなんですが、子階層があると行列計算が爆発するのでエラーになるんだったような気がします。

 ゲームエンジンによって癖が違うようなので、そうならないようにリグのほうでアトリビュートにリミットを掛けたりするのですが・・・。

2020年10月8日木曜日

mayaLTで不便に思うところ

 廉価な mayaとして LTが存在しているわけなのですが、本格的に使おうとすると、機能が対応していなかったりしている事があります。
 そんな、やりたい事というのはMELスクリプトを使ったリギングだったりするんですが、最近、プラグインはあるのに、使えない?ノードが存在していることに気が付きました。

2020年9月28日月曜日

gameFbxExporterを改造する

FBXファイルの出力に便利な Game  Exporter ですが、当然、FBXExport コマンドを使用しています。 Model Export なら問題ありませんが、Animation Clips を出力するとなると問題が出てきます。こちらを参照

タイムレンジを設定できたり、複数クリップを1ファイルに保存するとか、自前で用意するのは中々大変なので有効活用したいところです。


なにより、シーンファイルに FBXの出力設定を保存できるのでヒューマンエラーが格段に減らせられるのは魅力的です。

2020年9月24日木曜日

FBX形式でモーションを出力する

 以前投稿したのですが、文章だけではイマイチ想像しづらかったので軽く図を作成してみました。


2020年9月14日月曜日

FBXを出力するスクリプトを作る前に

3Dの素材をゲームエンジンへ持ってゆくために使用される標準ファイル形式としてFBXがあります。 
ただ、FBXのエクスポートには設定項目がたくさんあるので、それぞれの項目を理解し、適切にチェックを入れて出力するのは中々難しいのではないかと思います。
さらにエクスポートのオプションでは、チェックボックスがグレーアウトしていても、実はフラグが生きているみたいな項目があったりするので厄介な事になります。 とくに多人数で作業している場合は・・・。
このSkins と Blend Shapes は編集できないのでフラグは無効だろうと思っていると、実は生きている。みたいな。

そんな感じで、FBXの出力をスクリプトを使って設定したくなります。

2020年9月10日木曜日

バインドされたモデルで確認したい事

モデリングにスカルプトツールを使うことが当たり前になり、更に物理ベースレンダリングが流行りだしてからは、プロシージャルテクスチャツールなんかも使わないといけなくなったりしてと、いろいろなツールをまたいでモデラーさんは大変だなぁと思う昨今、チェックとかの確認事項も多くなった気がします。

2020年9月7日月曜日

ジョイントの表示形式

アニメーションさせるようなキャラクタでは、バインドさせるためにジョイント階層を作ると思います。素体のようなマッパなら良いのですが、衣装着たりすると、骨の数が多くなってゆき作業中のビューがジョイントだらけになってしまいます。

そんな場合の回避策です。

2020年8月20日木曜日

MELでキャピタライズをしてみる

プログラミングには、いろいろ命名規則があり、さらに、それぞれの命名規則には名称が付いているようです。

MELの命名規則としては、先頭が小文字で、あとに続く単語の先頭は大文字にするというのが推奨されています。

2020年7月30日木曜日

source コマンドを実行するときの注意点

mayaを起動すると、スクリプトパスに存在している適切な.melファイルは自動的にコンパイルされ、コマンドとして実行できるようになります。

自作のMELを認識させるには、この他に、MELスクリプトを強制的にコンパイルさせる source コマンドというものもあります。

むかし簡単な概要などを書きましたが、コマンドを使うときに注意しないといけない事があったので、補足みたいなことを少々。

2020年7月27日月曜日

ダイアログ作成のサンプルコード

スクリプトを実行した状態から、ユーザーの判断を仰ぐような場合に使用する confirmDialog コマンドというのがあります。

2020年7月13日月曜日

formLayoutのTips

自作のツールを作るとき、ウィンドウへUIを載せるために、まず、レイアウトを作成しないといけません。
単純なものなら rowLayout columnLayout、これらをくっつけたrowColumnLayout

で、UIを正確に配置したいとなったときに使うのが formLayoutです。

2020年7月9日木曜日

windowの状態をリセットする。

mayaでは、ウィンドウを閉じるとき、windowsであれば、ドキュメント内のmayaVersion\prefs にあるwindowPrefs.melに左上隅の座標とウィンドウの縦横サイズを保存しています。
そんな、ウィンドウの位置をMELでリセットする方法。

2020年7月6日月曜日

自作ツールをドッキングさせる。その4

最後に scriptedPanel について。
このコマンド自体はドッキングと関係ないのですが、いろいろ調べている時に目についたので、ついでに紹介してみようと思います。

2020年6月29日月曜日

自作ツールをドッキングさせる。その3

workspaceControl コマンドを使って、ドッキングできるGUIを作成すると、メインウィンドウのどこにでもくっ付いてしまいます。
また、フローティングウィンドウにくっつけると、タブ化され、ウィンドウタイトルが無くなってしまうのも嫌な感じです。
やっぱ、自分のツールは自分の作ったウィンドウだけに収めたい感じです。

2020年6月25日木曜日

自作ツールをドッキングさせる。その2

maya のパネル配置に workspace の機能が追加された頃から、メインウィンドウとドッキングさせるためのコマンドが大幅に変更されたようです。
toolBarコマンドは使い物にならなくなり、ドッキングさせるためのコマンド workspaceControlscriptedPanelというコマンドが新たに追加されました。

2020年6月22日月曜日

自作ツールをドッキングさせる。その1

それは禁じられた合体

昔は formLayoutなんかを使って、直接 mayaと合体させていましたが、GUIにQt が採用された maya2011 頃、自作のGUIをmayaのメインウィンドウへドッキングさせるコマンドが追加されました。
あれから10年、このときに追加されたコマンドの存在意義が無くなってしまったようです。

2020年6月15日月曜日

youtube強化月間

5月中旬からyoutubeの動画を増やすために、Premiere Proの使用頻度が上がりました。
Premiere だけでなくPhotoshopもなんですが、Adobeのキーボードショートカットがqwertyではないのが厄介に感じます。

2020年5月14日木曜日

リグに作っておくべきレイヤーを考察

リグを作成するとき、表示状態を切り替えやすくするために、オブジェクトをレイヤーへまとめたりします。
普段、自分は、メッシュ用レイヤー、ジョイント用レイヤーの2つを作っていました。
[V]ボタンの On/ Off だけで、表示状態を切り替えられ便利です。

2020年5月11日月曜日

2020年4月13日月曜日

NodeEditorとHyperShadeが使用できない!?

リーマンはMPが減っただけだけど、ウーハンはHPを削るから厄介。

そんなこんなで、maya2020をインストールしたときに気が付いたのですが、なぜか、Node Editorを起動するとエラーが出る。
HyperShadeに至っては使えない状態となっていました。
なぜ、そんな状態なってしまったのか!?

2020年4月6日月曜日

BNSリグを触ってみる

年度も変わるかという頃、3D系の情報サイトでバンダイナムコが鉄拳シリーズなどで使っていたというリグを配布していると云うニュースを見つけました。
鉄拳、ソウルキャリバーとか、よく遊んでいましたし、どんな風になっているのか興味があったので、ダウンロードしてみることにしました。

先人の知恵を拝見です。

2020年3月26日木曜日

引数の書き方を変えてみた

巷では武漢肺炎や二階ショックで大変なようですが、活動時間は変わらないのに時間帯が変わるだけでヤル気スイッチが消えていくのは何でなんだろう。
最近、曜日の感覚が曖昧になってきたり、お迎えの準備をしたり、お見送りをしたり、年度末だったり、近年まれに見る忙しさ。

そんな中、MELをタイピングしていた際、こっちの方が効率が良いんじゃないかと思い至った事がありました。


2020年3月16日月曜日

リグを組む基本の事

mayaでリグを組む場合、モデルファイルはリファレンスエディタを使って参照することが多いです。
そして、そのリグファイルをアニメーション用のファイルへ更に参照していくことで、数百本のジョイントでバインドされたメガポリゴンの大きなデータをアニメーションの数だけ無駄に複製していく事なく、ディスク容量を節約できるという按配。



2020年3月9日月曜日

エディットポイントを繋げたように見せるツール

リグのコントローラを作るとき、カーブオブジェクトだけでコントローラを作っておけば、ビューパネルの Show メニューから簡単に表示の切り替えを行えます。
ただ、立体的なカーブオブジェクトを作るとなると、一筆書きの要領で作る必要があり、なかなか大変です。

そんなときに役立つツールを作ってみました。


trySewCurveEP.mel


2020年2月27日木曜日

MELで、ある直線に対称の座標を計算する

「yz平面に反転する」みたいな、ワールド軸に沿ったミラーリングの場合は、単純にxのプラスマイナスを反対にする。みたいな感じなので簡単です。
しかし、任意の直線に対して反転させたい場合、それはなかなか厄介なのです。


この赤いロケータを、緑の線を基準に、青いロケータと対称な位置へ移動させたい。
みたいなシチュエーションです。


2020年2月17日月曜日

カーブオブジェクトを作成するツールを作ってみた

カーブオブジェクトを作成するツールを作ろうと思っていたんですが、かなり時間が掛かってしまった感じ。
実行部分はかなり昔に出来上がっていたりはしたんですが、一番厄介なGUI作成に時間がかかりました。
このブログを書き始めた頃なので構想5年くらい?

2020年2月13日木曜日

mayaの起動時にこっそり実行しておきたいスクリプト

リギングのためにモデルファイルを開いたりすると、かなりの確率で設定が初期値のままだったりします。
モデラーなんて五万と居るのでピンキリですが、なんなんでしょう・・・。仕様書作っても、勝手にアウトソーシングされてしまい無視されて納品されますし。


2020年2月10日月曜日

2020年2月3日月曜日

良く使う doxygen コマンド(for MEL)

前回は、Doxywizard の設定を行ったので、今回は.melファイル内に記述する 良く使う doxygenコマンドの紹介です。

2020年1月30日木曜日

Doxygenの設定方法(for MEL)を改めて

2017年1月くらいから、Doxygenの使い方なんかをいろいろ紹介してきましたが、使ったこともない段階で、訳も分からず設定していた感じは否めません。
色々書いているうちに、MELに書くべき doxygenコマンドもだいたい固まってきた印象。そんなこんなでMELで使うことを前提にして改めてまとめてみたいと思います。

2020年1月27日月曜日

メインメニューに自作のメニューを追加する

MELを大量に作成していくと、スクリプトをメニューから実行したくなってきます。
まぁ、シェルフとかに登録もできますけど、バージョンが変わったり、言語設定を変えたりと、数種類の maya を起動する場合、シェルフでは小回りが利きません。

ということで、メインメニューへ自作ツール用のメニューを追加してみようと思います。

2020年1月20日月曜日

スクリプトを作り始める前に

MELでスクリプトを作り始めるときには、似た動作のスクリプトが既に存在していないか、とか、グローバル変数を調べてみるとか、なにかと調べたくなる事があると思います。
そんなときに、よく使っているコマンドを紹介したいと思います。

2020年1月16日木曜日

説明書を作る

リグとかピッカーとかツールなんかを作ると、使い方の説明書のようなものも作っとかないと、操作方法とか忘れてしまったりして支障がでます。
いつの頃からか、そういった説明書を作るのに Excel を使っていたりするんですよねぇ。
やっぱ文書作成には Word でしょう!

という事で、たまに使うと忘れてしまうので、覚書。

2020年1月9日木曜日

office製品のTips

説明書なんかを作るとなると、GUIとかをスクリーンショットしてドキュメントに挿し込んだりすると思いますが、特にデザイナーは気を付けないとイケけない事があります。



2020年1月6日月曜日

scriptsフォルダ内の構造

MEL で色々と機能を追加していくと、スクリプトフォルダ内がファイルで一杯になって来てしまいます。
プロジェクト間で環境を移行する場合、どれを使用していて、なにが不要なのかも分からなくなり、.melファイルを一個一個確認しないといけなくなったりする羽目に・・・。
そんな場合の Tips 。