Poser覚書> Poser操作 > 小技

Pythonスクリプトでキーボードショートカット(不完全編)

 以前、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スクリプト

制限事項

 で、どんなケースでもこれが動いたら素晴らしいのだが、制限事項がめちゃめちゃ多い。

  • すでにPoserで使っているキーボードショートカットは使用できない
  • キーボードショートカットとして、キー単体では使用できない(使用するための設定がわからない) 必ずShiftとかCtrl、ALTと組み合わせる必要がある。
  • 今のとこ、実際に動いたのは「,」(カンマ)「.」(ピリオド)のみ

 制限事項どころではない感じ。

 試したところ、以下のケースでは動かなかった

  • test###Ctrl+B.py
  • test###,.py
  • test###F1.py

 うむ、ほぼ意味がないような気がしてきた。

情報元: HOWTO: Assign keyboard shortcuts to Python scripts(コンテンツパラダイス内フォーラムのスレッド。英語)

その他

 私はPoserで最初から用意されているショートカットのほぼ9割以上は使ってないので、自由にショートカットが割り当てられるなら、こんな風にしてみたい。

  • 「hipを選択」「abdomenを選択」「chestを選択」など人体の主要パーツを一発選択できるように
  • 「bendを増加」「bendを減少」「twistを増加」…など、関節の曲げもキーボードでできるように
  • 「bend、twist、side-side値のリセット」をキーボードでできるように
  • 「コンフォーム服を全て隠す」「現在のフレームをキーフレーム化」「設定Xでテスト用プレビューアニメを作成」などもキーボードでできるように

 してみたいが、上記の激しい制限事項では無理だなあ、と思っていたら、RuntimeDNAでPoser用のShortcut Editorというのを売っているのを発見してしまった。簡単に、しかも自由にショートカット設定ができそうである。$5.24、約500円か、うむ、買おう。

 Python製品は、Poser7 SR3で動かない可能性があるので少し不安だが、まあ、この値段ならダメモトで試しみようと思う。

(追記)

設定したキーが働かない、と思っていたのはほとんどの場合、すでにPoserがデフォルトでキーを割り当てていて、ショートカットがカブっているからだった。結局、Shortcut Editorを購入して不要なショートカットを削除して使うことにした。また、CtrlやShift,ALTなどと組み合わせないとショートカットとして働かない模様。

関連:

次のMillennium Catの目をキラキラにするへ


Poser覚書> Poser操作 > 小技 もくじ