« XSI男忘年会(略称)2011 終了しますた。 | トップページ | May the Legacy Forces be with you。 »

2011年12月26日 (月)

ICEな抽選シーンあり〼。

先日の XSI男忘年会(略称)で抽選に使った ICE シーンを、ダウンロードできるようにしますた。


ダウンロード XSIManParty2011_Chusen.zip (347.9K) 


XSI 2012 のシーンファイル1個です。


実は、厳密に言うと忘年会当日にシミュレーションを実行したシーンそのものではありません。 そのシーンを整理したのがこのシーンです。

不要なオブジェクトを削除したり、分かりやすいように名前を付けたり、あとは ICETree の中でちゃんと仕事をしてない部分があったのでそれを取っ払ったり、コメント付けたり、そういう感じです。 

なのでまあ、本質的には何も変わっていません。



先日貼っ付けた動画を、もう一度貼っ付けておきますね。







すげえ大ざっぱには、以下のようなオブジェクトで出来ています。

Sche


シーン中に、ICETree は3つあります。




ひとつは、PC という名前の PointCloud です。 

Chusen_icetree1

クリックするとでかい画像。



上部にあるエミッタからパーティクルが発射されます。参加者の人数を手で入力します。これが Rate になっているのですが、 Total Number にしてあるので、その数のパーティクルが最初にドバッと発生して、以後は発生しません。

壁や XSI 男の生首などの仕掛けに衝突するのは、Simulate Rigid Bodies ノードの中のコリジョンを使っています。

このコリジョン生首や壁などの配置およびアニメーションがけっこう重要でしてね。 というのは、何もしないと、当然ですが、出口付近にパーティクルが殺到してしまうのです。 そして渋滞を起こし、渋滞と言うより便秘になってしまい、パーティクルが完全に動かなくなってしまうのです。

Sattou

なので、生首や壁を置いてかき回し、パーティクルがなるべくバラけたタイミングで出口に到達するように調整しました。  それでもどうしても溜まってしまうので、一部の生首は回転もさせますし、ポジションも動かします。 ポジション動かさないとダメですね。 すくうように、あるいは押すようにパーティクルをかき回さないと、どうしても便秘を解消できない感じがありました。

これらの生首コリジョンの動きも ICE 制御にすれば良かったんですけどねえ。 でもシーン作り始めたのが前の晩ですからね、しかも ICE Kine とかやったこと無いし、そこまでやってたら絶対に間に合わないと判断しまして、Fカーブや Expression で動かすことにしてしまいました。






こうしてある程度かき回されたパーティクルはやがて左下の 「当たりゾーン」 に行くわけですが、パーティクルの pos X が -50 よりも小さくなったら当たりゾーンに入ったとみなして、パーティクルの形状を XSI 男に変化させ、かつ顔がこちらを向くように向きを強制的にセットし、数を数えるために独自アトリビュートを加算します。

この独自アトリビュートへの加算のツリー部分が、ガルさんに質問して教えてもらった部分なのですが、なぜこのようなツリーになるのかまだ今ひとつわかっていません。 今後のカンニングのためには非常に使えそうなツリーですが、仕組みをもうちっとスッキリ理解しておきたいものですねえ。 やはり、ポイントは Array だな。 Array を制す者は ICE を制す、と死んだばあちゃんが言っていたんですよ。 当時はよく分からなかった俺ですが、今ならその重要性がわかります。 ごめんな、ばあちゃん。 ← 仕組みを分かってないと広言している俺が言うと説得力ミニマム



今回はパーティクル座標で判定するという安易な方法でやってしまいましたが、本当はそうではなく、ピンボールのスイッチのように、コリジョン自体でスイッチが入るような仕組みにできると面白いんですけどねえ。 今ある ICE ノードとアトリビュートでも出来そうな気がするんですが・・・・。 誰かそういうコリジョン判定ツールキットのような、ライブラリ的に使えるコンパウンド集みたいのを出してくれませんかねえ。 そしたら、非ICE のリジッドボディを使って作ろうとして挫折したピンボールゲームが、ICE で作れそうな気がする。








次に、Wall というオブジェクトに ICETree があります。

こいつが、当たりゾーンに入った数を検知して閉まるという、シャッターです。

Chusen_icetree2

クリックするとでかい画像。



