2019年12月23日月曜日

OutlinerのちょっとしたTips

クリスマス前だし年末なので、軽めに、Outliner のちょっとした Tips を。
知っている人は知っているけど、意外と知らない人もいるのではないでしょうか?

2019年12月19日木曜日

GoogleのサービスでOCR(文字認識)をしてみる

たまにしか使わなくて手順を微妙に忘れてしまうので、メモ。
Googleドキュメントを使って、OCR(文字認識)をさせてみます。

2019年12月16日月曜日

poleVectorの座標を正規化する

前回、ikHandle から poleVectorの座標を計算するプロシージャを作成しましたが、アニメーションを作成しているときに実行すると、あまり好ましい座標にならないため、アニメーション作成時には、また違った計算をしないといけません。
個人的に、この計算によって出た座標へ poleVector を移動させることを「normalize(正規化)」って言っています。
正しいのかは知りませんが。

2019年12月12日木曜日

MayaLT2020をインストール

つい先週、いつリリースするんだと言ったソバから何の前触れもなく maya2020 が公開されました。
夜中に youtube から通知が来ていたので、なんだろうと観てみたら maya2020 の機能紹介動画。

朝起きると、さっそく Autodesk デスクトップアプリからインストール可能になっていたので、ダウンロード。
 寝ずっちです。

2019年12月9日月曜日

poleVectorの座標を計算する

骨にIK(ikRPsolver)を設定すると、ikHandle にある PoleVector のアトリビュートが有効になり、IKハンドルを選択すると、ジョイントに輪っかと白い矢印が表示されます。
この、poleVector の方向は、ジョイントが3個以上のスケルトンでは、プリファードアングルとかで制御できるのですが、上のように2個のジョイントからなる骨では、向きを制御することが不可能のようです。

2019年12月5日木曜日

次のmayaはどうなる?

2019年もあと1ヶ月を切りました。2020年はのっけからビッグイベントの連続ですね。

2019年12月2日月曜日

mayaでシーンファイルを開く

 mayaでシーンファイルを開くには、いくつか方法があると思いますが、それら開き方によって mayaが行う処理は異なっているので、不具合確認の時には、シーンファイルを開くところから手順を見せてもらわないと、対処するのに余計な手間を取られてしまいます。

2019年11月25日月曜日

mayaでコピー&ペースト

OSでもDCCツールでも、ショートカットとしてよく使う操作に、コピー アンド ペースト [Ctrl]+[C] -> [Ctrl]+[V] というのが有ると思うんですが、maya の場合、バックグラウンドでちょっと思っているのとは違うことを行っているので、注意が必要です。

2019年11月18日月曜日

優先回転角のTips

腕や足のIKを設定するとき、骨格は、曲がる方向へ少し曲がっていた方が素直にIKが設定できます。
しかし、ジョイントの並びが一直線になっていると、IKソルバがどちらに曲げてよいのか分からなくなってしまうため、プリファードアングル(優先回転角)を設定して曲がる方向を指定するわけです。


2019年11月11日月曜日

エッジをスピンさせる

メカもののモデルデータとかでは、似たような部品のポリゴンメッシュを流用するとか良く行うみたいです。ハードサーフェイスモデリングって云うやつですか?
まぁ、CADとかでアセットみたいにして流用するんではなく、昔作ったモデルデータから抜き出して持ってくるとかでも良いんですが。

で、こういった部品モノのモデリングは、けっこうMAXとかLightWaveのほうが作り易いので、FBXを経由してmayaへ持ってくる事になったりするわけです。

2019年11月7日木曜日

ジョブを作成しなくても良かったのか

つい最近、ウィンドウを閉じたときの状態をプリファレンスに保存するとかで、ウィンドウを scriptJob で監視していましたが window コマンドのヘルプをよく読んでみると
-closeCommand(-cc) なるフラグが存在していることに気が付きました。

ウィンドウが閉じられたときにスクリプトを実行してくれるらしい。

2019年10月21日月曜日

カーブのエディットポイントをmoveコマンドで移動させる

リグを作っていると、コントローラ用のカーブオブジェクトを変形させるためにエディットポイントを移動させる事があります。
ただ、MELだけで移動させようとすると変なエラーが出て止まってしまうことがあるのです。

2019年10月7日月曜日

MELでファイルの内容を読み込んでみる

fwriteAll~と一緒にファイルを読み込むための freadAllLines と freadAllText というコマンドが追加されました。

maya でも mayaLT でも使用できるので、fwriteAll~と併せて fgetline や fgetword から切り替えていきたいコマンドです。

2019年9月30日月曜日

MELでファイル出力をしてみる

その昔、Maya Personal Learning Edition(略してPLE)というフリー版が存在していて色々お世話になっていました。無償の機能限定版とあって、ファイル入出力コマンドが使えないという制限があり中々キビシかったですが・・・。

そんな歴史もありつつ mayaLTは有償ということもあり制限が緩和され、PLEでは不可能だったファイル入出力が出来るようになりました。
けれども、fwriteAll~とfreadAll~というコマンドの新設と、なかなかアクロバティックな対応。
そんなファイル入出力コマンドをチェックしてみたいと思います。

2019年8月26日月曜日

最強リガーになる方法

まず大切なのは
このハードなトレーニングメニューを
続けられるかどうかだ


2019年8月5日月曜日

mayaの起動後にスクリプトを自動で実行させる

mayaの起動時にMELコマンドを実行する方法が幾つかあります。
コマンドラインから maya.exe の起動オプションに -script [file] や -command [MEL command] を付加して起動させる方法。
そして、scriptsフォルダ内に userSetup.mel というファイルを作成するという方法です。

2019年7月29日月曜日

自作ツールでGUIの状態をプリファレンスへ保存する※応用

前回は、[Close]ボタンで optionVar を実行するプロシージャを実行すようにしていましたが、ウィンドウを閉じる [X] ではプリファレンスに保存できていない状態となっていました。これをなんとかして回避したい!

今回はサンプルとして、こんなウィンドウを作ります。

プロシージャに飛ばすための[Close]ボタンを無くしました。
さらに checkBox では分かりにくいので intSlider で値の変化がしっかり保存されているかを確認し易くします。

2019年7月22日月曜日

自作ツールでGUIの状態をプリファレンスへ保存する※基本

自作のツールを作ると、checkBoxや~Fieldの値を次回起動時に復帰させたくなることがあります。
例として、こんなウィンドウを作ってみます。


この Flag の checkBox のオン・オフ状態を記憶させます。
そこで必要なコマンドが optionVar です。
このコマンドが mayaのプリファレンスファイルへ記録や読み出しを実行します。

2019年7月8日月曜日

uiTemplateを使ってみる

uiResを使用していると、ラベル用文字列を取得するためだけに結構な長さの文字数を使用することになります。
ラベルを設定できるコントローラ、特にスライダー系などでは大量のフラグが有るものばかりなので、同じコントローラを複数配置した場合、レイアウトの微調整をするときのカーソル移動とかが、かなり面倒になってしまいます。
例えば、こんなウィンドウの場合

2019年7月1日月曜日

パスの通っていない.res.melを読み込む

テストでスクリプトを組む時や、必要なスクリプトをフォルダーにまとめて配布する場合では MAYA_SCRIPT_PATH にスクリプトパスが登録されていない事があります。
そんな状況では .res.melが読み込まれていないことになってしまうので、メインのMELを source しても uiRes コマンドの部分でエラー停止してしまいます。
.res.melも source するようにすれば良いのですが、カタギさんには酷なはなしでしょう。
そんなシチュエーションを回避するためにも、メインスクリプト内に.res.melを読み込むコードを入れておくと良いかもしれません。

この記事のスクリプトのパスを調べるスクリプトを参考に、サンプルコードを書いてみます。

2019年6月24日月曜日

MELの多言語対応

ツールのGUIでラベルへの文字を付ける場合なんかは、ふつうアルファベットか日本語かの二者択一になってしまいます。
そんなラベルの文字を各言語へスムーズに切り替えられるようにするため uiRes というコマンドが MELにあります。

このコマンドを使うためには、.res.mel というラベル用の文字列を設定するコマンドが書かれたファイルを用意する必要があります。そのファイルの中で使用するコマンドが displayString で、uiResコマンドの引数と displayString の文字列識別子を同じにします。

まずは英語での作成から開始するとして、フォルダにはこんな感じで.melファイルを用意します。


