« 本を読んでいます | トップページ | アニメのススメ »

2009年12月 7日 (月)ちょっとストレスレススクリプト

おはようございます。本日の当番、モーションデザイナーのY.Nです。

本日の記事はSOFTIMAGE|XSI をご利用になっている方限定の内容となっております。
あらかじめご了承くださいませ。

私はどんなアプリでも、マウスを使ってコマンドメニューにアクセスするのが嫌いです。
コマンドメニューはなるべくキーボードからアクセスしたい性質です。
特に3DCGのソフトは、作業領域でのマウスの使用頻度が高いので余計にマウスを使いたくありません。
なのでキーボードからアクセスできるコマンドや操作は大抵キーボードから実行します。
また、アクセスできないものは何でもスクリプト化してショートカットに割り当てたいという衝動に駆られます。
今回はそういったコマンドの中で最近スクリプト化したものを、メモ代わりにこちらで記載しておこうと思います。

■図1
2009_1204_01_2

上図のように、見た目には方向がわかるものの、グローバルローカルどちらの座標系にも合わない方向に物を動かさないといけない…
こういう時、皆さんはどんな風にしていらっしゃいますか?

もちろん、グローバルローカル座標系でも時間をかければ動かすことはできます。
しかし上図で、
オブジェクトを動かす場合は、カメラの軸向きに沿って移動させることができれば手間が少なそうですし、
ポイントを動かす場合はポリゴン面の座標系を利用すると容易に動かせますよね。

SOFTIMAGE|XSI ではそういう場合のためにRefモードと名づけられた移動モードが用意されていて、これを使うと自分好みの座標系で物を動かすことができます。
このボタンですね。

■図2
2009_1204_02

グローバルローカル座標系のどちらかで何とかしようと思ったら何とかなるので意外と知名度が低いのですが、結構重宝することがあります。
たとえば、適当な方向を向いた棒を掴ませるために手の位置を合わせる、だとか
カメラのちょうど右上手前から左下奥に進むようオブジェクトを移動させる、など
合わせたい向きを参照できるものがある場合は時間短縮が見込めます。

そういうわけで中々便利な機能ではあるんですが、ちょっと操作が面倒です。
まず、移動モードをRefモードに切り替えるためにUIにマウスを合わせる必要があります。
次に座標系をRefモードの中でもどのタイプにするのか選択してやります。
そして最後に利用したい座標系を持っているオブジェクトをピックして初めて効果が発動します。

め、めんどくさい。やってられん。

ということでスクリプト化しました。
とりあえず今回は、Refモードの中でも最頻出(と思われる)2タイプの紹介です。
 1.カメラの軸を参照する
 2.選択しているオブジェクトもしくはコンポーネントの軸を参照する

1はvキーを押して移動モードにしてからスクリプトを実行してください。

------------------------------------------------------------
1.選択しているオブジェクトをリファレンスプレーンとして参照する

set oSelection = Application.Selection
SetTransientReferencePlane oSelection
SetUserPref siTransformRefMode, 3
<注意>
複数オブジェクト(コンポーネント)を選択している場合は最初に選択したオブジェクト(コンポーネント)の座標系を参照します。
------------------------------------------------------------
2.カメラの向きにあわせて移動や回転を行なう

SetCurrentReferencePlane "RefPlanes.View"
SetUserPref siTransformRefMode, 3
------------------------------------------------------------
3.TransformのモードをParに設定する

SetUserPref siTransformRefMode, 6
------------------------------------------------------------

3つめはおまけです。
Refモードから他モードへの切り替えをUIを通じて行なうのが面倒なので作っておきました。
3つともキーボードマッピングしておくとマウスを使う必要がなくなるのでお勧めです。

全部合わせてたったの6行…
前半ちょっと長すぎでしたかね。
まぁこれで省ける作業は、マウスでUIにアクセスする1秒に満たない時間内のことですからこんなもんでしょう。
でもそのわずかな時間のマウスの移動にストレスを感じるようであれば、一度お試しくださいませ。

follow us in feedly
result = encodeURIComponent( "http://www.accessgames-blog.com/blog/2009/12/post-1d5f.html" );document.write( "result = " , result );&media=https%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg&description=Next%20stop%3A%20Pinterest">

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

« 本を読んでいます | トップページ | アニメのススメ »

モーションデザイナー」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: ちょっとストレスレススクリプト:

« 本を読んでいます | トップページ | アニメのススメ »