触手の動きのアルゴリズム教えてください (326レス)
1-

50: 02/05/19 20:02 ID:??? AAS
こういうレトロゲームを無駄に3D化系って意外とインパクトあるな。
前にこの板のどっかで見たブロック崩しもだけど。
51: 02/05/19 20:19 ID:??? AAS
たけしの挑戦状3D よろしく!
52: 02/05/20 01:11 ID:??? AAS
 とりあえず

 触手系…親から子へ移動値を継承
 蛇系…親から子へ座標値を継承

てok?
53
(1): 15 02/05/20 01:31 ID:??? AAS
みんなひどいこと言うな…。VB房をいじめないで下さい。

>>17
循環バッファ?わかんない。
ただ自分で考えたときは15に書いたような違いになったの。

>>18
>>>15にはぜひ自分で考えた触手の動きを発表してもらいたいものだ。

作ったこと無い。

>いやオプやレーザーでも可。きっと微笑ましいものに違いない。

レベルの高いあなた達から見たら微笑ましいよ。
レーザーなんかLINE命令だもん。
作った頃はWindowsAPIも知らなかったから、
イメージとタイマー使ってカクカク動かしてた。

>>21
大学で習ったんだよ。なぜVBかっていうと、
多分Cとかは学生には理解できないと思われてたんだろう。
実際、その大学で一番プログラムが出来たのが、
このスレでヘタレ扱いされてる俺だし。
課題でゲーム作っただけで「すげぇ!」とか言われるレベルだった。
54
(1): 15 02/05/20 02:40 ID:??? AAS
53の訂正
× 学生には理解できない
○ うちの大学の学生には理解できない

情報処理系の大学でない上に、学生のやる気もあまりないんで。
55
(2): 02/05/20 12:20 ID:??? AAS
>>53
>循環バッファ

バッファに値をぽこぽこ追加していくと、いつかバッファの容量が足りなくなるけど、
そのときに頭に戻って重ね書きしてしまう構造のバッファのことを
循環しているから「循環バッファ」と呼んでるんだと思うよ。
こうすればいくらでもデータが追加できる。
ただし、あんまり古いデータは重ね書きされて消えてしまっている。
56: 02/05/20 16:26 ID:??? AAS
>>54
大学なんてそんなもん。
情報処理系でもプログラム書ける人間が1割いればいいほうなんじゃん?
57
(1): 15 02/05/20 23:27 ID:??? AAS
オプションのソースが見つかった。
今見ると自分でも何だかわかんない。

>>55
循環バッファってこういうやつかな?

If u = 0 Then
e(3) = d(2)
d(2) = c(1)
c(1) = b(0)
b(0) = a(5)
u = u + 1

適当な変数名…。
58
(1): 55 02/05/21 00:09 ID:??? AAS
>>57 == 15
機能としてはそれで良いはず。

ただ >>18 が循環バッファといったのはこれとは違う実装のことだと思います。
あなたがやったのは、バッファにデータを追加したときに、全バッファないのデータを
1つスライドさせていると思うのですが、
>>18 が言ったのは、多分、データを1つ追加するときに、記録する位置が1つずつ移動していく
タイプのもののことだと思います。こうして移動していくと、記録位置が
いつかバッファを飛び出してしまいますが、そうしたら、記録位置を先頭に戻してやります。
こうして永遠にぐるぐる周る(循環する)構造を指して循環バッファと呼んだのだと思います。
バッファこの構造にしておけば、バッファサイズを大きくしても重くならないので
長く記憶することができます。ただし、古いデータを参照するときにも
書きこみ位置(最新のデータの位置)が変化していることと、バッファの末端と先頭が
論理的に連続していることに注意しなければなりません。

ちなみに >>18 も「?」を付けていたように、この「循環バッファ」という呼び名が
正しいかどうかは分かりません。

申し訳ないですが、VBは解からないので、ソースは提示できません。
ですから、あなたの提示したソースも誤解している恐れがあります。
Cで良ければ、こちらとしては助かるのですが。

まぁ、組んでる人が使いやすい言語が一番なので
がんばってみてください。
59
(1): 02/05/21 00:38 ID:??? AAS
ふつーはリングバッファって呼ぶな
60
(1): 02/05/21 00:40 ID:??? AAS
おれはリングバッファって呼んでるけど?
61: 15 02/05/21 01:01 ID:??? AAS
>>58
詳しい解説ありがとうございます。
どこかで聞いたような話だと思って、最近買った
『プログラムはなぜ動くのか』矢沢久雄著
を読んでみたら…

>>59
>>60
リングバッファのことでした。
62
(1): 02/05/21 03:37 ID:XHSDIsJI(1) AAS
int xytbl[100][2];

