カテゴリー「Maya様 Animation」の9件の記事

2016年2月26日 (金)

グラフエディタでキーフレームを削除すると全キー選択されて激怒。

毎日激怒しています。


Maya様のグラフエディタで、キーフレームを選んで、Delete キーを押して削除してみて下さいよ。


↓この画像だと、キーフレームが1個選ばれてますね。 ま、1個でなくともいいんだけど。

Fuckge1


この状態で Delete 押します。

すると、

Fuckge2

こうなります。

選んだキーはちゃんと削除されてます。それはいいです。

でも、残りのキーが全て選択状態にされてしまいます。

なんでやねん

キーを削除したら、残りのキーが選択されるって意味わかんないです Maya様。

選択されているもんだから、まちがって動かしちゃったりするわけですよ。ミスオペレーション多発です。 こうして、キーを削除した後はカーブ全体を動かしちゃって慌ててアンドゥ、というヘンな手グセがついていきます。 Maya様、どうかお市にになって下さい。


ちなみにこれ、Delete キーで消した時だけなんですよね。 Delete キーを使わずに、Edit メニューから Delete を選ぶと、この不思議な 「残りのキー全選択」 にはならずにキーを消すことができます。 でも、メニューから選ぶのは面倒ですよね。 やっぱり Delete キーで消したいですよね。





まいったなあ。

と思って空調屋のおじさまに質問する。

そうするとスルっと解決する。

アイラブ空調屋のおじさま。




ということで、こんなところにオプションがあるそうです。

Fuckge3

View メニューの Show Buffer Curves のオプション。

・・・・・・・・・。

え・・・? そこ?

バッファカーブの表示オンオフと、キーを削除したら残りが選択されるとかなんとか、どういう関係があるっての?

Fuckge4

これだそうです。
ほうほう、たしかに、そういうことが書かれている。

Select param curves following key deletion

直訳すると、「キーの削除に続いて、パラメータカーブを選択する」 ですね。 これがデフォルトでオンなのですね。 選択する、というチェックボックスがオンなので、その通りに選択してくれているのですね Maya さまは。


これをオフにした上で、Delete キーでキーフレームを削除すると、

Fuckge5


よしゃーーーー やっとキター

キーを削除しても、残りのキーが選択されない!


嬉しい!
というか、
それが当たり前だこのヴォゲ(゚Д゚)



ここで Maya さまに質問があります。

1.
キーを削除したあと、そのカーブ全体を自動選択すると、どういう便利なことがあるのでせうか? わざわざそのオプションをつけて、デフォルトでオンになっているくらいだから、それが便利な場合が多いと Mayaさまはお考えなのですよね? それは、どういう場合なのでしょうか?


2.
キーの削除後にカーブ選択するとかしないとかが、なぜバッファカーブ表示のオプションなのでしょうか?  バッファカーブは、カーブをいじる前の状態を記憶しておいて、前の状態を見ながらいじることができる、そしていつでも戻れるようにする、というためのものですよね? そのバッファカーブと、キー削除後に残りを全選択する/しないは、どういう関係なのでしょうか?  ちっとも関係が見えません Maya さま


ちなみに俺はバッファカーブの表示をいつもオンにして作業してます。バッファカーブはバリバリ使うから。これがデフォルトでオフである理由もわからんよ俺は。 


そして、上記のオプションは、バッファカーブ表示に属するオプションであるからして、そもそもバッファカーブをオフで作業していた場合は上記のチェックボックスがオンであったとしても無視され、結果、キーを削除しても残りのキーは選択されません。つまりバッファカーブが表示オンの時にしか問題にならないわけです。 

となるとやはり、バッファカーブの表示の有/無と、キーを削除した後に残りのキーを選択する/しないは、強い関係があると Maya さまは考えておられることになりますね。 どういう関係なのでしょうか。凡人の俺にも分かるように説明してください Maya さま




なんとなく、Maya の歴史と関係ありそうな悪寒・・・・昔、なぜかここがこうだったから、途中で変えるわけにもいかず、今もその名残でこう、とかそういう感じの・・・・・




んで、上記のスイッチがデフォルトでオンだったわけですが、にも関わらず、Delete キーを使わずに Edit メニューから削除したときは、残りのキーは選択されないのですよ。 オプションでオンにした状態に反しますね。これは不具合ですねMayaさま。けけけけけけ。



あと、これに関する日本語の記述ですが、

http://help.autodesk.com/view/MAYAUL/2015/JPN/?guid=GUID-ABB47176-9119-47F2-8466-6FA19C427F9F

ここですが、 「パラメータ カーブを選択して次のキーを削除(Select param curves following key deletion) 」 って書かれてますよ。マニュアルに。 

中学生レベルの誤訳ですねこれw  正しくは、 Select param curves(パラメータカーブを選択しますよ、), following key detetion (キーの削除のあとでね。)  という感じになりますね。直訳するとね。  following ~ってのは、~に続いて、~のあとで、という意味ですね。 この誤訳だと、「キーを削除しますよ、パラメータカーブを選択してね。」 ということになり、まるっきり意味を為しません。

ローカライズしてるのは誰ですか。嘔吐デスク様自身じゃないですよね? どっかの会社に下請けに出すんでしょう? これかなり恥ずかしい訳ですよ。というか意味を為してないから訳とは言わないねw CGのことだけじゃなくて英語も知らない人や会社がローカライズやってるんですね。 そして、あがってきた日本語マニュアルを、嘔吐デスク様がチェックしてOK出してるんですよね。 まさかチェックしてないなんてこと、ないですよね?


けけけけけけ。

ともかくバッファカーブのオプションでこのファックなスイッチをオフにすれば、キー削除後に残りのキーが選択されるとかいうファックな状態を解消できます。 いやあ、これで快適にキーを削除できますね。わーい。 こんなことで快適を感じるということは、普段、グラフエディタはどんだけ不快適かという話ですよ。 けけけけけ。



あの見やすくて超絶に軽いFカーブエディタに帰りたい・・・・

Fuckge6

本気で帰りたい・・・・・ (ノω・、)



.

| | コメント (0) | トラックバック (0)

2016年2月12日 (金)

キーフレームのペーストはマーヂモードで。

Maya様の調教メモです。 

プリファレンス/設定関係って、一度設定したらしばらく変えなかったりするんで、すぐ忘れるんですよね。 

特に、仕事の関係で新しい場所で Maya を起動した時とかね。 もろもろの設定は当然、俺様設定になってないわけで、そうなると ここどうやるんだっけー って毎回大騒ぎします。

そんなとき、そっと自分のブログを検索します。さすが俺様のブログ、俺様が知りたいことが書かれているじゃないか。ありがとう俺様。 インターネット便利ですね。どこからでも見れるからね。メモはインターネット上に残すのがベストですね。俺スマホとか持ってないから電車の中とかでは見れないけど。



ええと、繰り返しのアニメーションカーブを作りたくて、グラフエディタ上でキーフレームをコピーしてペーストしたら、Ripple 状態とでもいうか、ペーストしたキーの分だけ後ろのキーが時間軸後方に押されてしまうんです。 つまりこれ、ペーストしたキーは、現存するキーの間に 「挿入」 していることになる。 俺がやりたいのはこれではなく、コピー元のキーフレームの範囲を、コピー先に 「上書き」 したいんですね。

その設定どこだっけーってさっき大騒ぎしたので、俺様ブログに俺様メモしているだけです。

Pastemerge

そうそう、これだった・・・・・

 グラフエディタの Edit メニュー > Paste のオプション

もしくは

 アプリケーション最上位のメインメニューの Edit > Keys > Paste  Keys のオプション

このどちらでも同じウインドウが現れますね。 同じなのになぜメニューの名前がグラフエディタとメインメニューで違うんだよこのヴォゲ。 と必ず突っ込みを入れてから、このウインドウの中の Paste methodMerge にすればいいんですね。 ここが Insert になっていたから、「挿入」 されて、それ以降のキーは時間軸後方に押されていたのですね。 Merge にすると、後方に押さずに 「上書き」 になりますね。



はい。すいません。そういうメモでした。以上。



いや、XSI だと、Maya様のこの Merge の挙動がデフォルトだったと思うんですよね。違ったっけ。少なくとも俺は長年、その挙動でやってきた。Maya 様でも、たぶん2~3年前に今日と同じようにこの問題で大騒ぎして、Merge にすればいいんだよとオグリの旦那あたりに教えてもらってその時設定したまま一度も変更せず、意識せずに使ってきたんだと思う。 今日ちょっと新しい環境で Maya をいじる必要があって、ペーストしたら挙動が違ったので、大騒ぎしてしまったんですよ。 だから騒がずに調べられるよう、メモしたのでした。



1~2行で済みそうなこんなちょっとしたメモでも、ついつい長々と文章を書きたくなってしまうのは、Maya様とたわむれる時間を少しでも短くしたいと願うからなのでしょう。 Maya様との作業に比べて、俺様ブログを書く作業の、なんと楽しいことか! Maya様、もうちょっとここでリフレッシュしてから戻るよ。 もしかして戻らないかもよ。 いやそういうわけにはいかないのよ。



仕事に戻ります orz

.

| | コメント (0) | トラックバック (0)

2015年6月 2日 (火)

俺のキー 淫サートキーフレーム

挿入したいんです。 淫サートです。



アニメーション作業中はグラフエディタ上で多くの時間を過ごすわけですが、その中でも、既存のアニメーションカーブにキーフレームを挿入するってのは実に頻繁にやる操作でして、Maya の標準のやり方だとちょっとだけ気に食わなかった。ちょっとだけね。

だからスクリプトを書いてみたんですが、別にどうというアレでもありません。ただの小スクリプト。



-------------------------------------------------------

//    俺のキー 淫サートキーフレーム
//    選択中のアニメーションカーブの現在フレームに
//    キーフレームを挿入し、そのキーフレームを選択状態にする
//    そんだけ。

OrenoKeyFrame_Insert();
global proc OrenoKeyFrame_Insert()
{
    string $selectedAnimCurves[] = `keyframe -q -selected -name`;
    if ( size($selectedAnimCurves) ) 
    {
        setKeyframe -insert $selectedAnimCurves;
         
        float $currentTime;
        $currentTime = `currentTime -q`;
        selectKey -clear;
        selectKey -time $currentTime $selectedAnimCurves;
    }
}

-------------------------------------------------------

OrenoKey_InsertKeyframe.mel


アニメーションカーブを選択して実行すると、そのカーブの現在フレームにキーフレームを挿入します。 そしてそのキーフレームを選択します。 そんだけ。 ほんとそんだけです。

Insertkey1

この 挿入したキーを選択 という状態になっていた方が俺には都合が良くてね。大抵の場合すぐにいじるのでね。 大量にアニメーションするので、こういう小さいことが意外と影響大きいわけですよ。 ホットキーに即登録しました。  選択状態にしたいというのもあるけど、実はこの 「ホットキー化したい」 というのが今回の一番の目的かもしれないw  以下の方法だとホットキーにできないんですよね。




Maya に元からある標準の方法だと、アニメーションカーブを選択した状態で、右クリック > Insert Key がありますよね。

Insertkey2

これでも全然いいんだけど、挿入したキーを選択してくれないんだよなあ。 それと、やはり右クリックはちょっとつらい。 マウスならいいけど、俺は大抵ペンタブ使うから。 それと、この右クリックからの操作は、ホットキーが割り当てられないと思うんだよな。 違います?



あと、Insert Key Tool というのもありますね。 グラフエディタの Keys メニューからアクティブにしてもいいけど、i キーを押しっぱなしにして中ボタンでドラッグしても同じですね。 i キーを押している間だけ Insert Key Tool がアクティブになる感じでしょうかね。 挿入するフレームを表す黄色い線が出て来ますね。 

Insertkey3

そしてこのやり方だと、作成したキーを選択してくれる! なかなか良いのですが、中ボタンなんですよねー ペンタブだと、中ボタンドラッグとかほんとにつらいのよ。 そこが惜しいんだよなあ。 それに、ドラッグ操作が必要で、ホットキー1発でキー挿入というオペレーションにはならないからなあ。



あと、Add Key Tool ってのもありますね。

Insertkey4

このツールも中ボタンか・・・・・

しかもこのツールは、XSI の Edit Key Tool だっけ、 shift + E のやつね、あれと違って既存のキーを動かすことは出来ないんですね。 XSI のやつは、左クリックなら既存のキーを移動できるじゃないですか。そして中ボタンではキーの挿入。 Maya のこのツールは、挿入以外の操作はできません。 うーむ、いかんな・・・・・ XSI のアレを移植してくれませんか嘔吐デスク様。 XSI を抹殺したんだからそれくらいやって下さいよ嘔吐デスク様。 

ついでに左ボタンでも挿入できるようにオプションを付けてくれないかなあ。 まあ、XSI のように左クリックが既存のキーの移動になるなら、挿入は中ボタンのままでいいけどね。




これ以外に、グラフエディタ上でのキーフレームの挿入って、方法ありますでしょうかね?





ともかく、上記の方法でちょっとしっくり来てなかったので、四苦八苦して mel 書きますた(いつものように、空調屋さんに助けて頂いてます。空調屋さんのサポート無しには生きて行けません)。 こんだけの mel で四苦八苦どころか十六苦三十二苦くらいですよ俺は。 慣れないなあこの mel の書き方というか考え方が・・・・。 

だって、 setKeyframe コマンドの戻り値は、セットされたキーフレームの だそうですよ。 数かよ。 セットされたキーフレームをオブジェクトとして、そのコレクションとして返してくれよなあ。 オブジェクトとしてキーが取得できていれば、最後に選択するのも簡単だし、他にも色んなことができると思うわけですよ。 

それと比べてこのスクリプトでは、新規キーを選択するために、キーの生成に使った setKeyFrame コマンドとは全く関係なく、「このアニメーションカーブの現在フレームのキーフレームを選択しろ」 というコマンドを書いています。 生成されたキーかどうかは関係ないんですね。 こんな風に、「続く何かをやろうと思ったら、前の結果や戻り値とは無関連の方向からまた取得し直す」 みたいな、この一方通行感がね、なんだかね。 

Maya人には、結果が同じだからそれでいいジャマイカと言われます。 オブジェクトモデルでスクリプトを書いた経験の無い方には、オブジェクトとしてブツが取得できて、そのメソッドやプロパティでいじっていく感じを伝えても、「それのどこが便利なの? mel の方式で何でもできるんだから、何も不自由ないじゃない?」 と言われてしまいます。 そうですか。そうですよね。 でもなあ、ひとつ端緒をつかめばそこから芋づるでオブジェクトを次々に取得できて、前の結果を活かして次の操作をするって、とてもロジカルだし便利だと思うんだけどなあ。コードの再利用性も高くなってると思うんだな。


って、プログラマでも何でもない俺が知った風なことを言うと、本職の人からすんげえツッコミが来そうなのでやめておこうw



ま、ホットキーも登録したし、これで思う存分挿入できるね
すっこんぱっこん入れるぞー






.

| | コメント (0) | トラックバック (0)

2015年5月26日 (火)

FPS信用してはいけない。

Maya 様のことですよ。 FPS 表示ね。



ビューポート上で操作したり、シーンを再生したりすると、ビューポートのはじっこに現在のインタラクションフレームレートが表示されますよね。 Heads up display っていうんですか。 下の画像の赤い線の部分です。

Fuckfps_2


現在どれくらいのレートが出ているのか? 重要ですよね。 リグの軽さ/重さを計る材料になるし、アニメーション作業中はリアルタイムが出ているかどうかでそのまま作業するかプレイブラスト取るか、判断したりしますよね。 まあ Maya 様が再生でリアルタイム出してくれることなんて、キューブ1個の時くらいしかないですケドね。



この数字、Preference Update viewActive の時は、どうやら正しい数値を表示してくれてるように見えます。 Active ってのはつまり、1画面表示の時は当然その画面、複数画面表示の時は現在アクティブになっているビューのみ、表示が更新されるというものですね。

でもここを、Active ではなく All にするとどうなるか。 画像の黄色い線のところです。 All ということは、複数のビューポートを全部更新するので、トップビューだろうがカメラビューだろうが全部同時にアニメーションを見ることができますが、その分、当然遅くなる傾向にありますね。

でも、All にすると、遅くなるどころか、でかい FPS の数字が出ているんですよ。 40オーバーとか。 



そんなはずねえだろ
体感的にも、そんなレートは出てないよ




そもそも、同じく Preference の中で、 Max Playback SpeedReal-time にしているので、たとえ軽かったとしてもシーンに設定してあるフレームレートを超えることはないはずなんですよね。画像の青い線の部分のことです。





おかしいなあ、と思ってサポートに聞いてみたら、不具合のようだということですた。 あっそ。


-------------------------------------------------
BSPR-9507
Headup Display: displays strange frame rate when select "All" option for updating the workspace views.
-------------------------------------------------


という風に不具合登録されたそうです。 だいぶ前の話だけど。  2013 と 2014 でこの不具合を確認しています。 2015 以降で直ったかな? どうですか?



1ビューならば正しい数値が出るので、再生レートをちゃんと確認したい時はポンとスペースバーを叩いて1画面表示にすればいいし、本気でアニメーションしている間はだいたい All じゃなくて Active にしている気がするので、実害は最小限ですかね。

でも、All を選んでいるために不正確な数値が出るはずのところで、たまたまリアルタイムに近い数値とか、それっぽい数値が出てたりすると、うっかり信用してしまいそうですよね。 ダメダメ。 信用してはいけない。 All の時の fps 表示は信用してはいけないのです。





ってことを忘れていて、今日ちょっと幻惑されてしまったので、メモですよ。 ブログに書かないと忘れてしまう。書いても忘れるんだけどね。そんな時はグーグル先生に聞くのですが、自分で書いた古い記事に案内されることも多々あります。 まあどうでもいいや。 All の FPS は信用するな。 はいメモ終了





そもそも、fps どころか、嘔吐デスクそのものが信用ならないですケドね。

この、今俺が使ってる Maya とかいうソフトウェアも、ほんとなの?

これほんとに Maya なの?

信用ならねえなあ。

フラッグシップソフトウェアである Maya 様が、
こんなソフトウェアであるはずがない。
これ、ほんとは、Maya じゃないんじゃないの?
どっかの絶滅したソフトウェアとかを、
パッケージだけ替えて売ってるんじゃないの?


信用ならねえなあ


.

| | コメント (0) | トラックバック (0)

2014年6月11日 (水)

SAC for Maya様。

SAC 必要なんです。俺には。 アニメーションを他のオブジェクトに複製するツールです。

XSI 版は、やはり古いな・・・・ 2007年らしい。
http://junkithejunkie.cocolog-nifty.com/blog/2007/11/sac_b2b3.html



(mel)
-------------------------------------------------

//    SAC
//    最初に選んでいるオブジェクトのアニメーションを、2個目以降に選んでいるオブジェクトにコピーする
string $sels[] = `ls -sl`;
copyKey -time ":" -hierarchy none -controlPoints 0 -shape 1 $sels[0];
pasteKey -option replaceCompletely;
-------------------------------------------------

SACforMaya.mel




アニメーションのあるオブジェクトをひとつ選びます。 次にアニメーションをコピーしたい行き先のオブジェクトをいくつでも選びます。 その状態でスクリプトを実行すると、最初のオブジェクトのアニメーションが、2つ目以降のオブジェクトにコピーされます。 そんだけです。


いやほんと、だからどうだというアレではありません。 XSI でずっと使ってきた SAC と同じ感覚でアニメーションをコピーしたかったというだけです。 標準のアニメーションコピペが面倒だなーとか、ペーストのオプションで replace とか merge とか気にするのかったるいなーとか感じたので、SAC っぽい感じにしようとしただけなんです。 全然大したものではありません。





コピー元のオブジェクトでアニメーションされていないチャネルは、コピー先では何もいじらないようですね。 

例えば、位置のキーはあるけれど回転のキーが無いオブジェクトAをコピー元にしたとします。 一方、コピー先であるBには位置のキーも回転のキーもあります。 

この状態で実行すると、Aの持つ位置のアニメーションは、Bの位置のアニメーションを上書きします。 Bがもともと持っていた位置アニメーションは跡形も無く消え、Aと同じアニメーションになるということです。 一方、Aは回転アニメーションを持っていないため、Bがもともと持っている回転アニメーションをいじりません。 Aに合わせて回転アニメーションを消し去ったりはしないということです。 結果Bは、自分がもともと持っていた回転アニメーションはそのまま残り、位置アニメーションのみAに合わせて上書きされます。







スクリプティング的には、よく分からないまま人に聞きながら書いちゃったんですが、一応ちゃんと動いているように見えるなあ。 落とし穴あるかなあ。 何か気づくことあれば、どうかご指摘下さい。


copyKey コマンドでは、 -controlPoints 0 -shape 1 あたりがよく意味分からんのだよな。  それ以外は、 タイムレンジの指定が数値ではしていなくて ":" (コロン)のみなのでこれは全部のキーを表し、階層の下位のオブジェクトは無視して今選ばれているオブジェクトのみを対象にする。 そしてコピーするアニメーションは選択しているブツのうちゼロ番目(つまり最初の1個)から取ってくると書かれていますよね。 そういうつもりで書きました。

pasteKey コマンドでは、-option replaceCompletely ってのが、元のアニメーションをまるっきり置き換えてしまうというオプションですね。 ただし前述のごとく、コピー元のオブジェクトでキーが無いチャネルは、無視するようですね。  そしてこの書き方だと、コピー元のオブジェクト自身にもペーストしちゃってますね。 まあ問題ないですよね。




とかなんとか。




まだまだ恥ずかしいくらいの初心者ですよ、ええ。 必死で自分のブログにメモですよ。


でも mel は初心者レベルでスルーしてしまいたい気分だなあ・・・。python に走った方が良さそうに見えるんだよなあ。




XSI村で話しでいだ JScript なまりは、ここでは通用しねのがな・・・・ mel はなんだが変だすけやりっとねんだげどな・・・










.

| | コメント (0) | トラックバック (0)

2014年3月26日 (水)

ロールはツイスト。

なんでツイスト言うねん。 ロール言うたらええやん。



まあいいや、すいません、カメラのロールをしたかっただけなんですよ。ロールのアニメーションね。 カメラから見て地平線が傾くアレね。


俺はほとんどの場合エイム付きのカメラで作業するんですが、XSI で言うとカメラがカメラインタレストに Direction コンストレインされていて、そのコンストレインのプロパティの中にロールというパラメータがあって、キーが打てますね。それを Maya でやりたかったんです。



で、Maya のカメラナビゲーションのツールに Roll Tool ってのがあって、ロール自体はできるんだけど、アニメーションさせるためにどこにキーを打てばいいのか分からなかったんですよ。

Roll というアトリビュートを探しても探しても見つからず。マニュアルでも見つけられず。




で、いつものように教えて頂きました。

Fuckinrollisdamntwist

camera_group 以下にある Twist でした。 解決。


いつものように巧妙な罠ですね。

まず、カメラそのものが持っているアトリビュートではなく、カメラグループが持っているアトリビュートなんですね。 ほう。 そこにあるとは思ってなかったよ。

そして、Roll Tool なんていうツールでいじれるくせに、そのツールでいじられるアトリビュートの名前は Roll ではなく Twist なんですね。 なんでやねん Maya 様。 わざとやってんちゃうか。


まあね、XSI村にもこの手のトラップはたくさんありましたよ。パラメータのオーバーライドなんかやろうとすると、UI 上の名前と実際のパラメータの名前が全然違っていてちっとも探せねえ、とか。




Special Thanks to 運送屋様、クスリ屋さま。

いつもお世話になります。






あ、この Roll Tool って、ホットキーないんですか? なさそうに見えますね。 どうでしょうか。




.

| | コメント (2) | トラックバック (0)

2013年10月29日 (火)

俺の Next Keyframe 2。

先日書いたフレーム移動のスクリプトの話 ですが、キーフレーム移動はこちらの方が便利だな、と思ったのでメモしておきます。



MEL Script :

//俺の Next Keyframe 2
undoInfo -stateWithoutFlush off;
currentTime -edit `findKeyframe -which next`;
undoInfo -stateWithoutFlush on;


//俺の Previous Keyframe 2
undoInfo -stateWithoutFlush off;
currentTime -edit `findKeyframe -which previous`;
undoInfo -stateWithoutFlush on;



前に書いたのとどう違うかというと、前のは、

currentTime -edit `findKeyframe -timeSlider -which next`;


でした。 -timeSlider オプションが付いていたんですね。 意味も分からずどっかの WEB からパクったからなのか、あるいはスクリプトエディタからコピペしたんだかは忘れましたが、あえてこうしたわけではなく、たまたまそのまんま放置されていたという感じですけどね。 今回のバージョンはこのオプションを取っ払っただけです。


これがあると、「次のキーフレーム」 というのは、タイムスライダ上で表示されている次のキーフレームということになります。 UI 上の次/前キーフレームボタンを押した時はこの挙動です。 


