Flash8 Professionalを使用して坂を転がるボールの動きを作りたい

このQ&Aのポイント
  • Flash8 Professionalを使用して、Windows XP環境で坂を転がるボールの動きを作りたいと考えています。
  • 直線の坂を転がるボールの動きは既に参考サイトを利用して作成することができました。
  • しかし、緩やかなカーブの坂を作成し、ボールがその坂に沿って転がるようにする方法について悩んでいます。三平方の定理を使用して円の内側にボールを転がすことはできるが、ボールが円の外に出ることができないため、円ではなく弧だけの状態の坂を作りたいと考えています。直線の坂と同様に、弧の始点と終点の座標を定義し、ベクトルと法線を求めて反射処理を設定する方法があれば教えてください。
回答を見る
  • ベストアンサー

ボールが坂を転がる動きを作りたいのですが

使用環境はWindows XP、Flash8 Professionalです。 坂を転がるボールの動きを作りたくてベクトル等の数学の勉強を しながらFlashで作っていますが、直線の坂を転がるボールの動きは こちらhttp://hakuhin.hp.infoseek.co.jp/main/as/collide.htmlの サイトを参考にさせて頂き作る事が出来ました。 今、悩んでいる事は、坂が直線ではなく緩やかな弧を描いたカーブ状の 坂で、ボールもその緩やかなカーブの坂に沿って転がるようにしたい のですが、思うように出来ずに困っています。 三平方の定理を使い、円の中にボールを入れて転がす事は出来るの ですが、円の中だけでは円の外へボールが出せず他の地形と併用 出来ないので、円ではなく弧だけの状態の坂を作りたいのです。 直線始点(x,y)終点(x,y)のように、弧も始点と終点の座標を定義して ベクトルと法線を求めて反射処理を設定したいのですが、良い解決法 があればご教授ください。つたない文章で分かりにくいかもしれませ んがよろしくお願いします。

  • Flash
  • 回答数5
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • moppe_77
  • ベストアンサー率28% (4/14)
回答No.5

こんにちは。 普段はWebデザイン中心で、ゲームは殆ど作らないので、もっと 適切な方法があるのかもしれません。 あと、現在Flashに触れられる状況でないのですが、こういうことは 是非作ったみたいと思います。少しお時間をいただきますが、2月い っぱいまで、ここの質問を締め切らないでいただければ、私もやって みたいと思います。他の方の回答もあるかもしれません・  締め切られていましたら、質問文のHPの掲示板にでも書き込んでお きます。1月くらい先になりますが、それでもよろしければ・・・・

milk123
質問者

補足

こんにちはmoppe_77さん。 あれから試行錯誤しましたが、半分ぐらいまでは成功しました! 大きな円内で定めた始点Aと終点Bの下半円の円弧で転がり、設定した y座標をボールが超えると円内から脱出する事に成功しました。 しかしながら円内から脱出し円の外で再び設定したy座標より下へ降り た場合、ボールが強制的に円弧内へ戻されるという変な動きをどう するか現在試行錯誤中です。三平方の定理で円の内側からも外側からも 両方から判定を取る事は以前試作した段階で成功していますので外側 から円弧に当たった時も同じように設定してやれば出来ると思ったの ですが最初の内側からの三平方の定理が生きたままのようでこれをどう してやるか現在も試行錯誤中です。ですが円を飛び出すという最初の 問題は突破する事が出来ました。まだ未完ですしmoppe_77さんもflash をお使いになれる環境ではなくこの方法を試作されたいとおっしゃって くださいましたし私の試作した物よりきっとmoppe_77さんの考えられて る方法の方が適切な方法だと思いますので締め切らずにこのまま置い ておきますね。すごい参考になり嬉しいです。ありがとうございます!

その他の回答 (4)

  • moppe_77
  • ベストアンサー率28% (4/14)
回答No.4

すいません。訂正です。 訂正前 AC=r AO=R OP = Y1より、      Y2 = CQ = r*Y1/R となります。 訂正後 AC=r AO=R OP = Y1より、      Y2 = OP - CQ = Y1 - r*Y1/R となります。

milk123
質問者

補足

こんばんはmoppe_77さん。ありがとうございます。 素晴らしいです。先程家に帰ってきてざざっと読ませて もらい、紙に図を書いて確認したらいけそうな気がしてきました。 まだASを書いて試してませんが今から試してみます! もし上手く動作しなかった時は私のAS記述に問題があるのかも しれません。。。自分でも頑張って試行錯誤してみますが moppe_77さんのせっかくの素晴らしいご提案が水の泡にならないよう これらの式をASファイルに記述する留意点等をお時間ありましたら ご教授願えたら嬉しいです。

  • moppe_77
  • ベストアンサー率28% (4/14)
回答No.3

>三平方の定理でボールを大きな円の中に >入れてバウンドさせると惰力を失い始めた頃に円の曲線に沿って滑る >という良い動きをしますがこの場合は円の外へ抜け出せないのが問題 >で何とか弧だけの状態を作れないかと思っています。 円の外に抜け出す方法になるかわかりませんが、 ある高さを超えた場合に三平方の定理による判別 をやめるという方法は次の方法でどうでしょうか? 大きな円の中心座標O(a,b)、半径R ボールの半径r 中心C(m,n) 弧(左A→B右)の   始点A(x1,y1)   終点B(x2,y2) とします。 簡単のため、y1=y2,a=b=0のときを考えます。 (1)y1=y2=Y1とします。 このとき、弧はY1よりも低い位置にあることは分かりますか? (円周内部に沿って転がることを前提にしています。) y座標の高さの順番は、 (2)         0>Y1>円弧                   ですね。 次に、ボールが時計周りに円周をすすんでいるもの と考えます。 当然、ボールは始点Aに向かっていますね? (3)さて、時間がすすんでボールが一番限界の位置、 つまり始点Aと接している場合になりました。この ときのボールのy座標をY2とします。 三平方の定理だけの判定の場合、ボールy座標がY2 より高いとき、つまり円弧に接していないときでも 判定し続けるために、大きな円から抜け出せないの ではないかと思います。 そこで、ボールのy座標がY2よりも高くなった時に、 円周内部に沿って転がす条件が偽になるように条件 分岐させればいいものと思います。 そこでY2を求めます。 さらに、P(0,Y1),Q(m,Y1)としたとき、 △AOPと△ACQは相似であることが分かります。 相似比より、       AC:AO = CQ:OP AC=r AO=R OP = Y1より、      Y2 = CQ = r*Y1/R となります。 0>Y1>Y2>円弧 が円弧に接している時です。 0>Y1=Y2>円弧 が限界の位置です。 0>Y2>Y1>円弧 が円弧から離れた場合です。 このY2値よりもボールのy座標が高くなったときに、 円周を沿う条件分岐を偽にすればうまく ・・・・・・いくと思います。 申し訳ないのですが、Flashが使える環境にありませ んので、なんともいえません。間違っていましたら ご容赦くださいませ。

  • moppe_77
  • ベストアンサー率28% (4/14)
回答No.2

こんばんは、milk123さん。 申し訳ありませんが、補足からはどういったアニメーションで あるか解りかねます。私の想像していたアニメーションは、 1螺旋階段をすべり下りるボールのアニメーション、 2空洞の半球内部でボールを転がすアニメーション ですが、いかがでしょうか?

milk123
質問者

補足

moppe_77さんこんばんは。 つたない説明文でお分かりづらかったようですみませんでした。 空洞の半球内部でボールを転がすアニメーションが一番したい事です。 半球内部で転がり、円の外へも自由に出入りする事が出来るボールの アクションを求めています。螺旋階段をすべり下りるアニメーションも 私が作ろうと思っている物にとっては大変意義がある事なのでそちらも ぜひ参考にさせて頂きたいと思っております。 要はステージ内に半円状の障害物や直線状の障害物を設置して ボールを転がすflashを作りたいのです。 説明不足で大変ご迷惑をおかけしましたがよろしくお願い致します。

  • moppe_77
  • ベストアンサー率28% (4/14)
