my funeral week

少しでも日々の生活に変化を。

MayaScripts_TimeJumper : 任意の時間をリマインドする。

Maya2020辺りですかね、TimeSliderBookmarksっていう機能ができましたよね。
あれ、便利なんですけど、自分にとってはちょっと多機能すぎるんすよね。

純粋にアニメーション中の特定のフレームをリマインドできればいいなと思うことが多々あります。

そんな隙間を埋めるものを作りました。


TimeJumper

仰々しい名前ですが、UIに記述した特定のフレームへのジャンプを簡単にするものになります。

ダウンロード

www.dropbox.com


使い方

ダウンロードしたファイルから、TimeJumperフォルダを以下の場所に配置してください。

C:\Users\"ユーザー名"\Documents\maya\scripts

実行するには以下の2行。

import TimeJumper
TimeJumper.main()


実行すると下図のようなウィンドウが立ち上がります。

  • テキストフィールド
    • ここにリマインドしたいフレームを記述できます。
    • 「0,10,15」みたいにカンマで区切って入力してください。
    • その後、Enterを叩けば入力内容が以下の処理で整理されます。
      • 値のソート、無効な文字列の除去等
    • また隣のチェックボックスにチェックを入れると、入力内容をロックできます。
  • Clear
    • 入力内容を抹消します。
  • 左右の不等号記号ボタン
    • 現在の時間を基準として、入力内容の値の時間に飛びます。
  • Nearestボタン
    • 入力内容から現在の時間にもっとも近い時間に飛びます。

このようにボタンを用意しているんですが、基本的には下記のコードを適当なホットキーに登録して使う前提です。


  • UIを立ち上げます(既に立ち上がっていれば、Nearestボタンを押した時と同様の機能が働きます)
import TimeJumper
TimeJumper.main()

# UIを立ち上げない場合はこっち
import TimeJumper
TimeJumper.jumpToNearest()


  • 左右の不等号記号ボタンを押した時と同じ機能が働きます。
# >
import TimeJumper
TimeJumper.jumpToNext()

# <
import TimeJumper
TimeJumper.jumpToPrev()


設定用ノード

UIに入力した内容は、シーン内に生成される「okTimeJumperSetting」というTransformノードに保存されます。
設定内容を完全に破棄してシーンを綺麗にしたい場合は、UIを閉じてこのノードを削除してください。


更新履歴

  • ver 1.1
    Lock機能を追加。

  • ver 1.0
    配布開始。


余談

  • アニメーションの途中からループになる。
  • 任意フレームのポーズが他のアニメーションデータに繋がるポーズである。

等々、編集中に無意識変えてしまうとマズいフレームが存在していることって結構あります。

とは言え、編集中はアニメーション作業に没頭したいので、そういう面倒事を意識したくないんですよ。
編集中のふとしたタイミングで実行して、登録したフレーム位置にジャンプし、「あぁそうそう、ここは編集しないよう気を付けなアカンね」って具合です。

TimeSliderBookmarksで全然代用可能なんで、この思想に共感できない方は素直にそっちをお使いください。