先ほどセットした独自アトリビュートの ATARI をゲットしてくるのですが、この ATARI の数値をそのまんまツリーで使えないのは何故なのか、俺はよく分かっていません。 やはりガルさんに教えてもらってこのような Array を使ったツリーになったのですが、Array を制してないので ICE を制してない俺には、なにやらよく分からないのです。 ごめんな、ばあちゃん。 違った。 ごめんなさいガルさん。



ともかく今は、こういう場合でつまずいたら、こんなツリーにすればできるかも、と丸暗記しておくことにします。 いつか理解してやる。



で、ATARI の数値が手打ち入力した景品の数に達したかどうかを判定し、達していたら抽選終了ですので、シャッターを閉じて、それ以上パーティクルが当たりゾーンに入れなくします。 同時に、TheEnd という独自アトリビュートに True をセットします(後で使います)。



このシャッターなんですが、ATARI が景品の数とイコールになった瞬間に入り口を閉ざすので、その時のパーティクルの微妙な位置具合によっては、シャッターオブジェクトとのコリジョンによって、上流方向に戻されてしまうわけですよ。 なので、最後の1個がなかなか入れてもらえないという現象が起こります。 殺到してくるパーティクルに、何度も何度もギロチンのように振りかざし続けられます。 このシャッターとのコリジョンで、パーティクルがたまたま当たりゾーン方向に弾かれると、やっと終了になります。 たぶんこの現象が起きますからやってみて下さいな。 上の動画でも、そうなってますね。


最初はこれがひどくてですね、最後の1個が永遠に入れないのではないかという感じだったんですよ。 なので、シャッターの先に、少し薄めの補助コリジョンオブジェクトを装着しました。 パーティクルが当たりゾーン側に弾かれ易くしたつもりなのです。 これでいくらか改善したような気がしたので、それでよしとしました。


思うに、ATARI の数が景品の数に達したら、すぐにシャッターが降りるのではなく、例えば 2フレ後にシャッターが降りるとかにすれば良かったのではないかと思います。 っていうか、それをやろうとして色々やってみたのですが、俺の力ではそういうツリーを組めず、あきらめました。 なにせ忘年会の前の晩に急遽作り始めた ICE ですから、にわか仕込みの俺には無理ですた orz




ということで識者のお方に質問。 

あるアトリビュートの状態を判断して、条件が満たされた時に、「その2フレ後」 など、任意の時間が経過した後に何かアクションを起こすには、どういうツリーを組めばいいでしょうか?  アドバイス下さい m(_ _)m  #ICEドリル




ともかく、最後の1個がなかなか入らないという問題は、補助コリジョンオブジェクトによって少しだけ改善されはしたものの、基本的には放置されました。 しかし、当日シミュレーション用のノートPCを提供してくれ、かつ前夜からこのシーンの動作確認に協力してくれたマルプラさんがこのギロチンシャッターの挙動をえらく気に入ってくれて、結局そのまま残そうという話になったのでした。 狂ったような勢いで無慈悲に振り降ろされ続けるシャッター。 次々に玉砕して戻されるパーティクルたち。 マルプラさんにとっては、サディスティックな愉悦だったようです。



シャッターオブジェクトのギロチン降下は、PointPosition に数値を足して、ジオメトリの位置全体を下に動かしているだけです。 最初自分でやった時はなぜか上手くいかず、ガルさんに聞いたら同じようなツリーで答えてくれて、もう一回やったら上手く行ったという。 ま、俺は単に何かやらかしていたんでしょうねえ。 ガルさん、本当に助かりますよいつも。


あとは、もう1箇所の ICETree である 「抽選終了」 の文字の表示判定のために、TheEnd という独自アトリビュートをセットしています。 でも本当は、この TheEnd は要りません。 なぜなら TheEnd が True になる条件は ATARI の数が景品の数に並ぶことであり、その判定はすでに1回済んでいるからです。 でも、その後、他のオブジェクト多数に ICETree を組んで何かやらせようとした場合、全部の ICETree で ATARI をゲットして Build Array from Set して・・・・とやるのは面倒だと思い(コピペはできるものの、見た目に煩雑になる)、単純に True か False をセットしておいて、以降はそれをゲットした方が楽かな、と思っただけです。 最終的には 「抽選終了」 の文字の ICETree 1箇所でしか使わなかったんですけどね。





