トップページgamedev
299コメント89KB

触手の動きのアルゴリズム教えてください

■ このスレッドは過去ログ倉庫に格納されています
0001とっつぁん02/05/15 03:44ID:???
沙羅曼陀の1面やグラディウスIIの2面にでてくるようなスラッとした動きの触手、
グラディウスIIIの植物面にでてくるのや沙羅曼陀の1面ボスのゴーレムの手みたいに
時機を追いかけているうちに自ら絡まってこんがらかるような動きの触手の
アルゴリズムというか計算方法を教えてください。
0085名前は開発中のものです。02/05/22 21:49ID:???
あー、俺もリアル厨房の頃はぐちゃぐちゃのコード書いてたよ。
敵AIひとつ組むにしても、例えば
ロックした目標の未来位置を予測 → 偏差撃ち
をさせたくてもなかなか出来ない。で結局、人力で
(距離→偏差角)の参照テーブルを作って誤魔化したり。

筋金入りのDQNだった。
0086名前は開発中のものです。02/05/22 22:50ID:???
俺はリア房の頃は、円周上を移動させるのにグラフに円を書いて
座標をマニュアル入力してたぞ。
sin関数を知った時の衝撃と言ったらもう… 
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!って感じだった。
0087名前は開発中のものです。02/05/22 23:16ID:???
つーか、確認したいんだが、このスレいまだに上がり続けてるのは、
三角関数が解らないくらいのマジ厨だからだよな?
(まぁ、それならマジでしょうがないが)
たまにいる、いい年コイたクソ学生とか、足し算引き算以外はいつまで
経っても逃げつづけてるクソ専門校生とかじゃねぇよな?
0088名前は開発中のものです。02/05/23 00:26ID:???
根本的な話、三角関数知らないと、学生になれないはずですが。
学生のつもりだったのでしょうか。
妄想学生?仮面学生?ちんかすクセー?
0089(´・ω・`)ショボーン02/05/23 00:27ID:???
>>84
高校の数学で習うんだっけ?文系のクラスでも?
三角関数は知らないけど、
サインとかコサインって言葉は物理の授業で聞いたような気がする。

触手→オプション→触手→三角関数
0090名前は開発中のものです。02/05/23 01:01ID:???
>>87-88
http://game.2ch.net/test/read.cgi/gamedev/1021476153/357n

ニヤニヤ
0091名前は開発中のものです。02/05/23 01:04ID:???
>>88
三角関数を知らずに学生になり、
そして卒業しましたが何か?

三角関数って普通はどこの高校でも習うんですか?
0092名前は開発中のものです。02/05/23 01:17ID:???
まぁぶっちゃけて言えば三角関数をちゃんとお勉強して知っている学生もいれば
三角関数は興味なく知らないがあんなことやこんなこともよく知ってる学生もいるってこった。
学生ん時遊んでた奴は今頃必要に応じて学ぼうとするし
学生ん時はお勉強くんだった奴は日夜半角板でネタ収集しダメ板で童貞を告白して傷を舐め合っている。
両者共今をエンジョイしていていいじゃないか。
0093名前は開発中のものです。02/05/23 01:28ID:???
ん?高校でも文系とかならやんないんじゃないか?
っていうか、中学以上の数学の知識って結局実生活には必要無いからさ、
別に開き直って生活してても構わんとは思うけどモナー。
でもこれからゲームのプログラムやろうってのが、たかがサインくらいで
怖気づいてんのもどうよ。好きでやるんじゃないか?

この板、自分より低レベルなヤシ目ざとく見つけては攻撃するヒッキーが
やたら多いから、そういうのは無視してりゃいいが、プログラマでいちばん
ウザいのは90みたいな嘲笑+自己完結+狭い視野の決定論だけみたいなヤシ
な。ヒッキーやダメ学生が30代になってレベルアップするとこうなる。
オレとかナー。
0094名前は開発中のものです。02/05/23 01:51ID:2MFy4BDw
>>91
俺は普通科だったけど、普通に習ったよ。数IIだったっけ?

ゲームプログラムやるなら、必須だしね。
キャラの移動で既に必要だし。

3Dの回転行列の計算でも必要。
そこまで書くのはPS2ぐらいだと思うが。
テーブル参照による高速化は、メモリ食う割に、メインメモリに
アクセスするから、実はあまりよくない。
で、PS2で式を変形させて高速化を図るってのをやってたのを
見せてもらったけど、良く解らんかった。UVコードだったし。
今月(先月)のCマガに載ってたような。
0095名前は開発中のものです。02/05/23 01:53ID:???
>そこまで書くのはPS2ぐらいだと思うが。

???
0096名前は開発中のものです。02/05/23 02:01ID:???
>>92
>学生ん時はお勉強くんだった奴は日夜半角板でネタ収集しダメ板で童貞を告白して傷を舐め合っている。

ぐはっ(吐血
0097名前は開発中のものです。02/05/23 10:42ID:???
関係ないけど、sin^2Θ+cos^2Θ=1の公式って
よく考えたら当たり前のことを書いてるにすぎないんだよなあ。
0098名前は開発中のものです。02/05/23 12:41ID:???
小中学生が多いのかな?
0099名前は開発中のものです。02/05/23 23:56ID:???
三角関数なんか普通に生活してて縁ないんだからしょーがないじゃん。許してよ。
0100名前は開発中のものです。02/05/24 00:40ID:???
高校生以下は"学生"ではありません。"生徒"です。
18歳以上で、まだ勉強してる連中を"学生"と呼ぶものです。
ちなみに小学生は"児童"だからね。間違えないでね、ボク。
"俺が学生のころは…"と高校時代を語るやつはサムイです。
0101 02/05/24 01:26ID:???
>>100
その通り!
でもどうでもいいって。触手!触手!
0102通りがかりだけど02/05/24 01:31ID:???
どうでもいいじゃん。あほらし。
君、あれでしょ?そういう些末な事突っ込んで場の空気乱す人でしょ?
たまにいるよねーウザイウザイ。
0103名前は開発中のものです。02/05/24 02:29ID:???
空気嫁
0104名前は開発中のものです。02/05/24 03:45ID:???
>>100
ところであんたこのスレに何の用があって見たり書き込んだりしてんのよ?
0105名前は開発中のものです。02/05/24 04:26ID:???
昔のプログラムは凄かったという結論でOK?
0106名前は開発中のものです。02/05/24 07:53ID:???
PEACE CODEに話題有り
0107名前は開発中のものです。02/05/24 23:54ID:???
>97
底辺の二乗+高さの二乗=斜辺の二乗だっけ?
0108名前は開発中のものです。02/05/25 00:16ID:???
それって3平方の定理で、しかも間違ってるじゃん
0109名前は開発中のものです。02/05/25 00:36ID:???
>>108
合ってるよ。三平方の定理も。
0110名前は開発中のものです。02/06/01 00:29ID:a2n/qG4U
まずは、服を破り、乳首にからまりパンツを・・・
0111名前は開発中のものです。02/06/04 00:52ID:???
過疎
0112名前は開発中のものです。02/06/04 01:03ID:???
すさまじくレベルの低いスレだなぁ
0113実は02/06/04 01:08ID:???
111=112?
触手のアルゴリズムを本当に知りたくて書き込んでます?
0114名前は開発中のものです。02/06/04 07:35ID:???
>>111でageが入ったのでスレが浮上
→常駐している暇人の目にとまる。
→板相応スレ相応の駄レスが即行でつく。
 
程度の在り来たりの想像力ぐらい働かせたらどうかねsage
0115名前は開発中のものです。02/06/04 14:31ID:???
過疎ですまん。
0116名前は開発中のものです。02/06/04 16:28ID:???
>>115
なんでキミがあやまるんだ
お前はこの板の神ですか
0117名前は開発中のものです。02/06/04 18:01ID:???
>>116
メンタルストレスを溜めるのは良くないぞ。
0118名前は開発中のものです。02/06/04 23:59ID:???
>>117
なんか開発状況報告スレのせいで変なレスになった。スマン。
0119名前は開発中のものです。02/06/05 07:30ID:O7LU16hk
>>112
レベルの低い人がたててレベル低い人が多く書き込んだスレだからしょーがないね。
と、レベルの低い僕は思いました。
ぼちぼちレベルの高い人の低レベルな人にもわかるレベルの高いレスきぼん
0120名前は開発中のものです。02/06/05 10:58ID:???
類は友を呼ぶので
0121名前は開発中のものです。02/06/06 05:14ID:???
何を教えて欲しいのかわからなきゃレス付けようがないよ
0122名前は開発中のものです。02/06/06 22:41ID:???
最近の3Dゲームではグラ系の触手って見なくなったね。
アニメーションで処理できちゃうからだろうけど。
無くなりつつある技術なのか?
0123名前は開発中のものです。02/06/06 23:01ID:???
3Dの多関節 >>>>>>> 2Dの多関節
0124名前は開発中のものです。02/06/07 02:35ID:???
同じだ。
0125名前は開発中のものです。02/06/07 03:00ID:???
俺もそう思う。
計算する座標が一つ増えるだけじゃないの?
0126名前は開発中のものです。02/06/07 04:47ID:???
>123の不等式はよくわからんが
座標が一つ増えるだけで自由度が三つも増えるぞ

だからなんだといわれてもぉ〜♪
0127名前は開発中のものです。02/06/07 20:16ID:???
106のリンク先見て書いてみたよヽ(´ー`)ノ
http://mrpackman.hoops.ne.jp/joint.zip
0128名前は開発中のものです。02/06/08 01:06ID:???
自由度は間接のほとんどを単なるちょうつがいのように2Dに限定すれば
問題ないと思うけど。回転が入ったり肩みたいな奴があるとかなりやっかい。
0129名前は開発中のものです。02/06/10 16:34ID:1dQb7mzQ
>>128
2Dの触手は細胞同士が重なってもアリとされてるけど、
3Dだと不自然に見える。その辺も難しいかな。
0130名前は開発中のものです。02/06/10 21:03ID:???
確かに。
ぶん回すと簡単に絡まりそうだよな。
ある程度はすり抜けを許容しないとダメかも。
0131名前は開発中のものです。02/06/10 22:54ID:OLYHhar2
話がそれるが、3D特有のスリ抜け問題は他にもいろいろ出てくるよね。
例えば、敵の撃った弾が他の敵をスリ抜けるのはアリなのかな?
0132名前は開発中のものです。02/06/10 23:20ID:???
そういえばそうだな。
2Dだと気にならなかったが、3Dだとその辺のすり抜けに違和感を感じるわ。
0133名前は開発中のものです。02/06/10 23:25ID:???
すり抜けられないと、同士討ちを回避するAIを組む手間が増える
0134名前は開発中のものです02/06/11 13:53ID:???
小さいキャラならすり抜けても目立たないのでは?
弾は表示の優先順位で常にプレーヤーからみて手前に描くとか。
0135名前は開発中のものです。02/06/11 15:44ID:???
>>134
3Dでそれをやると発射台・障害物・弾が一直線に並んだ時正面から見るとおかしくなる。
0136名前は開発中のものです。02/06/11 23:49ID:EyY2HPDw
市販のゲームではどうしてるんだろう?
0137名前は開発中のものです。02/06/12 00:01ID:???
ぼくらは放置されていた
0138名前は開発中のものです。02/06/12 02:06ID:kFk0QMAg
ttp://www.sodaplay.com
0139  02/06/12 06:23ID:rKP63Pp2
http://chuu.dip.jp/cgibin/up/img/700.exe
触手ってこんな感じ?
0140名前は開発中のものです。02/06/12 09:50ID:???
↑通報しますた
014113902/06/12 09:53ID:???
>>140
なんで?
014213902/06/12 09:58ID:???
http://chuu.dip.jp/cgibin/up/img/701.exe
もう一つ作ってみた。
0143名前は開発中のものです。02/06/12 12:04ID:???
どうやったの?
おせーて!
0144名前は開発中のものです。02/06/12 12:18ID:???
>>139
終点を拘束してみれ
014513902/06/12 12:50ID:???
http://chuu.dip.jp/cgibin/up/img/702.exe
>>144
0146名前は開発中のものです。02/06/12 13:12ID:???
>>142
すげーじゃん。
ソース公開してください。
おねがい。
0147名前は開発中のものです。02/06/12 13:14ID:???
>>139=>>142=>>145
トロイ
014813902/06/12 13:17ID:???
>>147
仕事の合間にやってんだよ。ボケェ。
0149名前は開発中のものです。02/06/12 14:14ID:???
なーんだ、トロイの木馬なのかと思っちゃった
0150名前は開発中のものです。02/06/12 14:40ID:???
>>145
反応はやっ!
015113902/06/12 19:18ID:???
>>149
ああ、トロイってそういう意味か
147さんボケェっていってごめんなさい。

>>146
自分で考えろボケェ!
015214702/06/12 19:22ID:???
>>148,151
いや、私の完敗です、スマソ
しかし、怖くて実行できぬ。
015313902/06/12 19:31ID:???
恐ければ実行しなくてよいよ
015413902/06/12 19:45ID:???
 
0155名前は開発中のものです。02/06/12 20:22ID:???
138オモロい
0156名前は開発中のものです。02/06/12 21:56ID:???
なんだVBか。
0157とっつぁん02/06/12 23:16ID:???
おお!とうとう実践的な方が降臨されましたな!
ソース激烈にきぼん。
0158名前は開発中のものです。02/06/12 23:31ID:???
思い切って実行してみた。
単なるIKの2D版じゃんとオモタ
015913902/06/13 04:55ID:hRB41EXw
>>158
あんたが求めてる触手ってどんなもの?
0160名前は開発中のものです。02/06/13 09:14ID:???
            ────── 、
          /           \
         ノ               .\
        (                 .ヽ
       /    , ─── 、      , ──-、          
      /    | ,--;;,,,   |,─、|    ,,;;--,| 
      |    | \●\ ├-  | /●/ |
      |     |   ̄ ̄  ||   | ` ̄ ̄__|
      |      ̄ ̄ ̄ ̄ |   |  ̄ ̄ |             
      |          (_,ヽ_/、) , ........、  
      \            ∪  _ ....:::::::::::::::、 
       \           /(_)-- 、::::::::::、   ヨンダ?
  _      \        (_/    \:::::::  
  (  \      \            /       / ̄)
  \  )        ──、____,-        /  /
    (  丿    /::::           \    (  (
     \ \_/ /) ) /|\  )( ( \_/ /
       (___//,/ )( ( \ )\\___)
  ( ̄ 、___//丿|  ) ) ) ( ( ( (
   \___//  ) ) | ) ( ( ( (
        ( (   ( (  ( | ) ) ) )
         ) )  丿 丿  ) )  ( ( \ )
        ( (  丿 丿   ) )  ) |  ) )
       / /  |  |    | ) (  ( ( (
      (_/ (_/     (_) \_) \_)
0161名前は開発中のものです。02/06/13 12:40ID:???
>>159
こんなの
ttp://www.urban.ne.jp/home/tecmac/badgara/img/aya003.jpg
016213902/06/13 17:43ID:SREciCjE
>>161
頑張れ
0163名前は開発中のものです。02/06/13 23:38ID:LHE8jrgA
俺が今までに作ったゲームでは三角関数をよく使ったような…
(数学よりも物理で習った方法で利用)

>>99
許せる。
0164 02/06/13 23:39ID:LHE8jrgA
ぐはっ。2ちゃん慣れしてないことがバレバレ。
ネタだと思わんでくだされ。
0165名前は開発中のものです。02/06/14 01:55ID:???
ダイジョブ オレモヤッタコトアル
0166名前は開発中のものです。02/06/14 10:53ID:TJTWjrmw
>139
これっていわゆるAB法では?
これは典型的なIKと呼ばれているんですかね?
紐シミュですよね?
016713902/06/14 11:39ID:76gizzkU
AB法?
実は俺プログラムやシミュレーションに関しては素人なので
よくわかりません。
0168名前は開発中のものです。02/06/14 13:01ID:???
>139
AB法ってのはkaneko氏がAnimeBodyというプログラムで用いたやつです。多分
各リンク点間をその距離で普通に拘束する感じだったと思います。
あえて名づけている意味が解りませんが。。。
016916602/06/14 20:02ID:iWBgkMT2
ごく一部の人の間ではAB法。
広く一般にはmass-spring法などと呼ばれているような気がする。
017016602/06/14 20:04ID:iWBgkMT2
でもIKとして使って問題ないんですね。
失礼しました。
0171あああ02/06/14 21:03ID:Ha4x9sVA

|
|
  手 肘 x2=90
  /      /
/   /
肩----肘----手 > 肩----肘 > 肩
x1=0 x2=0 x1=0 x2=45 x1=45

これでみたとうり部分部分で、角度の値を持たせるというのが、多関節
(簡易な)といったとこでしょうか(^^)
0172あああ02/06/14 21:12ID:MQwpPVXA
                       手
                       |
                       |
                手      肘x2=90
                /     /
               /     /
 肩----肘----手 > 肩----肘   >  肩
 x1=0 x2=0    x1=0 x2=45    x1=45
これでみたとうり部分部分で、角度の値を持たせるというのが、多関節
(簡易な)といったとこでしょうか。
0173あああ02/06/14 21:16ID:MQwpPVXA
うーむ。絵がずれるねー。いやーん。

(Module.bas で 定義)
Type rect
obj As Integer
ang As Integer
End Type

Sub Kansetu_Click ()

Const SHOULDER = 1 ' 肩
Const ELBOW = 2 ' 肘
Const HAND = 3 ' 手
ReDim x(4) As Single
ReDim y(4) As Single
ReDim an(10) As rect ' データ構造
' データ
an(0).obj = 0: an(0).ang = 0
an(1).obj = ELBOW: an(1).ang = 30
an(2).obj = HAND: an(2).ang = 45
an(3).obj = SHOULDER: an(3).ang = 25
an(4).obj = ELBOW: an(4).ang = 40
an(5).obj = SHOULDER: an(5).ang = 30
an(6).obj = HAND: an(6).ang = 60
an(7).obj = SHOULDER: an(7).ang = 45
an(8).obj = ELBOW: an(8).ang = 60
an(9).obj = -1: an(9).ang = 0
0174あああ02/06/14 21:18ID:MQwpPVXA
p = 3.14156 / 180 ' π
h = ScaleHeight / 2 ' Form の 高さ
w = ScaleWidth / 4 ' Form の 幅
sl = 250 ' 肩の長さ
el = 300 ' 肘の長さ
hl = 200 ' 手の長さ
c = 5: ' 色
j = 0:oan1=0:oan2=0:oan3=0
Do
If an(j).obj = -1 Then Exit Do
Cls
Select Case an(j).obj
Case 1: an1 = an(j).ang + oan1 ' 肩を動かす
an2 = an1 + oan2
an3 = an2 + oan3
oan1 = an1
Case 2: an2 = an1 + an(j).ang + oan2 ' 肘を動かす
an3 = an2 + oan3
oan2 = an(j).ang
Case 3: an3 = an2 + an(j).ang + oan3 ' 手を動かす
oan3 = an(j).ang
End Select
0175あああ02/06/14 21:18ID:MQwpPVXA
x(0) = 0: y(0) = 0
x(1) = Cos(an1 * p) * sl: y(1) = Sin(an1 * p) * sl
x(2) = Cos(an2 * p) * el: y(2) = Sin(an2 * p) * el
x(3) = Cos(an3 * p) * hl: y(3) = Sin(an3 * p) * hl
' 線を描画
Line (x(0) + w, y(0) + h)-(x(1) + w, y(1) + h), QBColor(c)
Line -(x(2) + w + x(1), y(2) + h + y(1)), QBColor(c + 1)
Line -(x(3) + w + x(2) + x(1), y(3) + h + y(2) + y(1)), QBColor(c + 3)
j = j + 1
MsgBox "Push Next"
Loop

End Sub
0176名前は開発中のものです。02/06/14 22:39ID:???
>あああさん
N88BASICでおながいします
0177名前は開発中のものです。02/06/15 00:58ID:???
>>173-175
これはVB?
Cで慣れてるからキモチワルイ感じ。
0178名前は開発中のものです。02/06/15 01:10ID:???
Cとくらべても大してかわらんだろ
0179名前は開発中のものです。02/06/15 01:19ID:???
>>178
ビミョウな違いがかえってキモチワルイ。
シンタックスエラーに敏感なんです。
0180名前は開発中のものです。02/06/15 01:28ID:???
>178
なるほど・・・・
大して変わらないから、逆にキモチワルイのね(w
0181名前は開発中のものです。02/06/15 02:13ID:???
おなかすいた。
0182名前は開発中のものです。02/08/20 01:40ID:???
計算すると時間がかかるから、なるべくデータをテーブルで持って
やりたいんですけど、どうしたらいいでしょう。
0183名前は開発中のものです。02/08/20 15:48ID:???
>>182
データをテーブルにもってくださいと言うほかないけど・・・?

起動時にテーブルを作成するとかあらかじめ作成したテーブルを埋め込むか
データファイルとして読み込むか一度計算した内容をテーブルに保存して次からはそれを使うとか
いろいろ考えられる方法はあるんだけど
0184名前は開発中のものです。02/09/20 00:44ID:???
            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無事に  /
           /  再開いたしました    /
          / よろしくおねがいします。/
          /                /
         /    ギコ猫より      /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 (  ゚Д゚)./                /(゚Д゚  )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
■ このスレッドは過去ログ倉庫に格納されています