background

マグネットでミラーなスクリプト。

2010年07月27日(Tue)

最近、PoserのPythonスクリプトを書いてみたりしている。以前から「これはスクリプトでできるんじゃないかなあ」と思ってたものがあって、その練習というか。

そんなわけで、Forum3Dにマグネットを鏡面コピーするスクリプトをUPしてみた。ダウンロードはフォーラムから。マグネットを左右反対側にコピーするスクリプトは既にあちこちで配付されてるんだけど、とりあえず自分の練習が主目的なので、そのへんは気にしないことにする。

とりあえず、こんな感じ。

100727-1

選択しているフィギュアまたは小道具にひっついているマグネットを反対側にコピーする。右腕についているやつは左腕に、頭や胴など真ん中のパートにひっついているやつは、パート内の反対側に。真ん中のパートの場合、マグネットゾーンが中心にあるものはコピーしない。X移動にちょっとでも数字が入っていたらコピー対象になるので注意。

当然、V4やG2シリーズみたいなマグネットフィギュアに適用すると不幸な事になる(笑)。

一回コピーした後に再度スクリプトを実行すると、以前にコピーされたマグネットを削除してからコピーを実行する。

100727-2

マグネットを追加したり編集した場合もそのままコピーできる、と。コピーされたマグネットは頭に「Mrr_」という名前がついていて、コピー実行前にその名前を判別して削除している。

100727-3

なので、スクリプトを実行するとコピー前に確認ダイアログが表示される、という感じ。

100727-4

V4とかの場合は、オリジナルのマグネットが鬼ほどカウントされるわけだ。まあこのテのフィギュアのマグネットはゼロポーズ状態では効いてないはずだから、モーフ作るだけならあんまり問題ないような気もするけど……。一応想定している主な使用用途は、マグネットフィギュアでないフィギュアの顔モーフ作成や、服フィギュアのちょっとした体型補整、FBM作成など。要するに自分にとって一番使うであろうと思われる用途である。

実を言うと、自分がどうしてもスクリプトの類いが好きになれない理由もこのへんにあったりして。要するにスクリプトっていうのは、面倒くさい手作業を省力化するのがおおもとの目的なわけだ。基本的に作者本人が使って便利なように設計されている。その「他人が作った自分仕様」を把握しないといけないのが面倒くさいんである。

スクリプトは便利ツール、喩えるならフードプロセッサーや高枝切り鋏みたいなものだから、初心者が先にフードプロセッサーに慣れると包丁の使い方も身に付かないから、というのとはまた別の話である。どちらかというと、隣の家に高枝切り鋏を借りようとしたら、柄の長さがその隣家の庭木分の長さしかなくて、しかもちょっと生暖かかったりして……みたいな心地の悪さを感じてしまうんである。だから自分が書いた物も、概ね他の人にとっては使い心地がイマイチ良くないものだろうと思っている。とはいえ、中にはそれでも需要がゼロでない可能性があるわけで。作った物を放流するのは「1は0より必ず大きい」というとある軍師様のお言葉によるものである。著作権を放棄してるものとそうでないものの違いは、クレームを受け付けるか知らんぷりするかの違いである。

まあそれはさておき。

100727-5

日本語版で小道具に対して実行したところ。マグネットの取得にマグネットベースであること、マグネットゾーンの検索にマグネットベースと同じ内部名の番号がついていることを条件にしたので、たぶんどんな名前が付いていてもカウントされる……と思う。

Zipの中にはエンコードがUTF-8のものとShift-JISのもの、二つのファイルを同梱している。P6まではShift-JIS、P7からはUTF-8になった……と思ったら、どうもUTF-8になったのはMacだけのようで、テストしてもらったWindows版Poser 7ではダイアログの文字化けが発生してしまったのだ。記憶が定かでないけど、P7が出た当初はMacもShift-JISだったような気がする、ような気がする。そのへんあやふやなので、とりあえずP7以降で日本語版を使ってる人は文字化けしない方を使ってもらえたらと思う。Mac P7EではUTF-8版もShift-JIS版も同じように動作する。

あと、フランス語版やドイツ語版を使ってる人は、自力でスクリプトのメッセージの空白になってる箇所とコメントアウトしてある言語振り分けのところを編集してもらえると、ちゃんと自国のメッセージが表示されて気持ち良いんじゃないかと思う。って、まずないと思うけど(笑)。



Comments

Windows版P7Jですが内部処理はUnicodeだけれどもOSが処理するScript自体はShift-JISで保存するというような話ではないのでしょうか?

Name
T2 #OwGBkIc2
Site
URL
Post Date
2010-07-27
Post Hour
00:00:00

Edit