で、その、「抽選終了」 の ICETree です。

Chusen_icetree3

文字オブジェクトは、ただのポリゴンメッシュですね。

で、先ほどの TheEnd が True か False かを読み取り、False だったら PointPosition に 0,0,0 をセットしています。 つまりこのオブジェクトの全頂点がワールド原点にコラップスした状態になり、ビューポート上では見えなくなったということです。 True になると、元の PointPosition がセットされるので、ちゃんと 「抽選終了」 と読める状態になります。





以上。








なんつうか、もうちょっと凝った感じにしたいですね。 アクロバティックな仕掛けにしたかった。 ピラゴラスイッチ的な。


そのためには、まずはコリジョン判定が Actual Shape になってくれないとダメですね。 これは 2012 SAP 以降の Simulate Bullet Physics ノードでできるんでしたっけ? あるいは Momentum? 


あるいは、液体だとか、クッションのような柔らかいものなども仕掛けに入れられれば、もっと面白いですよね。 そうなると、Lagoa か?


リジッドボディ的コンストレインも極めねばならないでしょう。 ヒンジとか、ボールジョイントとか。 こういうのが無いと、ピタゴラスイッチにはなりませんね。



あとは、風とか使いたいんですよね。 普通に ICE の風はありますけど、この範囲でだけ吹いている風、などということをやろうとすると、自分でそういう ICETree 組まないといけないですよね?  昔のパーティクルや、現在もまだ残る非ICE なリジッドボディシステムにあるような、Vortex とか Eddy とか Fan のような、アイコンでインタラクティブに影響範囲を決められるような Force って、まだ ICE には無いですよね?  これ、すごく需要があると思うけどなあ。 っていうか、できる人はササッと作っちゃうのかな。 そういうのを作ってコンパウンドとして配布している人、いないかな・・・・。



いつかそういうのを提供できる側になりたいと強く思います。 ええ。 死んだばあちゃんのためにも。





まあともかく。
抽選システム作り、デキはともかく、すんげえ楽しかったです。




前夜の実験から当日まで全工程で協力してくれたマルプラさん、
いつものように教えてくれたガルさん、
景品係をやってくれた msk さん、
景品を提供してくれた嘔吐デスクのW辺様、
そして盛り上げてくれた参加者の皆様、
ありがとうございました (゚∀゚)








.

|

« XSI男忘年会(略称)2011 終了しますた。 | トップページ | May the Legacy Forces be with you。 »

コメント

諸々お疲れ様です。

条件が満たされた時に、>StartTimer
任意の時間が経過した後に何かアクション >TestTimer

でどうでしょう?

投稿: msk | 2011年12月27日 (火) 00時16分

お疲れさまでございました。

非ICE なリジッドボディシステムにあるような、Vortex とか Eddy とか Fan のような

それらForceの多くが、ICE Treeにドラッグするとそのまま入っちゃいます。全部試したわけじゃないし、パラメータが一致しているか使えるかの確認はしていませんが。

投稿: m4g | 2011年12月27日 (火) 09時32分

>条件が満たされた時に、>StartTimer
>任意の時間が経過した後に何かアクション >TestTimer

な、なんですとー

そういうものがあるんなら、最初から教えて下さいよ
っていうか実験済みシーン下さい

俺にやれって?
はい、やりますよ。
実験担当通ります。
だぁしぁりあす。

投稿: junki | 2011年12月27日 (火) 09時52分

>非ICE なリジッドボディシステムにあるような、Vortex とか Eddy とか Fan のような
>それらForceの多くが、ICE Treeにドラッグするとそのまま入っちゃいます。
>全部試したわけじゃないし、パラメータが一致しているか使えるかの確認はしていませんが。

な、なんですとー

そういうことができるんなら、最初から教えて下さいよ
っていうか実験済みシーン下さい
っていうかマニュアルに書いてあるの?
俺、マニュアル読まなさ杉?

実験はやっぱり俺がやるべきですね?
はい、やりますよ。
実験担当通ります。
だぁしぁりあす。

投稿: junki | 2011年12月27日 (火) 09時55分

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: ICEな抽選シーンあり〼。:

« XSI男忘年会(略称)2011 終了しますた。 | トップページ | May the Legacy Forces be with you。 »