回答No.1

螺旋運動(x,y,zの3方向)をさせて、部分的に再現してみてはどうですか? 水平方向と鉛直方向の運動に分けて、  水平方向:円運動  垂直方向:落下運動 ええと、想像だけで実際にスクリプトを書いてみなければわかりま せんが・・・・(本当ならばASファイルでもお作りしてもよかったの ですが、仕事の都合で一時的にLinuxを使っているもので・・・・) FLASHに限らず、アニメーションを作る際には、物理なんかの参考書を 1冊もっていると参考になりますよ? というわけで、ヒントになれば幸いです。。

milk123
質問者

補足

moppe_77さん、回答ありがとうございます。 螺旋運動で部分的に再現ですか。思いつかなかった方法です。 ちなみにボール自身には重力・空気抵抗・反発係数を設定しており ドラッグ可能で離すと普通のボールのようにステージ内を跳ね回る ようにはしてあります。物理の参考書も1冊買って読んではみたんです が曲線のベクトルの方法が載ってないようで四苦八苦していました。 その螺旋運動の方法では曲線に沿ってボールを滑らせる事は可能だと 思いますが、曲線にボールが当たった時は跳ね返るようにしたいのです が可能なのでしょうか?三平方の定理でボールを大きな円の中に 入れてバウンドさせると惰力を失い始めた頃に円の曲線に沿って滑る という良い動きをしますがこの場合は円の外へ抜け出せないのが問題 で何とか弧だけの状態を作れないかと思っています。 もしお時間がありましたらその螺旋運動を参考にさせて頂きたいので ソースを書いて頂けましたら幸いです。お忙しい中に回答頂き ありがとうございました^^

関連するQ&A

  • 法線ベクトルの基礎中の基礎

    度々お世話になります。 直線のベクトル方程式とその法線ベクトルの関係で、 「直線ax+by+c=0において、n↑=(a,b)はその法線ベクトルである」との事ですが、このn↑=(a,b)というのは、成分表示ですから、n↑の始点を原点Oに取って、その終点の座標が(a,b)である、という捉えで良いのでしょうか。 例えば、次の基本的な問題 問 「二直線x+√(3)y-1=0…(1)、x-√(3)y+4=0…(2)について、 a,直線(1)(2)の法線ベクトルm↑、n↑のなす角θ。 b,二直線(1)(2)のなす鋭角α。 をそれぞれ求めよ」 を内積を使って計算だけで求めるのは教科書通りにやれば簡単に求まりますが、特に問題のbについて、自分で座標平面に作図してみたら、先の当方の捉え方ですと… まず、n↑=(1,√(3))、m↑=(1,-√(3))ですから、これをそれぞれ始点を原点に取って、それぞれの座標通りに終点を取りますと、n↑が二直線(1)(2)の内部のm↑と交わらずII象限で交わってしまうのです。 解説を見たところ、bの問題は、円に内接する四角形の定理からαを求めているように見えるので、法線ベクトルn↑は四角形を作るように、m↑と交わらないと定理が成り立たない気がするのです。 という事は、n↑に限らず、法線ベクトルは、普通のベクトル同様に、位置は問題にせず、任意に平行移動しても良いということになるのでしょうか。  計算間違いがあるかもしれないし、漠然とした内容の質問で申し訳ありませんが、アドバイス下さると有り難いです。 宜しくお願いします。

  • 直線と平面のなす角

    直線l:x-1=2(2-y)=2(1-z) と平面α:2x-4y+2z=5のなす鋭角を求めてください。 lの方向ベクトルが(-2,1,1)、αの法線ベクトルが(2,-4,2)なので、その内積は-6。 (-2,1,1)の大きさが√6、法線ベクトルの大きさが√24であることから、 cosθ=-6/√6・√24=-1/2 つまり、法線ベクトルと直線のなす鋭角は60度となります。 だから、平面と直線のなす角は90-60=30度と考えました。 しかし、この問題の答えは60度です。なぜでしょうか。

  • 平均速度とは。

    平均速度はベクトルですか。それともスカラーですか。 例えば、 高さhから水平に初速vでボールを投げてボールが地面に落ちたとします。この間のボールの平均速度というのは、放物線にそった道のりの速度の平均のことでしょうか。 それとも、始点と終点の位置の変位をかかった時間で割ったものですか。この場合、方向と大きさをもったベクトルです。(方向は始点から終点を直線で結んだ方向です) どちらでしょうか。

  • 数B

    平面状の2直線 2x-y-1=0, 3x+y+2=0に対して次の問いに答えよ。 (1) 2直線の法線ベクトルをそれぞれ1つ求めよ。 (2) 2直線のなす角θを求めよ。 この問題の解き方がわからないので教えて下さい!!よろしくお願いします!

  • 弧の角度から座標を求めるには

    何度も質問させていただいて申し訳ないです。 教えてください。 VB6にて、中心点と始点の座標、弧の長さが与えられています。 中心点(488,-680)、始点(510,-682)、弧の長さが478というような 感じです。 弧の回転方向はこの場合は反時計周りです。 このような条件で終点となるX,Y座標を求める場合はどのような計算式 となるのでしょうか? ご教授下さい。

  • 数Bのベクトル方程式について

    数Bのベクトル方程式について質問です。 ある直線に垂直なベクトル、法線ベクトルってありますよね? それの成分とは何を示しているのでしょうか? ある直線に平行なベクトル、方向ベクトルの成分は始点を原点にあわせて位置ベクトルともとることができますよね。 でも直線上の点Aを通る法線ベクトルといわれたとき原点は通らないので位置ベクトルにはなりません。 わかる方教えてください。。

  • 幾何ベクトルの法線と垂線に関する定義が理解できません。

    幾何ベクトルの法線と垂線に関する定義が理解できません。 どなたか、教えてください。 点P1(x1,y1)と直線、l:ax+by+c=0を想定する時、P1からlへの垂線の足をP0(x0,y0)と置きます。 直線lの定義により、直線lの法線ベクトルnは(a,b)と置けます。 参考書によると、この時n・p0+c=0とのことですが、ここが理解できません。 法線ベクトルとp0の内積とcがどのような関係性があるのでしょうか。 (例えば、直線lと法線ベクトルの内積が0である、ということなら理解できます。しかし、直線l上のベクトルをどのように式に表せばよいかがわかっていません。例えば、直線上に点P2をおき、(x2,y2)とすると、x2は式lを満たし、かつP2-P0とnの内積が0である、という表現しか思いつきません。) どなたか、解説をお願いいたします。

  • 直線の方程式 方向ベクトル 法線ベクトル

    点A(-3,-1)を通り、直線4x+2y+1=0に平行な直線および垂直な直線の方程式を求めてください。 (法線ベクトルもしくは方向ベクトルを使ったやり方を教えてください) よろしくお願いします。

  • 大学への数学の問題です

    大学への数学2010 7月号 日日の演習 7.2 の問題です a≠0 または b≠0 する。 連立不等式 3X+2y≧0 x-2y+8≧0 ax+by-2b≧0 を表す領域が三角形になるためのa,bの条件を求めよ。またその 条件を表す領域をab平面に図示せよ という問題の別解で l:3X+2y=0 m:x-2y+8=0 n:ax+by-2b=0 とする ax+b(y-2)=0 は点(0 2) を必ず通る。 nの法線ベクトル(a b) の始点を(0 2)とすると、題意を満たすのは終点が l,mにそれぞれ平行で、(0,2) を通る2直線l`<0、 m`>0 の領域に含まれるとき。(以下略) となってますが、この続きをお願いします なお、この解答は ax+by+c>0の表す領域はax+by+c=0の法線ベクトル(a,b)の矢印の指し示す側 というのに基づいて作られています。 . この質問に補足する.

  • 3次元座標の計算

    任意の2本の直線の始点、終点の座標(x、y、z)がわかっているときその直線同士の最も接近した箇所のそれぞれの直線上の座標を計算する方法を教えてください。

専門家に質問してみよう