uiResTest.mel には手っ取り早くメインメニューへメニューを追加するスクリプトを書いてみます。

2019年6月17日月曜日

いよいよWindowsもUTF8の時代に

Windows10 May 2019 updateに不具合12件とか、なんかのサイトで見て、どんなアップデートがあったのかなぁと色々調べていたら、2018年の年末くらいから Windows10 でも UTF8 が設定できるようになったと知りました。

まだ初期設定では使えないようなので切り替え方を。

2019年6月10日月曜日

デバッグで配列を表示する

スクリプトを組んでいたりすると、デバッグとかで配列に何が入っているかというのを調べる場面がよくあります。
python には enumerate というのがビルトインで存在しているのですが、MELにそんな便利なスクリプトは無いので自作するしかありません。
しかも引数の型が合っていないとエラーになるので、同じのを int, float, stringと3つ作らないといけない。
string用だけは作っていて、それで何とかしていましたが、たまに他の型のも欲しい場面があります。

いい機会なので3つの型に対応したスクリプトを作成してみました。

2019年6月3日月曜日

2019年5月27日月曜日

mayaLTでもPythonでできることはPythonで

mayaLT の python コマンドでは、どこまでできるのか?
とりあえず maya.OpenMaya はインポートできました。
さすがに pymel は使えませんでしたが、サポート対象外だからでしょうね。

C:\Program Files\Autodesk\MayaLT2019\Python\Lib\site-packages の中身を調べれば何となく使えるものが分かるかもです。
まぁ、デバッグが大変そうなので mayaLT でそんな深いとこまで触ることは無いと思いますが。


2019年5月20日月曜日

mayaLTでPythonを実行する

mayaLT では Python スクリプトが使えない事になっています。
が、MEL には Python を実行するためのコマンドが存在していたりするのです。

その名も pythoncallPython

mayaLT の MELコマンドドキュメントには記載されていませんが、python コマンドの方は問題なく使えるようです。
まぁ callPython は値を返さないコマンドらしいので使えなくても問題ないですけどね。

2019年5月13日月曜日

Pythonで配列番号付きのリストを表示させる

デバッグでは配列に何が入っているのかを表示させるスクリプトを書くことが多いです。
それをPythonで書いてみようと思って調べていると、なかなか衝撃的なことが出てきました。
Pythonでは ++ や -- みたいなインクリメント・デクリメント演算子が使えないようです。
まぁ、前置・後置とかを考えなくて済むから楽といえば楽なのですが、なかなか衝撃的です。
i += 1 とか i -= 1 は使えるみたいなのでこちらで考えるように思考をかえないといけませんね。

2019年4月8日月曜日

MayaのスクリプトエディタでPythonを実行する

PythonスクリプトをMELのようにスクリプトエディタで実行してみるテスト。
サンプルの.melファイルと.pyファイルはこんな感じのこんにちは表示。

2019年4月1日月曜日

nodeGraphEditorInfoノードを削除するスクリプト

nodeGraphEditorInfoの投稿は、けっこうコンスタントに閲覧されているみたいです。
興味のある人が多いわりにネット上に情報が無いのでしょうかね。
需要もありそうなのでスクリプトを作成してみました。
メリイさんに「いまごろ?」と、つっこまれそうですけど・・・。

tryDeleteNode.mel

tryDeleteNode("nodeGraphEditorInfo");
と、ノードタイプを引数にして実行すると、シーン内の指定したタイプのノード全てでソース側の接続を解除してから削除します。
"imagePlane"とか"cameraView"とかゴミみたいなノードも簡単に削除できるかな?

2019年3月25日月曜日

改行コードについて考える

改行コードの CR とか LF とか気になったので改めて調べてみました。

まずは略語の正式名称とか。
CR:carriage return(復帰)
LF:line feed(改行)

各OSでは、
windows:CR+LF
旧Mac OS(9以前):CR
UNIX系(MacOSX以降):LF
を使用しているようです。

2019年3月18日月曜日

FBXファイルで思う事

Unity や unreal みたいなゲームエンジンは、読み込むためにFBXというファイル形式を使っていたりします。
Autodeskがサポートしているとあって、グラフィック系の3Dソフトなら入出力のできるものがたくさんあります。