でもこの挙動だと不便に感じることがあったんですね。 それは、グラフエディタ上でカーブを選択している時です。


XSI の感覚で言うと、カーブを明示的に選択している時は、次のキーフレームに行けと言った場合はそのカーブ上での次のキーフレームに言って欲しいですよね。 でも、 -timeSlider オプションを付けていると、選択しているカーブがあろうとなかろうと、タイムスライダ上にある次のキーフレームに飛んでしまうわけですよ。

Nextkey1

こういう時に不便に感じたのです。

現在、posy のカーブを選択しています。 このカーブ上にある現在フレームから見た次のキーフレームは、ですよね。 この時は A に行きたいわけですよ。 しかしタイムスライダ上では  が次のキーフレームです。 選択していない posz のキーフレームがAよりも先に存在するんですね。

このときに上記の -timeSlider オプションが付いた状態で実行すると( UI 上のボタンも同じ)、現在フレームが A ではなく  に行ってしまってゴルァになるわけです。 ま、スクリプトで 「タイムスライダ上での次のキーフレームに行け」 と言っているんだから、当たり前ですよね。Maya 様が悪いのではなく、俺が悪いのです。 ごめんなさい Maya 様。


しかし、 -timeSlider を外すと、 「選択しているカーブがあればそのカーブ上での次のキーフレームに飛ぶ。 カーブを選択してなければ、そのオブジェクトが持つキーフレーム全体の中で、次のキーフレームに飛ぶ」 という挙動になったように見えるのです。



うん、これがいいじゃないか。 現在の選択状態を反映して挙動を変えてくれる。 これの方が便利だ。 XSI の挙動と同じ、かな? どうだっけ。 たぶんそう。 こっちの方が田舎くさくて良い。 XSI村の百姓にはちょうどいいべな。




ということで、やはりちゃんと意味は分かってないしロクにマニュアルも調べてないんですが、 -timeSlider オプションは取っ払って使っています。 という話でした。 以上。







それにしても、Maya 様のグラフエディタ操作って、なんだか重くないですか? さほど複雑なシーンでもないのに、グラフエディタ上でキーをつかんでグイっとドラッグした時とか、そのドラッグ動作自体がすんげえもっさりしているんですよね。 スイっと動いてくれない。 

新規シーンにポリゴンオブジェクト1個とかであれば、さすがにスイスイ動くんですけどね。でもさほど複雑じゃないキャラクタ1体とか動かす時に、もう重くなってる。 重くなるの早くねえか?

XSI だと、そこそこ複雑なシーンでも、Fカーブエディタ上での操作はけっこうサクサクですよね。 さすがにクソ重いシーンだとビューへの反映に時間かかることもあるけど、でもそういう場合はオプションでリアルタイム反映をオフにできるので(マウスボタンを離してから初めて反映という)、ドラッグ操作自体はサクサクにすることもできるんですが、Maya 様の場合はいつももっさりしている印象です。 俺だけ?

未だ自分でゼロからアセットを作ったりとかね、リグを組んだりとかも全然できないから、人様から渡されたデータを扱ってるだけなんですよ。 だから、データの作り方ゆえに重くなっているのか、それとも Maya 様はそんなものなのか、判断がつかないんです。 しかもプリファレンスで軽くできるのかも知れないしね。まだ分かってない。 だから、てめえこのクソMaya様今すぐお市にになられて下さいとか言いたいのですが、自信がなくて小さい声でしか言えません。


道のりは遠く。









.

| | コメント (0) | トラックバック (0)

2013年10月 8日 (火)

俺の Frame。

マヤ様は、フレームを移動しただけでそれもアンドゥにカウントされるんですね。 我々 XSI 村の村民は粗野なので、そんなことはアンドゥしなくていいとか思ってしまいます。


アニメーション作業をしています。
Fカーブなどでモーションを調整しました。
フレームを動かして、調整が上手く行ったかどうか確認します。
上手く行ってない場合、アンドゥします。

すると一発で戻ってくれない。
フレームを動かした過程もアンドゥ対象だからです。


モーション調整後、確認のために1コマずつトトトトトと動かしたり、
タイムスライダをスクラブしたりすると、
アンドゥした時に、
マヤ様はその全てを、
トトトトトトのひとつずつまでもを、
丹念に、
ご丁寧に、
ご親切に、
真心を込めて、
1個1個アンドゥして下さりやがります。

