メイン コーダーズルーム【スクリプト系】 AS3.0 3D表現したオブジェクトのマウス判定 | 投稿するにはまず登録を |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
yosh-tosh | Åê¹ÆNo.41556 投稿日時: 2009-2-24 16:05 |
新米 居住地: 投稿: 13
使用環境:
MacOSX Flash CS3 AS3.0 |
Re: AS3.0 3D表現したオブジェクトのマウス判定 SeeDa!!さん
ありがとうございます。 extends Sprite→スプライトクラスを継承って言い方があったんですね 汗 工夫次第でSeeDa!!さんの方法でも実現出来るってことがわかりました。 SeeDa!!さんの方法でやってみましたが、処理も断然早かったです。(オブジェクトが一回転するのに3?4秒差がありました。) コーディングや3Dモデリングに手間を掛けてでもパフォーマンスを重視するのが基本なのは重々承知ですが、トライアングルクラスにスプライトクラスを継承させた方が自分のやりたい事が他の事に気を取られずに出来る気がします。 こんなのも サンプル1・サンプル2簡単にマウスイベントが取れます。(マッピングがへたくそですが…) まだまだ処理が遅いのでスクリプトの最適化しなければならないですね。 最適化をしていて気づいた事 ・buttonModeを外したら処理がかなり早くなりました。 (一回転するのに2秒短縮) ・for文で沢山の処理をさせるより分割した方が早い。(なぜ??) ※問題が脱線しているので新しいスレッドを立てます。 Vectorクラス使えればもっと早いんだろうけど僕のCS3なんですよね?… |
benzou | Åê¹ÆNo.41553 投稿日時: 2009-2-24 11:10 |
新米 居住地: 投稿: 3
使用環境:
WinXP,Flash MX2004 MacOS 10.4,Flash MX2004 |
Re: AS3.0 3D表現したオブジェクトのマウス判定 ああああ
|
SeeDa!! | Åê¹ÆNo.41539 投稿日時: 2009-2-22 2:07 |
職人 居住地: Nagoya 投稿: 221
使用環境:
WinXP Flash CS4 au:W33SA? |
Re: AS3.0 3D表現したオブジェクトのマウス判定 yosh-toshさんが頑張ってるんで…
自分もそれらしいサンプルを練習がてら作ってみました。 3Dオブジェクトのマウス判定テスト 自分の当初の予定どおり、Spliteクラスを継承したBallクラスで描画して、それらをzソートするようにしてます。 この描画方法では重くなりすぎたので各ボールのフェースのソートには至ってません。 drawTrianglesで描いたほうが軽くなるんだろうなぁ |
yosh-tosh | Åê¹ÆNo.41537 投稿日時: 2009-2-20 20:39 |
新米 居住地: 投稿: 13
使用環境:
MacOSX Flash CS3 AS3.0 |
Re: AS3.0 3D表現したオブジェクトのマウス判定
|
yosh-tosh | Åê¹ÆNo.41535 投稿日時: 2009-2-20 18:53 |
新米 居住地: 投稿: 13
使用環境:
MacOSX Flash CS3 AS3.0 |
Re: AS3.0 3D表現したオブジェクトのマウス判定 SeeDa!!さん
できました!! 完全に御陰さまです。ありがとうございます!!! マウスヒットサンプル XYZ座標を保持する3つの頂点をグループ化してトライアングルにするクラスにextends Spriteしてトライアングル自体をaddChildしました。 そして球体に該当するトライアングルのみにマウスイベントをつけました。 トライアングル自体をaddChildする事で他のオブジェクトに隠れたときの考慮もしないで済みました。 僕のPCがロースペックのせいか、トライアングルクラスをSpriteにした時点で描画処理が少し遅くなってしまいました。(マウスイベント付けない状態でも) ポリゴンをローポリ化するなど改良が必要ですね。 他の方のPCではどう見えているでしょう??? よかったらコメントいただけるとありがたいです |
yosh-tosh | Åê¹ÆNo.41507 投稿日時: 2009-2-18 17:17 |
新米 居住地: 投稿: 13
使用環境:
MacOSX Flash CS3 AS3.0 |
Re: AS3.0 3D表現したオブジェクトのマウス判定 SeeDa!!さん
返信遅れましてすいません。 やっちまいました。。。 自分は説明が下手なので質問の内容を理解してもらう為にサンプルを作ったのですが、モデリングが容易な立方体を作ったのが、誤解を招いた原因でした。 立方体に限らず、どんな形にでも対応出来るような考え方という事を説明すべきでした。いろいろ考えてくださっていたのにすいませんでした。 出来る限り、シチュエーションによって作業方法を変えるという事はしたくありませんで、マウスの判定を作る為のクラスや関数をつくり、汎用化して作業の効率化を計れるようにしたいのでした。 引用: 箱の中の球の場合は前面を向いている時だけ表示するとか… 逆に裏を向いている時に隠すとか… オブジェクトがうしろを向いている時とか他のオブジェクトに隠れている時などにマウスの判定をするか否かの考慮も必要ですね。 先にリンクを貼ったeco the zooはこの用になってました。↓ 返信を書いていて思ったんですがeco the zooの場合、三角形2つからなるパネルを用意して、そこにキャラクターのpng画像を読み込み、SeeDa!!さんの提案して下さった三角形自体にマウスのイベントを付けているのかも知れないですね。 この方法でちょっと検証してみます。 説明下手でご迷惑お掛けした事お詫びします。 |
SeeDa!! | Åê¹ÆNo.41495 投稿日時: 2009-2-18 2:05 |
職人 居住地: Nagoya 投稿: 221
使用環境:
WinXP Flash CS4 au:W33SA? |
Re: AS3.0 3D表現したオブジェクトのマウス判定 追記:
立方体に球は、側面4つと奥面、それに球と、6つのオブジェクトに分解すればzソートを使えます。 球が2つは、収束点が2つある形で描いているなら、接合面が口の開いた球にすれば、2つのオブジェクトにしてzソートすればいけそうです。 複雑な形であればあるほど、部品毎にグループ化すればzソートしやすくなります。 |
SeeDa!! | Åê¹ÆNo.41494 投稿日時: 2009-2-18 1:55 |
職人 居住地: Nagoya 投稿: 221
使用環境:
WinXP Flash CS4 au:W33SA? |
Re: AS3.0 3D表現したオブジェクトのマウス判定 引用:
立方体が2つだといったのに、ややこしい形にした奴が居るんですよぉ? なぁに?、やっちまったなぁ 引用: バウンディングボックスを作るというのはどうでしょうか? 常に動いてるなら四角でも問題ないかもしれません。 球だったら常時正面を向いた平面の丸をヒットエリアとして前面に置くっていうのはどうでしょう? 箱の中の球の場合は前面を向いている時だけ表示するとか… 逆に裏を向いている時に隠すとか… |
yosh-tosh | Åê¹ÆNo.41491 投稿日時: 2009-2-17 23:28 |
新米 居住地: 投稿: 13
使用環境:
MacOSX Flash CS3 AS3.0 |
Re: AS3.0 3D表現したオブジェクトのマウス判定 SeeDa!!さん
助言ありがとうございます。 SeeDa!!さんの言う通り、2つのオブジェクトを分割すれば、イベントを受け取るのは簡単ですね。 しかし、オブジェクト単位のZソートでは下のリンクの様な表現をしたいので難しいですね。 1.箱の中のボール 2.繋がったボール 三角の頂点座標を参照してラインを繋げるではなく、三角自体をaddChild()して全てにイベントを設定するか、平面投影したXYをつかってマウスのヒットエリアを作るか…かなりウロコです!! でも、前者だと立方体ならまだしも、球体だともの凄い数のイベントを付ける事になりますね。 ヒットエリアを作成する方が現実的な感じがします。 バウンディングボックスを作るというのはどうでしょうか? 頂点の一番高い所と低い所、一番左にある所と右にある所を毎フレーム取得する。 なんかイメージが湧いてきました SeeDa!!さんありがとうございました。 |
SeeDa!! | Åê¹ÆNo.41479 投稿日時: 2009-2-16 21:30 |
職人 居住地: Nagoya 投稿: 221
使用環境:
WinXP Flash CS4 au:W33SA? |
Re: AS3.0 3D表現したオブジェクトのマウス判定 まず立方体ありきで、それぞれの立方体が独立したオブジェクトになっていないというのは、もっともマウスイベントを拾いにくい形かと…
まず2つの立方体を2つのオブジェクトにすることをお勧めします。それが出来れば3つ4つと存在しても簡単に対応できます。 そうしておけば、結果的にZソートも用意になります。 ただ今回のご質問「今の形を崩さないで」ということなら、三角の面のひとつひとつにマウスイベントを与えては如何でしょう? もしくはもう少し面倒になりますが、平面に投影した時のXY座標を拾って、マウスのヒットエリアを平面に描くことができるかもしれません。 推測の解答でゴメンナサイ |
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |