以前、Pythonスクリプトでキーボードショートカットもどき - Poser覚書を紹介した。
キーを何回か押すことで、目的の機能(たとえば、インバースキネマティクスをオフにするなど)を実行させるというものだ。だが、今回紹介するのはキー一発で、欲しい機能を呼び出すという夢のような機能。
Poser7限定である。
▲インバースキネマティクスオフの機能をCtrl+Shift+,に割り当てた例
目的の機能を持つPythonスクリプトを、以下のフォルダにコピーする
<Poserインストールディレクトリ>Runtime\Python\poserScripts\ScriptsMenu\
スクリプトファイルの名前を、<名前>###<キーボードショートカット>.pyにリネーム
ここでは、「2 IK ALL OFF###Ctrl+Shift+,.py」としておこう。
(もしPoserが既に起動していたら)Poserを再起動する
これで、Ctrl+Shift+, を押すとpythonスクリプトが起動し、フィギュアのインバースキネマティクスが全てオフになるのである。
import poser
scene = poser.Scene()
figure = scene.CurrentFigure()
figure.SetIkStatus(0, 0)
figure.SetIkStatus(1, 0)
figure.SetIkStatus(2, 0)
figure.SetIkStatus(3, 0)
▲(参考)選択したフィギュアのインバースキネマティクスを全てオフにするPythonスクリプト
で、どんなケースでもこれが動いたら素晴らしいのだが、制限事項がめちゃめちゃ多い。
制限事項どころではない感じ。
試したところ、以下のケースでは動かなかった
うむ、ほぼ意味がないような気がしてきた。
情報元: HOWTO: Assign keyboard shortcuts to Python scripts(コンテンツパラダイス内フォーラムのスレッド。英語)
私はPoserで最初から用意されているショートカットのほぼ9割以上は使ってないので、自由にショートカットが割り当てられるなら、こんな風にしてみたい。
してみたいが、上記の激しい制限事項では無理だなあ、と思っていたら、RuntimeDNAでPoser用のShortcut Editorというのを売っているのを発見してしまった。簡単に、しかも自由にショートカット設定ができそうである。$5.24、約500円か、うむ、買おう。
Python製品は、Poser7 SR3で動かない可能性があるので少し不安だが、まあ、この値段ならダメモトで試しみようと思う。
(追記)
設定したキーが働かない、と思っていたのはほとんどの場合、すでにPoserがデフォルトでキーを割り当てていて、ショートカットがカブっているからだった。結局、Shortcut Editorを購入して不要なショートカットを削除して使うことにした。また、CtrlやShift,ALTなどと組み合わせないとショートカットとして働かない模様。
関連: