ソラマメブログ
QRコード
QRCODE
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 2人
オーナーへメッセージ

2007年10月13日

マンボウ製作裏話

マンボウを発売したが、実は最後の最後で大慌てをする事になった。
その辺の事情を書いておこうと思う。

マンボウでは、どうしてもSculptedのアニメーションを試したかった。
最初は常時背ビレと腹ビレを動かしておくつもりだった。
ところが、実際に動きを見ると、動いているのか動いていないのか、横から見たのでは判然としない。
「う~ん。。。苦労して動かしても、全然効果的では無いな~・・・」と言うのが本音であった。むしろパフォーマンスが悪くなるのでは?とさえ思えてきた。
そこで、最終的には移動中はヒレを動かさず、目的地へ着いたときに泡を出させるので、その時だけヒレを動かすようにした。
この方がまだヒレの動きが分かりやすい。

ちなみにヒレの動きだが、これも何枚かで段階的に動かす方法も考えたが、タイマーイベントで張り替える関係上、増やしても滑らかにはならない。逆に少し大きく傾けた物2枚を交互に張り替えた方が効果的であった。
だから、中央部分の静止状態1枚と、右に傾けた1枚と左に傾けた1枚の3枚だけにした。そして、ヒレの動き自体は左右に傾けた2枚だけを交互に入れ替えて動かしている。

ここまでが決まって、さあ販売しようと思い、分身に渡して動かさせてみた。。。が、ここで大問題が発生してしまった。
な・なんと!分身に渡したものは、球状になったままマンボウの形にならないのだ。なんと情けない姿か・・・唖然!

マンボウ製作裏話
自分で動かしても、最初の入れ替え時だけは球状になる場合もあるのだが、すぐに安定して問題が無くなる。
しかし、分身のマンボウはずーっと球状のままで元に戻らない。

大慌てで店の方に置いた見本等を外して、再度原因解明に乗り出す羽目になった。正直一時は販売を延期するか、Sculptedのアニメーション機能を外して販売するか?と真剣に悩んだ。
が、そこで何時もの「神様・仏様・Miz様」と言う事で、Mizさんの関数説明を見直すことにした。
それで一気に問題は解決した。

今回の原因は以下の事から発生していた。
まず、張り替え用のSculptedテクスチャは、マンボウ本体のコンテンツの中に3枚入れておき、スクリプトからllGetInventoryKeyでUUIDを読み込んで、それを
llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT,(string)UUID , PRIM_SCULPT_TYPE_SPHERE] );
と言う形式で設定してテクスチャの入れ替えを行っていたのだった。これはテスト段階も含めて、色々と調整も行うので、その度にスクリプト内を修正するより、コンテンツの中身だけ入れ替えた方が簡単だからだった。

ところが、このllGetInventoryKeyと言うのは制約事項があり、UUIDを取得するには、対象となるコンテンツのアイテムに対して、オーナーがModify/Copy/Transfer権限を持っていないと、戻り値がNULLになってしまうのだそうだ。
販売物だから、当然No Modify,No Copyになっている。だから分身に渡すとテクスチャを読み込めず、球状になってしまっていたのだった。

で、どうするか?しばし考えて試した事は、3枚のテクスチャのUUIDを以前に調べていたので、それを直でスクリプト内に記述して使ってみた。すると、今度は問題無く動いてくれたのだった。
これで何とか販売は予定通りに行えるようになったが、一時は本当に冷や汗物だった。

後、これは前にも書いたが、Sculptedテクスチャを連続して貼りかえるような使い方をすると、形状が安定しなくておかしな状態になる。張替えと張替えの間には、0.2秒でも良いので、少し間を取ってやると安定する。マンボウでは間をllSleep(0.5)で区切って使っている。別に0.5秒で無くても良い。マンボウは比較的動きが鈍い魚なので、少し多めにインターバルを空けている。それでも意外と違和感も無くヒレが左右に動いている感じだ。

恐らく高速で動かしたい場合は適さないと思う。張替えが内部的に追いつかなくなると思うので、比較的ゆったりとした動きのものであれば、効果的では無いか?と感じている。
その意味では、将来的にはマンタの両翼もSculptedのアニメーションで対応できるかもしれない。そうなればマンタのサイズ変更機能も簡単に実現できるようになる。(今でもできるのだが、リンクプリムの調整がちょっと面倒なので・・・)

Sculptedのアニメーションに関しては、まだまだ未知の部分も多い。最近ようやくその手の製品が出始めた所である。これから色々と研究されて、面白いアイデアも出てくると思う。
次はサメで試してみたいと思う。上手く使えれば、やはり面白い機能だと思う。


同じカテゴリー(スクリプトのお勉強メモ)の記事画像
llDetectedTouchST
llAddToLandPassList
【注意】Bulk Permissions機能は使っては駄目!
HTTP-INを使ってみた。
オブジェクトへの指示
ペットを作るには(6)
同じカテゴリー(スクリプトのお勉強メモ)の記事
 llDetectedTouchST (2009-07-24 14:05)
 llAddToLandPassList (2009-07-24 10:23)
 【注意】Bulk Permissions機能は使っては駄目! (2009-07-21 12:15)
 HTTP-INを使ってみた。 (2009-07-19 14:51)
 オブジェクトへの指示 (2008-10-22 12:42)
 ペットを作るには(6) (2008-09-25 10:38)
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。