クリスマス前だし年末なので、軽めに、Outliner のちょっとした Tips を。
知っている人は知っているけど、意外と知らない人もいるのではないでしょうか?
2019年12月23日月曜日
2019年12月19日木曜日
2019年12月16日月曜日
poleVectorの座標を正規化する
前回、ikHandle から poleVectorの座標を計算するプロシージャを作成しましたが、アニメーションを作成しているときに実行すると、あまり好ましい座標にならないため、アニメーション作成時には、また違った計算をしないといけません。
個人的に、この計算によって出た座標へ poleVector を移動させることを「normalize(正規化)」って言っています。
正しいのかは知りませんが。
個人的に、この計算によって出た座標へ poleVector を移動させることを「normalize(正規化)」って言っています。
正しいのかは知りませんが。
2019年12月12日木曜日
MayaLT2020をインストール
2019年12月9日月曜日
poleVectorの座標を計算する
骨にIK(ikRPsolver)を設定すると、ikHandle にある PoleVector のアトリビュートが有効になり、IKハンドルを選択すると、ジョイントに輪っかと白い矢印が表示されます。
この、poleVector の方向は、ジョイントが3個以上のスケルトンでは、プリファードアングルとかで制御できるのですが、上のように2個のジョイントからなる骨では、向きを制御することが不可能のようです。
2019年12月5日木曜日
2019年12月2日月曜日
mayaでシーンファイルを開く
mayaでシーンファイルを開くには、いくつか方法があると思いますが、それら開き方によって mayaが行う処理は異なっているので、不具合確認の時には、シーンファイルを開くところから手順を見せてもらわないと、対処するのに余計な手間を取られてしまいます。
2019年11月28日木曜日
2019年11月25日月曜日
mayaでコピー&ペースト
OSでもDCCツールでも、ショートカットとしてよく使う操作に、コピー アンド ペースト [Ctrl]+[C] -> [Ctrl]+[V] というのが有ると思うんですが、maya の場合、バックグラウンドでちょっと思っているのとは違うことを行っているので、注意が必要です。
2019年11月18日月曜日
優先回転角のTips
腕や足のIKを設定するとき、骨格は、曲がる方向へ少し曲がっていた方が素直にIKが設定できます。
しかし、ジョイントの並びが一直線になっていると、IKソルバがどちらに曲げてよいのか分からなくなってしまうため、プリファードアングル(優先回転角)を設定して曲がる方向を指定するわけです。
しかし、ジョイントの並びが一直線になっていると、IKソルバがどちらに曲げてよいのか分からなくなってしまうため、プリファードアングル(優先回転角)を設定して曲がる方向を指定するわけです。
2019年11月11日月曜日
エッジをスピンさせる
メカもののモデルデータとかでは、似たような部品のポリゴンメッシュを流用するとか良く行うみたいです。ハードサーフェイスモデリングって云うやつですか?
まぁ、CADとかでアセットみたいにして流用するんではなく、昔作ったモデルデータから抜き出して持ってくるとかでも良いんですが。
で、こういった部品モノのモデリングは、けっこうMAXとかLightWaveのほうが作り易いので、FBXを経由してmayaへ持ってくる事になったりするわけです。
まぁ、CADとかでアセットみたいにして流用するんではなく、昔作ったモデルデータから抜き出して持ってくるとかでも良いんですが。
で、こういった部品モノのモデリングは、けっこうMAXとかLightWaveのほうが作り易いので、FBXを経由してmayaへ持ってくる事になったりするわけです。
2019年11月7日木曜日
ジョブを作成しなくても良かったのか
つい最近、ウィンドウを閉じたときの状態をプリファレンスに保存するとかで、ウィンドウを scriptJob で監視していましたが window コマンドのヘルプをよく読んでみると
-closeCommand(-cc) なるフラグが存在していることに気が付きました。
-closeCommand(-cc) なるフラグが存在していることに気が付きました。
ウィンドウが閉じられたときにスクリプトを実行してくれるらしい。
2019年10月21日月曜日
カーブのエディットポイントをmoveコマンドで移動させる
リグを作っていると、コントローラ用のカーブオブジェクトを変形させるためにエディットポイントを移動させる事があります。
ただ、MELだけで移動させようとすると変なエラーが出て止まってしまうことがあるのです。
ただ、MELだけで移動させようとすると変なエラーが出て止まってしまうことがあるのです。
2019年10月7日月曜日
MELでファイルの内容を読み込んでみる
fwriteAll~と一緒にファイルを読み込むための freadAllLines と freadAllText というコマンドが追加されました。
maya でも mayaLT でも使用できるので、fwriteAll~と併せて fgetline や fgetword から切り替えていきたいコマンドです。
maya でも mayaLT でも使用できるので、fwriteAll~と併せて fgetline や fgetword から切り替えていきたいコマンドです。
2019年9月30日月曜日
MELでファイル出力をしてみる
その昔、Maya Personal Learning Edition(略してPLE)というフリー版が存在していて色々お世話になっていました。無償の機能限定版とあって、ファイル入出力コマンドが使えないという制限があり中々キビシかったですが・・・。
そんな歴史もありつつ mayaLTは有償ということもあり制限が緩和され、PLEでは不可能だったファイル入出力が出来るようになりました。
けれども、fwriteAll~とfreadAll~というコマンドの新設と、なかなかアクロバティックな対応。
そんなファイル入出力コマンドをチェックしてみたいと思います。
そんな歴史もありつつ mayaLTは有償ということもあり制限が緩和され、PLEでは不可能だったファイル入出力が出来るようになりました。
けれども、fwriteAll~とfreadAll~というコマンドの新設と、なかなかアクロバティックな対応。
そんなファイル入出力コマンドをチェックしてみたいと思います。
2019年8月26日月曜日
2019年8月5日月曜日
mayaの起動後にスクリプトを自動で実行させる
mayaの起動時にMELコマンドを実行する方法が幾つかあります。
コマンドラインから maya.exe の起動オプションに -script [file] や -command [MEL command] を付加して起動させる方法。
そして、scriptsフォルダ内に userSetup.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の状態をプリファレンスへ保存する※基本
2019年7月8日月曜日
uiTemplateを使ってみる
uiResを使用していると、ラベル用文字列を取得するためだけに結構な長さの文字数を使用することになります。
ラベルを設定できるコントローラ、特にスライダー系などでは大量のフラグが有るものばかりなので、同じコントローラを複数配置した場合、レイアウトの微調整をするときのカーソル移動とかが、かなり面倒になってしまいます。
ラベルを設定できるコントローラ、特にスライダー系などでは大量のフラグが有るものばかりなので、同じコントローラを複数配置した場合、レイアウトの微調整をするときのカーソル移動とかが、かなり面倒になってしまいます。
例えば、こんなウィンドウの場合
2019年7月1日月曜日
パスの通っていない.res.melを読み込む
テストでスクリプトを組む時や、必要なスクリプトをフォルダーにまとめて配布する場合では MAYA_SCRIPT_PATH にスクリプトパスが登録されていない事があります。
そんな状況では .res.melが読み込まれていないことになってしまうので、メインのMELを source しても uiRes コマンドの部分でエラー停止してしまいます。
.res.melも source するようにすれば良いのですが、カタギさんには酷なはなしでしょう。
そんなシチュエーションを回避するためにも、メインスクリプト内に.res.melを読み込むコードを入れておくと良いかもしれません。
この記事のスクリプトのパスを調べるスクリプトを参考に、サンプルコードを書いてみます。
そんな状況では .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 には手っ取り早くメインメニューへメニューを追加するスクリプトを書いてみます。
そんなラベルの文字を各言語へスムーズに切り替えられるようにするため 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つの型に対応したスクリプトを作成してみました。
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 を実行するためのコマンドが存在していたりするのです。
その名も python と callPython
mayaLT の MELコマンドドキュメントには記載されていませんが、python コマンドの方は問題なく使えるようです。
まぁ callPython は値を返さないコマンドらしいので使えなくても問題ないですけどね。
が、MEL には Python を実行するためのコマンドが存在していたりするのです。
その名も python と callPython
mayaLT の MELコマンドドキュメントには記載されていませんが、python コマンドの方は問題なく使えるようです。
まぁ callPython は値を返さないコマンドらしいので使えなくても問題ないですけどね。
2019年5月13日月曜日
Pythonで配列番号付きのリストを表示させる
デバッグでは配列に何が入っているのかを表示させるスクリプトを書くことが多いです。
それをPythonで書いてみようと思って調べていると、なかなか衝撃的なことが出てきました。
Pythonでは ++ や -- みたいなインクリメント・デクリメント演算子が使えないようです。
まぁ、前置・後置とかを考えなくて済むから楽といえば楽なのですが、なかなか衝撃的です。
i += 1 とか i -= 1 は使えるみたいなのでこちらで考えるように思考をかえないといけませんね。
それをPythonで書いてみようと思って調べていると、なかなか衝撃的なことが出てきました。
Pythonでは ++ や -- みたいなインクリメント・デクリメント演算子が使えないようです。
まぁ、前置・後置とかを考えなくて済むから楽といえば楽なのですが、なかなか衝撃的です。
i += 1 とか i -= 1 は使えるみたいなのでこちらで考えるように思考をかえないといけませんね。
2019年4月8日月曜日
MayaのスクリプトエディタでPythonを実行する
PythonスクリプトをMELのようにスクリプトエディタで実行してみるテスト。
サンプルの.melファイルと.pyファイルはこんな感じのこんにちは表示。
サンプルの.melファイルと.pyファイルはこんな感じのこんにちは表示。
2019年4月1日月曜日
nodeGraphEditorInfoノードを削除するスクリプト
nodeGraphEditorInfoの投稿は、けっこうコンスタントに閲覧されているみたいです。
興味のある人が多いわりにネット上に情報が無いのでしょうかね。
需要もありそうなのでスクリプトを作成してみました。
メリイさんに「いまごろ?」と、つっこまれそうですけど・・・。
tryDeleteNode.mel
tryDeleteNode("nodeGraphEditorInfo");
と、ノードタイプを引数にして実行すると、シーン内の指定したタイプのノード全てでソース側の接続を解除してから削除します。
"imagePlane"とか"cameraView"とかゴミみたいなノードも簡単に削除できるかな?
興味のある人が多いわりにネット上に情報が無いのでしょうかね。
需要もありそうなのでスクリプトを作成してみました。
メリイさんに「いまごろ?」と、つっこまれそうですけど・・・。
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
を使用しているようです。
まずは略語の正式名称とか。
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信奉者が多い気がします。
まぁデータのやり取りだけなら誰でも出来ますが、正しく出力するためには相応な知識が必要になってくるわけです。
mayaで出力するときでも下の項目の適切な部分にチェックを入れないといけないわけです。
Autodeskがサポートしているとあって、グラフィック系の3Dソフトなら入出力のできるものがたくさんあります。
業界歴の浅めなアーティストやマネージャは、けっこうFBX信奉者が多い気がします。
専門学校とかでゲームエンジンの実習とかしているからでしょうかね?
悪気もなくFBX使えばいいじゃないですかぁ~みたいな?まぁデータのやり取りだけなら誰でも出来ますが、正しく出力するためには相応な知識が必要になってくるわけです。
mayaで出力するときでも下の項目の適切な部分にチェックを入れないといけないわけです。
2019年3月11日月曜日
FBXエクスポータ
2019年3月4日月曜日
テクスチャがメインになるマテリアル設定
マテリアルはゲームエンジン側で設定するのでほとんどスルーする部分ですが、けっこう雑に設定しているファイルを見かける部分でもあります。
モーション作ったりするときは、テクスチャがメインで、余分なシェーディングの掛かっていない設定が好きです。PS2時代のFFみたいな。
ただしテクスチャの描き込みがしっかりしてあることが前提ですが・・・。
モーション作ったりするときは、テクスチャがメインで、余分なシェーディングの掛かっていない設定が好きです。PS2時代のFFみたいな。
ただしテクスチャの描き込みがしっかりしてあることが前提ですが・・・。
2019年2月25日月曜日
複数のノードに接続できるアトリビュート
2019年2月18日月曜日
4Kモニターを買ってみた
2019年2月12日火曜日
使えそうで使えない substituteAllString のTips
ノード名とかに付いている数字を全部消したいなぁと思い、文字列の中から特定の文字を指定の文字へ置き換えるコマンド substituteAllString を使ってサンプルコードを書いてみたのですが、うまくいきませんでした。
書いてみたコードはこんな感じ
string $newName=substituteAllString($name,"[0-9]","");
なんか、正規表現は使用できないみたいですね・・・。
substitute では利くのでコッチでも出来るものだとばかり思っていました。
書いてみたコードはこんな感じ
string $newName=substituteAllString($name,"[0-9]","");
なんか、正規表現は使用できないみたいですね・・・。
substitute では利くのでコッチでも出来るものだとばかり思っていました。
2019年2月4日月曜日
スクリプトファイルのエンコードについて
2019年1月28日月曜日
2019年1月21日月曜日
2019年1月15日火曜日
2019年1月7日月曜日
秀丸エディタ(ストアアプリ版)を買ってみた
メインで使用しているPCが、買ってからそろそろ5,6年経ち、普段使いでは問題ないけれど、グラフィックカードの古さやOSが windows7 ということで、新しいのに買い換えないとなぁ。
ということで、maya や adobe 製品がソコソコ動作するスペックのものをドスパラのBTOで購入してみました。
ということで、maya や adobe 製品がソコソコ動作するスペックのものをドスパラのBTOで購入してみました。
登録:
投稿 (Atom)