アニメーション キー範囲を探る


で、キー範囲を調べるのにgetTimeRangeでしくじったので
すこし作ってみた

その際に、配列をいじくる機能をつかってみたぞ

getTimeRangeはこっち
http://www.sakaiden.com/?p=3898

ほかの配列がらみだぞ
http://www.sakaiden.com/?p=2955

まぁ、キー情報を回収しているだけなんだけど
面白かったのはmakeUniqueArray

これは、配列内の同じ項目を一つにして
配列をすっきりさせる機能だぞ

んーー、しってれば、前に作ったものも
綺麗にスクリプトできたんだけどな

[as3]

–基本のコントローラーはprs()か?
–Positionというプロパティを含んでいればprsと判断してもよい
if (selection.count != 0) and (isProperty $.controller “Position”) do
(
–各キーの時間を回収する
posKeys = for k in $.pos.controller.keys collect k.time;
rotKeys = for k in $.rotation.controller.keys collect k.time;
scaKeys = for k in $.scale.controller.keys collect k.time;

–配列をくっつける
join posKeys rotKeys
join posKeys scaKeys

–一度プリント
print posKeys
–ソート
sort posKeys
–同じ内容のモノを一掃する
makeUniqueArray posKeys

–配列内の最大値は?
print (amax posKeys)
–配列内の最小値は?
print (amin posKeys)

);–if end

[/as3]

こんな感じかな・・・

最初に if isProperty $.controller “Position” で
選択したオブジェクトのコントローラーが位置、回転、スケールを含めているか
確認するようにした
この時点でBipedは除外されることになる

キー情報に対して無作為に時間を調べる方法が
よく分からなかったので、結局トランスフォームキーを対象にした

んー、MaxKeyArrayがらみで
現在選択したキー情報ってのを抽出できるといいんだけどな

もしくは選択したキー情報をどっかに格納するとかね
もしかしたら、Trackview関連からアクセス出来るのかも知れないけど
試していない

あるのか?あったら便利だけどな

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください