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

2022年7月 5日 (火)

繰り返しペーストキィィィィっ。

またもや、自作のちょっとしたツールを載せます。

キーフレームを、繰り返し繰り返し、イッキに、ズヴァヴァヴァヴァっとペーストするスクリプトです。


かったるいので 1.5倍速 くらいで見ると良いと思います。



繰り返しペーストキィィィィっ。
ダウンロード - jjjkurikaeshipastekeys.py


↑ このファイルをダウンロードして、 Maya のスクリプトフォルダに置いて下さい。
スクリプトフォルダの例: C:\Users\あんたのユーザ名\Documents\maya\scripts



一応、使い方を書いておくと・・・・

以下の Python コードで、ツールが実行されます。

Python:

import jjjKurikaeshiPasteKeys
jjjKurikaeshiPasteKeys.jjjKurikaeshiPasteKeys()


グラフエディタでキーフレームを選択して実行してください。 

時間軸のプラス方向に、選択中のキーが複製されます。
こんな感じ ↓

Kpk 

この画像の上の方が、実行前の状態です。

この場合、ループしたいキーフレームの1サイクル分を選択して、数回実行しました。

その結果が、画像の下の方です。時間軸のプラス方向に、選択していたキーフレームが複製されて、何度もループするアニメーションカーブになったのが分かると思います。



時間軸のマイナス方向にキーを複製したい時は、以下のコードを実行してください。

Python:

import jjjKurikaeshiPasteKeys
jjjKurikaeshiPasteKeys.jjjKurikaeshiPasteKeys(1,-1)



カッコの中の数字は、

 1番目が 「繰り返しペーストする回数」
 2番目が 「ペーストする時間軸の方向 1 か -1」

です。 


なので、例えば、「時間軸のマイナス方向に5回ペーストしたい」 という時は、

Python:

import jjjKurikaeshiPasteKeys
jjjKurikaeshiPasteKeys.jjjKurikaeshiPasteKeys(5, -1)

このようなスクリプトを実行すればいいことになります。


でもまあ、上記のような1回だけペーストするコードをホットキーに登録して、ホットキーをズヴァヴァヴァっと何回も押すのをおススメしたいです。プラス方向マイナス方向、それぞれホットキーを登録すると便利だと感じています。



UI 版もあります。

Kpkui

ダウンロード - jjjkurikaeshipastekeys_ui.py

※前述の jjjKurikaeshiPasteKeys.py(コマンド版) も必要です

この UI 版のスクリプトは、シェルフにでも登録するのがいいと思います。 まあ、ランタイムコマンドとかにしてもいいとは思いますけど。 ランタイムコマンドにした場合は、そのランタイムコマンドを呼び出すためのシェルフボタン、もしくはホットキーなどが必要になると思います。 詳しくは前述の動画を参照して下さい。

UI 版も、コマンド版がインストールされていることが前提です。UI から同コマンドを呼び出すからです。 

だから、↑ 前述の jjjKurikaeshiPasteKeys.py ファイルをスクリプトフォルダに入れておく必要があります。 その上で、上記 UI 版の
スクリプトを実行します。









いかにもシロートが書いたっぽいダサいツールだとは思いますが、俺はかなり頻繁に使ってるんですよ。

例えばカメラシェイクのようなガタガタしたランダムな動きを作りたい時とかに、このツールを使ってキーフレームを繰り返しペーストした後で、グラフエディタ上で手で値を変えて行ってランダムにする、もしくは他のツールを使ってランダムにする、みたいな。

あるいは、Infinity の Cycle 状態を実キーフレームに変換したい時にもよく使います。Bake がなんか綺麗にいかないことがあるんですよねー Smart Bake とかでしたっけ。全フレベイクじゃなく、現在のキー間隔のまま Cycle を実キーにしていくやつ。タンジェントがおかしくなるとか上手く行かなくて、オプションをいじったり工夫するのが面倒なので、このツールでペーストしちゃって Cycle を実キーにしてしまいます。



とかなんとか。
そういうツールでした。



.

| | コメント (0)

2019年8月24日 (土)

HUD にアニメーションレイヤ。

突然スクリプト。

 

HUDに現在アクティブなアニメーションレイヤを表示させるテスト

 

 

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


import pymel.core as pm

def getSelectedAnimLayer():
    return ( pm.treeView ("AnimLayerTabanimLayerEditor", q=True, selectItem=True) )

if pm.headsUpDisplay( "SelectedAnimLayer",q=1, ex=1 ) == True:
    pm.headsUpDisplay( "SelectedAnimLayer",e=1, remove=1 )

else : pm.headsUpDisplay( "SelectedAnimLayer", section=1, block=0, label='anim Layer:', command=getSelectedAnimLayer,event='SelectionChanged', nodeChanges='attributeChange' )

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

Animl

スクリプトを走らせるごとに、HUD に現在アクティブなアニメーションレイヤの表示をオンオフします。

表示は、オブジェクト選択に変化があったとき(=他のオブジェクトを選んだり、何も選んでいない状態に変わったりしたとき)にアップデートされます。

 

逆に言うと、アクティブなアニメーションレイヤが変わっても、選択しているオブジェクトが変わらない限り、表示に変更はありません。

 

ううむ、これでは不便ではないか。 むしろ、アクティブなアニメーションレイヤが変わった時にアップデートして欲しい。 

 

event というフラグが、現在は SelectionChanged になっているのですが、ここを何かに変えればいいのかな。でも何に変えればいいのか、まだ調べ切れていません。どなたか教えて下さい。

 

 

 

 

.

| | コメント (0)

2019年4月 6日 (土)

グラフエディタTRS表示フィルタサイクル~~~~ん。



Maya さまのスクリプト。書きたてホヤホヤ。ダッさいスクリプトでごめんなさい。こんなんしか書けないの。 下の方にダウンロードリンクがあります。


いや、もともとは、エイム付きカメラで作業しているときに、グラフエディタで、必要のない回転の値とかを無駄にたくさん表示しやがるので、ごちゃごちゃして見づらくてしょうがない。



やむなくグラフエディタ内で Show > Select Attributes... で表示させるものをフィルタしていたんですが、これも面倒じゃないですか。 せめて、ホットキー1つとかボタン一つで、フィルタを次々にサイクルさせられれば、ちょっとはいいかな~という程度の考えで、書いてみただけです。本当に便利かどうかは運用してみないと分からない。 全然便利じゃないかもしれない。 やってみるしかない。


 Getrsfiltercycloooon_1  


起動すると、シーンのトップ階層に、graphEditorVisibleAttributes というトランスフォームノードを作ります。この中に TRS という名前のカスタムアトリビュートがあって、その値を見て、サイクルをしています。 実行するたびにこの値が加算されて、その値によって表示するアトリビュートを変えるということです。 このようにトランスフォームノードなんかを置いて現在の値を保持するって、なんかダサいでしょうか? もっとスマートなやり方ないでしょうかね?


ただの python スクリプトです。シェルフなりどこかに登録して使えばいいと思います。俺はホットキーにするかな。


便利にしたいんだよなあグラフエディタ
どなたかダウンロードして試してみてもらえませんか


ダウンロードはこちらから


# -*- coding: utf-8 -*-
#
# グラフエディタ TRS 表示フィルタサイクル~~~~ん ver1.0
#
# グラフエディタの TRS の表示オンオフを、フィルタなし、pos のみ、rotのみ、scl のみ の4つでサイクル

import pymel.core as pm
import maya.mel as mel
import sys

def toggleVisibleAttribute( TRSName, flag, ge ):
mel.eval( "filterUISelectAttributesCheckbox " + TRSName + "X " + str(flag) + " " + ge + ";" )
mel.eval( "filterUISelectAttributesCheckbox " + TRSName + "Y " + str(flag) + " " + ge + ";" )
mel.eval( "filterUISelectAttributesCheckbox " + TRSName + "Z " + str(flag) + " " + ge + ";" )