マヤ様の真心が身に滲みます (´;ω;`)ウゥゥ

どうか今すぐお氏にになって下さいマヤ様




こうしておびただしい回数の Ctrl + Z が出現することになるのです。

Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z + Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z Ctrl + Z



連続で Ctrl + Z を押しているうちに、どこまで戻ったのかよく分からなくなってきたり、なんかラリってきたり、お花畑が広がってきたり、アンドゥってなんだっけ? Ctrl + Z って、このスペルで合ってる? なんか Z って文字、直線が3本だよね。 なんで折れ曲がってんの? っていうかこれほんとに Z なの? そもそも Z ってなに? 誰が決めたの?  Z って別に N でもいいじゃない。 俺の知ってる Z はこれじゃないよね。

などとゲシュタってしまうのです。 

俺の精神を破壊しないで下さいマヤ様







同じことを考えている人もいたみたいで、どっかの WEB からパクったり知人に教えてもらったりして、今では ↓これらのスクリプトに落ち着いています。 どこからパクったかはもう忘れてしまいました。すいません。

要するに、マヤ様の標準機能のフレーム移動を独自のスクリプトで置き換えてしまう、ということをやっているだけです。 置き換えるって言っても、マヤ様のコマンドをいじるとかではなく(そういうこともできるらしいが)、独自スクリプトをホットキーに割り当てるだけですけどね。

独自スクリプトとは、フレーム移動操作の前にいちいちアンドゥをオフにし、フレームを移動、そしてその後アンドゥをまたオンにするという、それだけのものです。 1行目がアンドゥオフ、3行目がアンドゥオンです。 これらをホットキーエディタ内で独自コマンドを作りどんどんキーに割り当てていきます。 



//俺の Next Frame
undoInfo -stateWithoutFlush off;
currentTime ( `currentTime -q` + 1 );
undoInfo -stateWithoutFlush on;


//俺の Previous Frame
undoInfo -stateWithoutFlush off;
currentTime ( `currentTime -q` - 1 );
undoInfo -stateWithoutFlush on;


//俺の Next Keyframe
undoInfo -stateWithoutFlush off;
currentTime -edit `findKeyframe -timeSlider -which next`;
undoInfo -stateWithoutFlush on;


//俺の Previous Keyframe
undoInfo -stateWithoutFlush off;
currentTime -edit `findKeyframe -timeSlider  -which previous`;
undoInfo -stateWithoutFlush on;


//俺の Start Frame
undoInfo -stateWithoutFlush off;
playButtonStart;
undoInfo -stateWithoutFlush on;


//俺の End Frame
undoInfo -stateWithoutFlush off;
playButtonEnd;
undoInfo -stateWithoutFlush on;




これでなんとかなります。 それぞれ全部、ホットキーに割り当てました。 命からがらです。 これがなければ俺は確実に死亡します。 ありがとうマヤ様。 俺たち XSI 村の奴婢たちにも生きる道を与えてくれて。




ただし、これはホットキーに割り当てたというだけであり、 UI 上のボタンを押した時にも上記のスクリプトの動作になってくれるわけではありません。 例えば、となりのフレームに移動するのに UI 上の Next Frame ボタンを押した場合は、上記スクリプトではなくマヤ様標準機能の 「次フレームへ移動」 が起動されますので悪しからず。つまりアンドゥ対象のフレーム移動です。


でも、ボタンに割り当てられている機能の改造すら、やろうと思ったらできちゃうんですねマヤ様は。 UI 上のボタンに独自スクリプトを割り当てるやり方は、N澤くんに教えてもらいました。 が、まだ俺は習得には至っていません。 故に今のところまだ俺のマヤ様のボタンは標準のままですが、まあ、フレーム移動などはどうせホットキーでしかやらないので問題ない。UI 上からこれらのボタンを取っ払ってしまいたいくらいです(それもできるんか?)。

聞くところによると、マヤ様は UI 上のボタンの定義まで全て MEL 呪文で書かれており、ゆえに元の呪文を書き換えてしまえば、あるいは呪文を唱えて一時的に機能を上書きしてしまえば、そのボタンを押した時に何が起こるのかすら変えてしまうことができるという、まさに黒魔術なことができる宗教ソフトウェアなんですね。 試しに、教えてもらった通りにいじってみたら、再生ボタンを押しても次フレームボタンを押しても最終フレームボタンを押しても何を押しても必ずポリゴンの sphere が出現する、という超鬼畜な UI が出来上がりました。 すごいなマヤ様は。 XSI は被差別民ですから、UI 上のボタンが押された時の挙動なんて、カスタマイズできません。そんな大それた改編は、お上から許されていないのです。

あ、そういえば、マウスでの操作はどうなんだろう。 つまり、タイムスライダ上をマウスでスクラブしたり、タイムスライダのある1点をクリックしたりすることも、フレーム移動ですよね。 それはホットキーで独自コマンドを起動するのとも、UI 上のボタンをクリックするのとも、違う動作ですよね。 そういうのもカスタマイズできちゃうんでしょうかね? だとするとなお助かるなあ。 タイムスライダ上をクリックしてフレーム移動ってのもよくやる操作ですからね。 これもアンドゥ対象外にしてしまえるといいなあ。







まあともかくですよ、このフレーム移動操作のカスタマイズがなければ、とてもじゃないけどマヤ様でアニメーション作業はできません。 もともとマヤ様のもとにおられた皆様はもちろん気にもしてないというかそっちの方が自然に感じるのでしょうけれど、XSI 村の人間にとってはこれはクリティカルです。 無理無理。  特にアニメーション作業中ってのは、ポーズやタイミングやFカーブの形のみに集中してそれ以外のことは一切頭に浮かんで欲しくないという状況下にあるので、アンドゥでゲシュタってしまったりしたら、もう、全てぶち壊しです。せっかく頭の中にできつつあった良いモーションのテンポやノリが破壊されてしまい、どう修正しようとしていたのか思い出せず、余計なところまでいじり始め、昨日よりも悪い動きに改悪してしまい、結局モニタまでもを破壊することになるのです。

俺のモニタを破壊しないで下さいマヤ様






 .

| | コメント (0) | トラックバック (0)

2013年6月23日 (日)

マヤ様、シーン丸ごとアニメーションをオフセットして下さい。

忘れぬうちにメモするしかない。


マヤ様で、シーン全体丸ごとキーフレームアニメーションの時間軸をオフセットする方法です。俺の周りには親切な人がたくさんいて、俺なんかによく教えてくれるんです。



1. 手動でやる方法

最初はこの方法しか知らなかった。 シーン全体のオブジェクト、あるいはアニメーションのあるオブジェクトを選択し、グラフエディタでFカーブを表示させる。 そしてグラフエディタ上で全てのキーフレームを選択し、時間軸の入力ボックスに -= 1000 とか入力する。 これで 1000フレマイナスになります。 += 500 と入れれば 500フレプラスになります。 

オブジェクトの選択で漏れがあるかもしれないというリスクはありますかね。 あと、グラフエディタ上で全部のキーを選択する時も全体をマウスドラッグするしかなさそうなので、そこでも漏れのリスクはゼロではありませんね。

グラフエディタ上で、Select All Keys とかそういう機能は無いんですねマヤ様(゚∀゚) 得意のアレですか。 MEL 書けばいいじゃんってやつですか(゚∀゚)


-=1000 ってのは JScript やら C とかと同じ書き方ですかね? XSI で言う ところの「元の値 - 1000 」 とか、 「(元の値に関係なく) 1000- 」 とか、ああいう数式入力ですね。 この場合は後者ですね。 この 1000- 方式の入力ができるといいんだけどなあマヤ様。






2. アウトライナから

アウトライナの DAG Objects Only のチェックを外すと、アニメーションカーブノードというものがずらずらずらと表示される。 

Animnode


これを Shift などを使ってアウトライナ上から選択すれば、全てのFカーブを漏れなく選択できたことになる。 以降、1と同じくグラフエディタ上でオフセットさせる。


これはアウトライナにアニメーションカーブノードを表示させているのだから、その表示には漏れはないはずで、しかもそこから Shift 選択をすれば、少なくともビューポート上などからオブジェクトを選択するよりは遥かにオペレーションミスも少ないであろうと思われます。 グラフエディタでのオフセット作業は1と同じです。

スペシャルサンクス to りんだりんだーりんだりんだりんだーぁ様





3. 2 と同等のことをMELスクリプトで

select `ls -type animCurve`

これを実行すると、シーン全体のアニメーションカーブノードが選択された状態になりますたぶん。 2でアウトライナからやる操作を自動でやることになるので、さらにオペレーションミスは防げます。 その後グラフエディタでやることは同じです。

スペシャルサンクス to N澤くん
この人、今では某社のTD隊長兼広報部長みたいな感じでやってますが、俺は知ってます。実はハードゲイでした。 しかしそれはもう10年以上前の話。 今ではどうでしょうか。スーパーハードゲイに正常進化したか、ソフトゲイに突然変異したか。 アブノーマルゲイに行ったかも知れません。知りません。




4. ドープシートで

ドープシートを表示させ、View > Scene Summary をオンにすると Scene Summary というものが表示されて、その名前の部分を選択するとシーン全体のキーフレームがハイライトされるように見える。 その状態で、グラフエディタと同じように -=1000 などと入力して全体をズラす。

Scene Summary で全てのキーフレームが網羅されているのかちゃんと調べてはいませんが、これで行けるなら、これもすっきり分かりやすい方法だと思います。

スペシャルサンクス to プリビズ界のさだまさし様






全て、単純なキーフレームアニメーションでしか実験してません。エクスプレッションやシミュレーションなど色んなものが混ざっているときに、本当に上手くシーン全体でオフセットできるのか不明です。できなさそうだよねえ。

まあともかく、そのままズバリの機能としての「シーン全体のアニメーションオフセット」は Maya 様には無いように見えるので、教えてもらった方法でしのぎます。皆様ほんとうにありがとうございます。冗談抜きで感謝してます。
 


ちなみに XSI には Sequence All などというシーン全体のアニメーションオフセット機能がありますね。 まあこれも単純なキーフレーム以外のものでも全て上手くオフセットしてくれるかと言うと、そうでもなさそうですけどね。でも少なくともキーが打ってあればさえ、時間オフセットは確実にやってくれます。 XSI カーストにいる俺たちはそういう機能があって欲しいという卑しい煩悩を持ち続けるため苦悩します。 Maya 様の世界ではそんな煩悩はありません。皆さま、心静かに MEL をお書きになるそうです。 XSIカーストのお前ら、見習え。





走り書き的なメモですが、明日や明後日、俺の作業の役に立つはずなのでメモメモ

他にもなんかいい方法をご存知のお方がいらっしゃいましたらならば、なにとぞご教示下さいませ。

| | コメント (2) | トラックバック (0)