( ´ー`)ノ ←需要1

需要はあるぜ。確実にあるぜ。
とにかく枝切りたいんだけど爪きりしか持ってない人間ってのもいますんでね(笑)
生暖かろうが足りなかろうが、そんなものバケツにでも乗って切ればいいじゃないの!みたいなのがね(笑)
そういうわけで有難く頂戴しました。
 
正直スクリプトは苦手でして、それは「これ何に使うんだったっけ?」というのがぞろぞろ並ぶのが耐えられないからなんです。経験値の低い人間がやりがちな(笑)
逆にピンポイントで「これが欲しい」っていうのを把握してからだと、吟味できるので、使用頻度高いものをきちんと使いこなせるようになりますね。
マグネット使いさんには大変ありがたいブツだと思います。少なくとも私感涙したし。

Name
rose #4SZw2tfw
Site
URL
Post Date
2010-07-28
Post Hour
00:00:00

Edit

わーい

>T2さん
うーん、どうもUnicodeが扱えても、ソースファイルはShift-JISしか読んでくれないんじゃないかなあ、と思うんですけども。ダイアログに渡す時もShift-JISでないといけない感じですし。とりあえず、どのみちP6とMac P7で二種類必要になるので、Windows P7Jの人には化けない方、という形で選んでもらえたらと思います。解決方法がわかったら次から対応したいと思います(笑)。
 
>roseさん
ありますかー、よかった~(笑)
というか、自分と近い使い方をする方にはあるんじゃないかなあ、と思ったりして。あと、日本語とか英語版とかゴチャゴチャしてるのがイヤな人(笑)。
とりあえず、お役に立ちましたら幸いです。
テストありがとうございました~m(_ _)m

Name
Kyotaro #NWbyPjWY
Site
URL
Post Date
2010-07-28
Post Hour
00:00:00

Edit

poserpro2012では動かないですね。
どうすればいいですか?

Name
ポンタ #-
Site
URL
Post Date
2012-05-25
Post Hour
00:52:49

Edit

>ポンタさん
ご来訪&ご連絡ありがとうございます。
拙作MirrorMagnetsスクリプトですが、私のMac版Poser Pro 2012 SR2(9.0.2.21214)では
対象がフィギュアでも小道具でも正常に動作しています。
なので残念ながら、私の方からどうすれば良いと申し上げる事はできません。

もし今後も拙作スクリプトをお使いになるため、少しの労力を払っていただけるのでしたら、
環境やバージョン、エラーメッセージの有無・内容、どんな状況でどんな操作をされたのか、
使ったのはUTF-8/Shift-JISどちらのバージョンか、他のPoserでは動作していたのか、等
何かしらの情報を頂けると、原因解明のお手伝いをできるかもしれません。

Name
Kyotaro #NWbyPjWY
Site
URL
Post Date
2012-06-16
Post Hour
01:23:07

Edit

なんとなく動作報告^^
Win版PoserPro2012 SR2.1 (9.0.2.21492)で「MirrorMagnets_UTF-8.py」は問題なく動きました。
スクリプトの一部修正や書き換え等一切なしです。

動作とはまったく関係ありませんが、Shift-JIS版のファイル名が「MirrorMagnets_Shist_JIS.py」となっていたので、こっそり直しておくとよいかも^^

それから、PoserPythonの仕様を考えると仕方ないことですが、多くのMAG-Fit製品に用いられている「複数のパーツを対象に変形可能なマグネット(magnetDeformerPropのdeformTargetをエディタで複数追加したもの)」に対して利用した場合、一般的なマグネットミラーの方法(新規マグネットを生成して、それに元マグネットのパラメータを加工コピーする)で記述されたツールは複数のdeformTargetがサポートされていないので、但し書きをつけておかないと専門知識のない人には「誤動作」しているように見えるかもしれません。(ぶっちゃけ、但し書きをつけてても「動かねー」とクレームしてくる人はいなくなりませんけどねorz @経験則)
(念のため書いておきますが、動作レポートをする際に最低限の動作環境等を書く必要性があることに変わりありません>kyotaroさん以外のみなさん)

PoserPythonがシーン内のマグネットのデータを完全コピーした複製物をシーン内に再配置することができればこういう問題は発生しないんですけどね^^;
私も「複数のパーツを対象に変形可能なマグネット」を自作&多用してるんで、何か良い方法がないか考え中です。

Name
ManiHoni #0ecWsDRU
Site
URL
Post Date
2012-07-16
Post Hour
15:01:44

Edit

ありがとうございます~

>Manihoniさん
検証ありがとうございます。Win版は動作確認が難しいので助かります。
>ファイル名
がふっ(ダメージ8) い、言われるまでまったく気付いてませんでした(汗
どこかのタイミングでこっそり直しておきます……。
複数パーツの変形については、一応Read MeにはAdd Elements to Deformに対応してないという感じで書いてあるので、それでもクレームを付けられる方に対しては、もう何を書いてもダメかなと(笑)

複数パーツのマグネットとマグネットゾーンのFalloffについては悩ましいところですね。
全パーツから変形チャンネルのマグネットの名前を見て変形元のマグネットを辿って……というようなことも考えたのですが、めんどくさくなって放棄しました。コピー用途の半分はFBMを作るときなんですが、それぐらいの数なら個別に対応かなと割り切って(あとの半分は顔モーフ)。
というわけで、Manihoniさんのスクリプトに期待です(^^

Name
Kyotaro #NWbyPjWY
Site
URL
Post Date
2012-07-17
Post Hour
09:03:37

Edit

Post Comment

管理者にだけ表示を許可する


Trackback

※このブログにトラックバックを送信する場合、お手数ですが本文中にブログ該当記事へのリンクを含めてください。

トラックバックURL:http://rutenshikai.blog63.fc2.com/tb.php/430-616694b6



Menu

Profile

Kyotaro

確定名:Kyotaro
ネタを探しているらしい。

Categories

Calendar

06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -

Comments

Archives

Track back

RSS feed

Links

Search

※2011年4月6日のサーバ障害の為、エントリのアドレスが以前のものからズレています。当Blogのエントリにリンクを張っておられた方は、お手数ですがアドレスのご確認をお願い致します。

※Internet Explorer非推奨。