##############
groupNodeName = "graphEditorVisibleAttributes"
groupNode = pm.ls( groupNodeName )
if not groupNode :
#print( "creating." )
groupNode = mc.group( empty=True, name=groupNodeName )
pm.addAttr( groupNode, longName="GE_TRS_Visible", attributeType='long', min=0, max=3, defaultValue=0 )
pm.setAttr( groupNode + ".GE_TRS_Visible", e=1, keyable=1)

else : groupNode = groupNode[0]

TRS_Visible = pm.getAttr( groupNode + ".GE_TRS_Visible" )
#print( "TRS_Visible = " + str(TRS_Visible) )
TRS_Visible += 1
if TRS_Visible == 4 : TRS_Visible = 0
##############

fuckinGraphEditors = pm.getPanel(scriptType="graphEditor")

for item in fuckinGraphEditors:
ge = str(item) + "OutlineEd"

if TRS_Visible == 0 :
toggleVisibleAttribute( "translate", 0, ge )
toggleVisibleAttribute( "rotate", 0, ge )
toggleVisibleAttribute( "scale", 0, ge )
msg = u"TRS 全部表示 (/・ω・)/ グラフエディタ~"

elif TRS_Visible == 1 :
toggleVisibleAttribute( "translate", 1, ge )
toggleVisibleAttribute( "rotate", 0, ge )
toggleVisibleAttribute( "scale", 0, ge )
msg = u"pos のみ表示 (/・ω・)/ グラフエディタ~"

elif TRS_Visible == 2 :
toggleVisibleAttribute( "translate", 0, ge )
toggleVisibleAttribute( "rotate", 1, ge )
toggleVisibleAttribute( "scale", 0, ge )
msg = u"rot のみ表示 (/・ω・)/ グラフエディタ~"

elif TRS_Visible == 3 :
toggleVisibleAttribute( "translate", 0, ge )
toggleVisibleAttribute( "rotate", 0, ge )
toggleVisibleAttribute( "scale", 1, ge )
msg = u"scl のみ表示 (/・ω・)/ グラフエディタ~"

pm.setAttr( groupNode + ".GE_TRS_Visible", TRS_Visible )
sys.stdout.write( msg + "\n" )
pm.inViewMessage( amg= msg, pos='topCenter', fade=True, fadeStayTime=900, fadeInTime=50, fadeOutTime=200 )

 

 

.





| | コメント (0)

2019年1月30日 (水)

連番は DJV。

.


Maya さまの、 FCheck っていうんですか?
プレイブラストとかした時に起動される、連番再生ツールね。
アレがなんか嫌いで。
起動が遅いんだよなー
時代遅れ感というか、アップデートする気なさそうな雰囲気が半端ないし


だから俺はいつも DJV_view を使ってます。
これの方が起動が速かったり、もろもろ扱いやすい気がしています。

http://djv.sourceforge.net/


Maya のプレイブラストで起動されるツールに指定するには、Preference で指定してやるだけですね。

Djv


djv_view.exe
を指定して、フラグ %f をつけてやるだけ。

連番に関してはこれで問題なく運用できています。
FCcheck よりずっと好きであります。




このツール、Maya と無関係のただの連番再生ツールとしても使いやすいと思ってます。連番の1枚をドロップするとかダブルクリックするだけで再生が始まります。 ダブルクリックで起動するには拡張子で関連付けが必要ですけどね。

再生速度も簡単に変えられるので、自分でアニメーションをチェックするとき、このアクション遅いかな? と思ったら早回してみるとかね。 もうちょっと遅い方がいいかな、とか思ったら再生速度下げてね。 ちょうどいい感じを見つけたところで現在の再生レートを見ると、元は 30fps のところ 40fps だったから、 30 / 40 = 0.75倍、 つまり 75% の尺になるようにキー間を詰めてあげるとかね。 そういうのよくやってます。