毎ループ、データをずらすかポインタをインクリメントするかして
新しい座標をセットして、個々のパーツが参照するのは
4個か5個おきのデータ、、、ていうような処理でいいんでしょか。
無駄な領域を多く取りすぎるので、もっといい方法知ってる人
教えてくれ。
63: 02/05/21 04:24 ID:??? AAS
日本語をしゃべれ
64: 02/05/21 08:50 ID:??? AAS
まずそれで上手くいくかどうかやってみれ!
65: 02/05/21 12:10 ID:nBRpKvSA(1) AAS
触手の話から「オプションから勉強し直そう」スレになっとるがな。
66: 02/05/21 13:17 ID:??? AAS
オプションがバッファにして持ってる座標値を、
それぞれ角度に変えたら、触手になるかな?
67
(2): 02/05/21 15:44 ID:??? AAS
>>62
俺もそんなようなのしか思いつかないけど
グラディウスの場合、自機がスピードアップ(ダウン)すると
オプションの間隔が広がる(狭まる)でしょ?
その時にスピードアップ前に5個おきに参照していたのがスピードアップ後は
6個おきに参照とかなるじゃないですか。すると自機から遠いオプションは
スピードチェンジ時よりも古い座標を参照する事になってしまうんですな。
ここでそうならないような補正をかけてるんだと思うけどその処理の違いが
グラ1、2とかサラマンダのオプションの動きの違いになってるんでしょうね。
68: 02/05/21 16:11 ID:??? AAS
初代グラは単純なリングバッファとはかなり違う処理じゃないかな?
スピードは一定で上下スクロールの無い場所でも
オプションが自機の軌跡をきっちりたどっているわけではないみたいだから。
69: 02/05/21 16:51 ID:??? AAS
>>67
自機がスピードアップしたら
単位時間あたりの移動値もふえるわけだから
参照間隔そのままでも
移動値が増えればオプションの間隔は広がるよ。
70
(1): 02/05/21 17:33 ID:??? AAS
そーいや,オプション4個目ってスピードによって反対方向へ行ったりするね…
71:   02/05/21 23:32 ID:??? AAS
>>67
スピードアップした時に間隔が広がるのは、69が言うような理由のせいであって、
意図的にそうしたわけじゃないって開発者が言っていた。

>>70
開発者の話では、OPが自機を最短距離で追うようなプログラムになっているのが原因だそうだ。
つまり、自機が下のほうにあって、OPの4つ目が上のほうにあるような状況のとき、
画面の上と下は繋がっているから、OPの4つ目にとっては上に動いたほうが、最短距離で移動できる。
72
(2):   02/05/22 02:02 ID:??? AAS
FC版ファンタジーゾーンのグラブンガーの腕
AC版サラマンダのゴーレムの触手
ACグラ2の2面の触手
SFC版グラ3植物面のボスの茎(って言うのか?あの部分は)

これらはプログラムに共通している部分があるような気がする。
どれも動きがカクカクしているから。
何かパーツ毎に計算しているというより、
触手が通る曲線を計算しておいて、その上にパーツをのっけている感じ。

↓仮にこれが曲線だとして
――――――――――――――

↓その上にパーツを配置している。
∋―○―○―○―○―○―○―

違います?
73
(1): 02/05/22 02:50 ID:??? AAS
dakara sono kyokusen no keisanhouhou wo oshietekure to iu sureddo da
74
(1): 02/05/22 03:32 ID:??? AAS
>>72
FANTASY ZONE 4面
外部リンク[htm]:isweb16.infoseek.co.jp

新声社「GAMEST」 1990年分のグラIII 関連記事
外部リンク[htm]:www.geocities.jp

レビュー第2回(グラディウスII)
外部リンク[html]:www.ne.jp

レビュー第6回(グラディウス3)
外部リンク[html]:www.ne.jp

レビュー第4回(フェリオス)
外部リンク[html]:www.ne.jp

 水晶玉っぽいアイテム(ポム)を取得すると自機の後ろに連なっていく縦スクロールシューティングは何て言う名前だったか…。
75
(1): 02/05/22 03:40 ID:??? AAS
>>74
ジェミニウィング?
76: 02/05/22 03:44 ID:??? AAS
>>72
 上のは画面写真があるWebね。

|これらはプログラムに共通している部分があるような気がする。
|どれも動きがカクカクしているから。
|何かパーツ毎に計算しているというより、
|触手が通る曲線を計算しておいて、その上にパーツをのっけている感じ。

 いや、当時のハード(FC版)から考えて、そんな計算コストが掛かる方法はとっていないはず。当時はシューティングで小数点を扱ったリアルタイム演算は鬼門だったから、三角関数のテーブル作って256方向(64かも)の座標計算だと思われ。

>>73
 触手をより触手らしく動かすアルゴリズムじゃなかったのか…。
 曲線からの位置取得ならベジェ(スプラインでもよく)曲線描ければ簡単に取得できるけど…画面を2〜3往復とかする豪快な触手ならともかく、数個の関節でベジェ使うのは大げさでしょ。
77: 02/05/22 03:54 ID:??? AAS
>>75
 (・∀・)ビンゴ!!
 即答できるキミは絶対若くないハァハァ。

画像リンク

外部リンク[html]:www2s.biglobe.ne.jp
画面写真はミツカラズ。
78
(1): サインとかコサインとか 02/05/22 04:13 ID:??? AAS
だめだこりゃ
三角関数って何だろうと思って調べてみたけど、ワケワカラン。
俺は触手を語れるレベルじゃなかった。
79: [a] 02/05/22 11:16 ID:??? AAS
>>78それ、やばすぎ。(´・ω・`)ショボー
最初はゲームで波とか円運動させる為のものぐらいに覚えとけば良いんじゃない?
使い方を理解してからサイン・コサインとはなんぞや?を学んでも遅くないぞ。
#あくまでもゲーム製作においては、だが。
1-
あと 247 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.016s