2010年04月10日

ジョイントパラメータ

ジョイントエディタ (連結パラメータ編集) で編集可能なジョイントパラメータについて、改めて纏めてみました。独自に調査したもので、もしかしたら誤っているかも知れません。

ジョイントエディタ

中心点 (origin)
ボーンの回転の中心であり、蝶番とも言える位置です。セットアップルームでは四角錐の底面として表示されます。


終了点 (endPoint)
ボーンの先端部分であり、(通常は) チャイルドボーンの中心点となる位置です。セットアップルームでは四角錐の先端として表示されます。

既にチャイルドボーンが作成されている場合には、何故か数値は表示されません。「▼中心」が「▼center」に化ける時には灰色の網掛けで表示されるようですが…。

マウス操作でチャイルドボーンを描いて作成したり移動したりした時には、チャイルドボーンの中心点と同じになるよう、逆にこの終了点の方が自動的に更新されます。


方向 (orientation)
この設定値の単位は、度 (degree) です。

デフォルトでは、オブジェクト座標 (ローカル座標) はワールド座標 (グローバル座標) に一致していますが、この設定によりオブジェクト座標の座標軸を傾けることが出来ます。

座標軸はx軸回転→y軸回転→z軸回転の順に回転されます。これはジョイントエディタで、上からx方向、y方向、z方向と並べられている順番と同じですね。オイラー角表現でいうと x-y-z です。

Eastern Dragon の時は、頭〜尻尾まで全て0度か90度という区切りの良い数値でしたので、ボーンの回転順序の違い程度にしか思っていませんでした。

整列ボタンを押すと、ボーンというベクトルから自動的にオイラー角が求められて設定されます。この算出アルゴリズムは良く判りません。


ジョイントの順序
ボーンの回転順序 (屈伸・横屈伸・軸回転) を指定します。例えば YZX を指定した場合、y-z-x の順に回転されます。これを変更すると、整列ボタンでの計算結果も変わってきます。


posted by foilskin at 09:22 | comment (0) | _technical_note_ | 更新情報をチェックする

2010年02月22日

system info

この PoserPython スクリプトを実行しますと、OS や Poser のバージョン情報などが表示されます。

sys_info.py.lzh (319Bytes)

各ツールの動作報告をして下さる方は、最低限、この表示結果をコピペして教えて戴けますと幸いです。

ちなみに私の環境では、下記のような結果になります。
--- begin ---
Poser: 7.0.1 .108
Python: 2.4.2 (#67, Mar 15 2007, 11:16:05) [MSC v.1400 32 bit (Intel)]
Lang: 4
en: 1
ja: 4
locale: ('ja_JP', 'cp932')
Windows: (5, 0, 2195, 2, 'Service Pack 4')
platform: Windows-2000-5.0.2195
--- end ---


これで OS や Poser が日本語版か否か、各々判ると思います。

いや、日本人が英語版を使うことはあっても、英語で話し掛けてくる人が日本語版を使っている筈がないですね(笑)。
posted by foilskin at 22:18 | comment (0) | _technical_note_ | 更新情報をチェックする

2009年05月03日

スクリプトの漢字コード

最近、英語で問合せが来たりするので、ダイアログのバイリンガル化のために実験してみました。

Python スクリプトのファイル先頭1行目か2行目に、
# -*- coding: shift_jis -*-
というような行を書いておくと、このスクリプトファイルがどのような文字コードでエンコードされているかを明示することが出来ます。

上記の書式が推奨されているとは思いますが、coding: または coding= に続いて、いつくかのスペースか TAB で区切っても良し、その後に文字コード名を書くというのでも OK のようです。

ちなみに1行目でも2行目でも良いというのは、
#!/usr/bin/python
# -*- coding: utf-8 -*-
というように、unix では1行目でこのスクリプトを解釈させるインタープリタを関連付けするからです。Windows では意味がありませんが、でも何故か PoserPython 専用であるはずの Runtime/Python/poserScripts/ 配下のスクリプトには、そういう指定のものがあったりします。もしかして MacOS X 版の Poser で、標準の Python に食わせたり出来るのでしょうか???

Python において日本語の使える文字コードは、大きく分けて
・JIS (例:iso2022_jp)
・シフトJIS関連 (例:shift_jis, cp932)
・日本語EUC (例:euc_jp)
・UTFシリーズ (例:utf-8)
の4つがあります。それぞれに派生バージョンがあるようです。

ここからは PoserPython に限った話になります。どのエンコーディングが使えるのか、ダイアログとメッセージ出力とで試してみました。

文字コード名エンコーディング指定
有り無し
iso2022_jp 文字化け文字化け
shift_jis OKOK だが warning
euc_jp 文字化け文字化け+warning
utf-8 (BOM無し) 文字化け文字化け+warning
utf-8 (BOM付き) 文字化け文字化け

むむっ、シフトJISしか使えないようです。

ちなみに BOM (Byte Order Mark) というのは、本来 UTF-16 などでエンディアンを示すものだったらしいのですが、いくつもある UTF の形式のどれなのかを示す識別子としても使われるようになったもので、Windows のメモ帳で UTF-8 として保存した時に、ファイルの先頭に EF BB BF という3バイトが勝手に付加されるアレです。

文字コード名の綴りを間違えたり、実際のエンコーディングと食い違っていたりすると、容赦なく Poser がスパッと終了したりフリーズしたりしますので、お気を付け下さい。素直に拒絶できる Poser はいいなぁ(笑)。

今回の実験に使用した版数
・Poser 7J SR1 (7.0.1.108) Windows 版
・PoserPython 2.4.2
posted by foilskin at 21:45 | comment (0) | _technical_note_ | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。