有償の再生ツールとかで良いやついっぱいありそうだけど、まあ、調べるのも面倒で、今のところ無料の djv を何年も使ってます。

あとは XSI の Flipbook も好きですけどね~  Flipbook は大きさのズーム機能がもうちょっと良ければな~



.

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

2018年5月18日 (金)

こいつのキー全部選択してください。

.





選択中のキーを元に、そのアニメーションカーブにあるキーフレーム全部を選択するというスクリプトであります。



なんてことはない。  コメント除けば実質3行w

でも意外と便利に使ってますよ。



Python:

# -*- coding: utf-8 -*-
#
#    jjjPleaseSelectAllKeysOnThis.py
#    こいつのキー全部選択してください。
#
#    選択中のキーフレーム(複数Fカーブ可)からFカーブ全体を選択するスクリプト

import pymel.core as pm

#    選択中のキーからFカーブ取得
selectedAnimCurves = pm.keyframe( q=True, selected=True, name=True )

#    選択中のFカーブを対象に selectKey コマンドでキーを一網打尽
if len(selectedAnimCurves) != 0 : pm.selectKey( selectedAnimCurves, r=1 )

ダウンロード jjjPleaseSelectAllKeysOnThis.py (0.5K)





Maya さまのグラフエディタは、2017 以降すんげえ良くなったけど、やっぱり使いにくいことには変わりなくてね。

↓ こういう場合めんどくさいといつも感じます

Keysel1

この、Rotate Y のキーだけを、全部イッキに選択したい。 カーブ丸ごとドラッグして値やタイミングを変えたいとか、そういう時ね。

でも、目的のキー全体を囲うようにマウスドラッグすると、 その範囲に入った他のキーまで選択されやがりますよね。

何を当たり前のことを、と思うかも知れませんが、XSI 村ではですね、まずはキーなりFカーブなりを選択すると、次のドラッグではそのFカーブの中からしか選択できなくなってくれるんですよ。

つまり、Y のキーだけ選びたい、とかそういうことがすんげえ楽にできるんです。 いちいちFカーブの表示をオンオフしたり、左側のアウトライナなどにマウスポインタを持っていくことなく、サッと目的のキーのみ選択できるということです。   これがどれだけラクなことなのか想像できないあなたは、生粋のMaya インペリアル人です。




↓ で、やむなく、左側のアウトライナからアニメーションカーブを選択する。

Keysel2

こうすると、そのカーブが単独表示になりますよね。

この状態で、ガッとマウスドラッグして全部のキーを選択してしまう。

そのままいじってもいいけど、やはり、他のアニメーションカーブを見ながら、相対的な値を考慮しながら、いじりたいじゃないですか。 このままだと選択中のアニメーションカーブしか見えてないわけですから。



↓だからやむなく、左側のアウトライナでオブジェクト名をクリックして、全アニメーションカーブを表示復活させます。 

Keysel3

幸いにもこの時にキーの選択状態が変わったりはしないので、めでたく、「全カーブを見ながら、イッキに選択したキー全部をまるごとドラッグできる」 状態になりました。 ふう・・・・。



でもこれ、すんげえめんどくせえじゃないですか。

たったこれだけのことで、いったい何回クリックしたり、マウスをあちこちに動かさなければいけないんですか Maya さま。  支んで下さい Maya さま。





なので、ちょっとでも楽にならないかな、と思って書いてみたのがこのスクリプトです。

まずはキーを選びます。1個でも、いくつでも。 その状態でこのスクリプトを走らせると、そのキーが所属するアニメーションカーブ全体が選択されるというものです。

俺はホットキーに登録して使っています。 左側のアウトライナに手を伸ばさずに済むだけ、楽に感じます。 ホットキー押す手間はあるけど、マウス位置をあんまり動かさなくていいので、ラクだと思いました。





↓ ちなみに、選択を 「キー」 ではなく 「カーブ」 にすれば、カーブあるいはキーに触れた瞬間、アニメーションカーブ丸ごと選択されてくれますね。