業界歴の浅めなアーティストやマネージャは、けっこうFBX信奉者が多い気がします。
専門学校とかでゲームエンジンの実習とかしているからでしょうかね?
悪気もなくFBX使えばいいじゃないですかぁ~みたいな?

まぁデータのやり取りだけなら誰でも出来ますが、正しく出力するためには相応な知識が必要になってくるわけです。
mayaで出力するときでも下の項目の適切な部分にチェックを入れないといけないわけです。


2019年3月11日月曜日

FBXエクスポータ

自分がLTをサブスクリプションした頃なので2015くらいからだと思いますが、ゲームエンジン用のFBXを出力するツールが付いてくるようになったのです。
けれど意外と知らない人が多い印象。

メインのファイルメニューにそれっぽい名称で出てきます。


出ていない場合は、プラグインマネージャでロードが必要。


すぐ下の GamePipeline.mll は、Send To Unity と Send To Unreal のメニューのやつですね。
以前は Stingray も在った気がしましたが、お亡くなりになったので消えたようです。

2019年3月4日月曜日

テクスチャがメインになるマテリアル設定

マテリアルはゲームエンジン側で設定するのでほとんどスルーする部分ですが、けっこう雑に設定しているファイルを見かける部分でもあります。

モーション作ったりするときは、テクスチャがメインで、余分なシェーディングの掛かっていない設定が好きです。PS2時代のFFみたいな。
ただしテクスチャの描き込みがしっかりしてあることが前提ですが・・・。


2019年2月25日月曜日

複数のノードに接続できるアトリビュート

ChannelBoxでは選択中のノードに接続しているノードを表示してくれる機能があるのですが、ちょっと変な状態になっているのを見かける事があります。

複数のオブジェクトをジョイントにバインドしてみると簡単に再現することが出来ます。

こんな感じのシーンを作成してオブジェクト全部をバインド


2019年2月18日月曜日

4Kモニターを買ってみた

PC買い換えのついでに、モニターを27インチの4Kにしてみました。

なんか Windows10 はディスプレイ設定の表示スケール150%を推奨しています。



でも、この状態で maya を起動すると、こんな感じになります。
※メインウィンドウのサイズは1920x1080

アイコン類が大きくなり解像度の割りに作業領域が狭くなっています。

2019年2月12日火曜日

使えそうで使えない substituteAllString のTips

ノード名とかに付いている数字を全部消したいなぁと思い、文字列の中から特定の文字を指定の文字へ置き換えるコマンド substituteAllString を使ってサンプルコードを書いてみたのですが、うまくいきませんでした。

書いてみたコードはこんな感じ

string $newName=substituteAllString($name,"[0-9]","");

なんか、正規表現は使用できないみたいですね・・・。
substitute では利くのでコッチでも出来るものだとばかり思っていました。

2019年2月4日月曜日

スクリプトファイルのエンコードについて

VS Code で Python なんかも弄るとなると、やっぱテキストファイルのエンコードはUTF-8 だよなぁ。なんかカッコいいし。

などと考えつつ秀丸エディタで MEL ファイルのエンコードを UTF-8 へ変更してみました。


ちなみに Shift_JIS のファイルを UTF-8 に設定した VS Code で開くとこんな感じです。

2バイト文字が化けていますね。


2019年1月28日月曜日

秀丸のキー割り当て、その2

VC Code に似せたタイピングをするために、幾つかマクロを作成してみました。

2019年1月21日月曜日

秀丸のキー割り当て、その1

初期状態ではまかない切れていない、よく行っている操作へショートカットキーを振っていく訳なのですが、純粋な標準機能に割り当てるものは意外と少ない感じです。

2019年1月15日火曜日

秀丸の動作環境のチェック箇所

新しいPCへ秀丸をインストールした場合、初期の動作環境では少々使い勝手が悪いため、個人的に変更している部分を覚書。

2019年1月7日月曜日

秀丸エディタ(ストアアプリ版)を買ってみた

メインで使用しているPCが、買ってからそろそろ5,6年経ち、普段使いでは問題ないけれど、グラフィックカードの古さやOSが windows7 ということで、新しいのに買い換えないとなぁ。
ということで、maya や adobe 製品がソコソコ動作するスペックのものをドスパラのBTOで購入してみました。