Keysel4

これ、Curve の項目にたしかデフォルトで M のホットキーが付いてたんだよな。 でも 2017 だと、なぜかそのホットキーバインドが2重で登録されていて、片方を消さないとホットキーが効かないみたいなアフォな不具合があった気がする・・・。

いちいちこのメニューを出すのはもちろん面倒なので論外ですが、ホットキーさえちゃんと効く状態にしておけば、今回のこのスクリプトなんて使わずとも、ホットキーポンでカーブ選択モードになって、カーブ全体を選択後にまたホットキーでポンと戻せばいいかな、とも思いました。

でも全フレキーだったりすると、カーブとして選ぶのが困難なんだよな。 キーとキーの間の線の部分を狙ってクリックしないといけないからな。 これは論外か。  だから、ホットキーポンで、 Curve がオンかつ Key がオフという状態になればいいのかな。 これはこれでスクリプト書く必要がありますね・・・・・



グラフエディタ、もっと進化しないとですね~
だいぶ良くなったけど、まだまだですね~


俺は人生の大半の時間をグラフエディタの中で過ごしてしまっているので、ここ重要なんです。


やむなくたくさんスクリプト書きますが、Maya さまのキーフレーム系、アニメーションカーブ系のスクリプトって、ほんと書きにくい orz  

Fカーブオブジェクト、Fカーブオブジェクトのコレクション、そこから取得できるFカーブキーオブジェクトおよびコレクション。 こんな風にXSI 村では関連するオブジェクトを芋づる式に取得できたのでそんなに苦でもなかったのですが・・・・・ 


Maya さまの場合、選択中のキーからアトリビュートの名前を文字で取って、それを元に、フレームいくつからフレームいくつまでこれやって下さい、みたいな、そんな書き方なのかな? 全然しっくり来ないんだよなあ。
コマンドも keyFrame とか keyTangent とか selectKey とかに分かれていて分かりにくいし、ゲットもセットも同じコマンドのフラグ違いとか。  取得できるのはキーオブジェクトじゃなくてキー時間のリストだったり。
 
取得したものからメソッドやプロパティを使って連鎖的に何かをする感じがなく、 ぜ~~んぶ文字列とかで情報ゲットして、最後にコマンドに情報全部羅列して食わせてやっと何かできるみたいな?  違うことやろうと思ったら取得のプロセスをルートパスからやり直しているような、なんかそんなイメージがあるんです。 これまた頭から取得すんの?  みたいな。 


・・・・・うーむ、上手く説明できないし、なんかこう、不正確なこと言ってたらすいません。 でもほんと、キーフレーム系、グラフエディタ系はほんと、何度書いてもピンと来ない感じです。 しんどい。


カンニング集みたいなのまとめるしかないな。 考えるのは最初の1回だけで、1か所にまとめてメモしておけば、あとはコピペすりゃいいやみたいなやつ。  いつかそういうのまとめたい。 です。 しんどい。






.

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

2018年5月16日 (水)

再生速度トグる~~~ん。

.


またもや発作的に書いたスクリプトを載せてみるんですけどね。


なんかヘンなところあったら突っ込み下さいね。 シロートがほんと、手探りで書いているようなものなので・・・・





ビューポートの再生速度を、通常の 0.5 倍とか2倍とか、スピードを切り替えることができますよね。  


でもいちいち Preference 開くのが面倒なので、n倍の速度で再生する、っていう n の数値を2つだけ登録しておいて、その2つの値でトグルするというスクリプトです。



Pyhon:

# -*- coding: utf-8 -*-
#
#    jjjPlaybackSpeedToggleooon.py
#    再生速度トグる~~~ん
#
#    再生速度を2つの値でトグルするスクリプト
#    1倍速再生と 0.5倍速再生を切り替えるとか。 スクリプトの冒頭の2つの値を適当に書き換えて運用
#    モーション作業でこれ欲しいときあるじゃないですか。いちいち pref 開くのめんどくせえし。


#再生速度切り替えの数値  テキトーに書き換え
speed1 = 0.5
speed2 = 1.0

import sys
import pymel.core as pm

#現在の再生速度取得  play every frame = 0.0
currentSpeed = pm.playbackOptions( playbackSpeed=1, q=1 )

#    Play Every Frame だった場合 = 最大再生速度を2つの値でトグル
if currentSpeed == 0.0 :
    currentMaxSpeed = pm.playbackOptions( maxPlaybackSpeed=1, q=1 )
    #print ( "play every frame : currentMaxSpeed = " + str( currentMaxSpeed ) )
    if currentMaxSpeed == speed1 : pm.playbackOptions( maxPlaybackSpeed=speed2 )
    else : pm.playbackOptions( maxPlaybackSpeed=speed1 )
    
    currentMaxSpeed = pm.playbackOptions( maxPlaybackSpeed=1, q=1 )
    msg = u"再生速度 = 全フレ再生 : 最大速度 =  " + str(currentMaxSpeed) + u"   (゚∀゚)"

#    Play Every Frame じゃなかった場合 = そのまんま再生速度を2つの値でトグル
else:
    #print ( "currentSpeed = " + str( currentSpeed ) )
    if currentSpeed == speed1 : pm.playbackOptions( playbackSpeed=speed2 )
    else : pm.playbackOptions( playbackSpeed=speed1 )

    currentSpeed = pm.playbackOptions( playbackSpeed=1, q=1 )
    msg = u"再生速度 =  " + str(currentSpeed) + u"   (゚∀゚)"

#    結果をお知らせしておしまい。    
sys.stdout.write( msg + "\n" )
pm.inViewMessage( amg= msg, pos='topCenter', fade=True, fadeStayTime=1500, fadeInTime=100, fadeOutTime=400 )

ダウンロード jjjPlaybackSpeedToggleooon.py (1.7K)


Playbackspeed

↑ここの設定のことです。

いちいち Preference 開くの面倒だから、ホットキーにしたくてね。 当然のことながら、ホットキーにするなり、すぐに手が届くシェルフとかに登録するなり、 Preference を開いてこの設定をいじるよりもラクな起動方法で使わないと意味ないですね。




モーションビルダーは、確か UI 上にこの設定が出ているんじゃなかったっけ? すぐに切り替えられて便利でしたよね。  Maya さまもそうだといいのになあ。 なぜ Preference の奥に隠してしまうのだ。 前から、楽にこれが切り替えられるといいなあと思ってたんですが、なんか書けそうな気がしてしまったので、今日書きました。 こんなんで合ってるかなあ?



再生速度が Play Realtime の時は、単に再生速度を2つの値でトグルします。  Play Every Frame の時は、最大再生速度の方を2つの値でトグルします。  2つの値は、スクリプトの冒頭の数値を好みで書き換えればいいんじゃないのかな。 デフォルトでは 1 と 0.5 です。 つまり、1倍速=ノーマル速度と、 0.5倍速=半分の速度(ゆっくり)のトグルになります。

アレですね、例えば 60fps のゲームモーションなんかをいじっている時に最も使いたくなりますね。 特に、クイックで激しいモーションとかは、カクりとか、軸のブレみたいなのを見つけるのに、ゆっくり再生してみたくなる。 そんな時にポンポンと気軽にスピードを切り替えたいという、アレです。






ちなみにですが、ずいぶん前にも書いた けど、heads up display の FPS 表記は、1ビュー再生の時以外は信用しちゃダメですからね。 

さっきも Maya 2018 で試してみたけど、まだ直ってねえや。 2倍速だろうが 0.5 倍速だろうが、2ビュー以上で再生すると不正確な数値が出てます。  嘔吐デスクさま、いつまで放置すんの。 やる気あるんでしょうか。 



まあ、ないですよね。 

知ってます嘔吐デスクさま





.

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

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)