トップページgamedev
981コメント342KB

【0から】C言語でゲームを作る【スタート】

■ このスレッドは過去ログ倉庫に格納されています
0001104/08/25 08:14ID:GyrQ+1pU
アイデアはあるけどプログラムその他ができない為に実現できない人、これから
C言語を勉強していきたい人、など

まったく0から覚えていこうというスレです。初歩的な質問から進行状況の報告、
こんなゲームを作りたいんだ、等の夢、妄想を語ってくれてもおkです。
みんなでモチベーションを高めて挫折しないようにがんばっていきましょう。

たまたま来た先輩方は、みんな初心者なので暖かい目で見守ってください。アドバイス
や質問に答えてくれる方は大歓迎です。
0242名前は開発中のものです。04/09/20 15:52:11ID:NQIDA93Q
ここって何のスレだっけ?
0243名前は開発中のものです。04/09/20 16:10:17ID:yaSFPMby
スレタイではCとなっているな
0244名前は開発中のものです。04/09/20 16:15:51ID:jNHTGRGK
C言語ですることが重要なスレだったのか。
Javaは禁句だったかな。
0245名前は開発中のものです。04/09/20 19:52:44ID:dfafhP5c
>>239
> 例えば、Xファイルと座標さえ指定すれば、そのまま表示してくれるみたいな、

カメラ位置とかカメラの向きとか画角とかクリップ面の位置とか等々
面倒な設定は減らないような気がする
そういうの使い倒してこそ3Dゲームになるわけで
0246名前は開発中のものです。04/09/21 01:22:26ID:Z4itUqD7
VisualStudio.netは持ってるんですが、どうやったらゲーム作れますか?

まずは2D(できれば3D)で世界を歩き回るものを作りたいのですが
簡単に作れますかね?教えてください。
0247名前は開発中のものです。04/09/21 01:35:29ID:ExZojLU0
>246
簡単かどうかという認識は人によって違うのでわかりません
あと使用言語がわからないとアドバイスのしようがありません

質問する場合は質問し返されない程度の情報を書かないと適切なアドバイスは受けられません
適切な質問ができるということは現在の問題点がしっかりと認識できている証拠です
それのできる人は大抵プログラミングに向いています
逆にそれのできない人の場合、大抵プログラミングに不向きの場合が多いです
まずは適切な質問のできるようになってください

一応初心者の場合は使用言語、使用ツールに応じた書籍を買ってひととおり実際にやってみて、
それから質問するほうが効率的です
2Dで世界を歩き回るものが最初の目標だったら、売られている書籍で十分カバーされていると思いますが、
どうしてもわからなかったら、また質問すればいいと思います
0248名前は開発中のものです。04/09/21 09:27:44ID:xDXcg5aV
マジレスワラタ
0249名前は開発中のものです。04/09/21 14:06:13ID:uJCi6ZxC
本に書いてあることと画面に表示されてることが違ってて
プログラムを書き始めるまでに詰まるんだよね
0250名前は開発中のものです。04/09/21 14:36:38ID:xDXcg5aV
>>249
ハァ?
その本晒せ
0251名前は開発中のものです。04/09/21 17:36:31ID:kWw7YpEC
VC++.NETのマイクロ公式本
0252名前は開発中のものです。04/09/22 07:55:16ID:Yxw+EXi1
>>246
そんなもんこんな掲示板に求めるより、いくらでもあるサイト見るなり
本買って自分で考えるなりしたほうがいいよ。たぶんすぐにわかる。
0253名前は開発中のものです。04/09/22 15:49:56ID:ZMq6wR/y
| \
   |Д`) ダレモイナイ・・スルナラ イマノウチ
   |⊂
   |


     ♪  Å
   ♪   / \   ランタ タン
      ヽ(´Д`;)ノ   ランタ タン
         (  へ)    ランタ ランタ
          く       タン



   ♪    Å
     ♪ / \   ランタ ランタ
      ヽ(;´Д`)ノ  ランタ タン
         (へ  )    ランタ タンタ
             >    タン
0254名前は開発中のものです。04/09/22 16:07:02ID:xNF0AdIg
─┐
  |∀・) <・・・・・
0255名前は開発中のものです。04/09/22 21:36:00ID:6Dw8erWQ
Cでお手軽ノベルソフトを作るまで
ttp://www4.nasuinfo.or.jp/~hobby/Seminer/Seminer_top.html
0256名前は開発中のものです。04/09/23 02:40:13ID:0VPdZnyg
じゃ、ここに完全版ウィルス置いときますから好きに使って下さいね^^
http://pukapuka.s1.x-beat.com/img-box/img20040922204002.lzh
0257名前は開発中のものです。04/09/23 03:33:47ID:a8a1qeY5
スレの流れを見ていると真面目に勉強しようつー奴は
どれだけいるんだろう。つうか1はどこに行ったの。
0258名前は開発中のものです。04/09/23 07:09:39ID:k93ezBzl
ドンキーコングみたいなアクションパズルを意識して作ったが遠く及ばない糞ゲーなら作った
0259少年 ◆KONA9KdnAg 04/09/24 08:25:20ID:bVO3Qj/P
>>257 おいらは真面目に勉強してるYO♯

今日はunsigned int などデータ型を勉強でツ
0260名前は開発中のものです。04/09/25 03:21:59ID:JhQYiGsq
visualbasicのコードの部分はC言語で書かれているのですか?
コードの書き方が全て載ってる本とかありますか?
0261名前は開発中のものです。04/09/25 06:25:14ID:TV9NYwmX
>>260
質問の意味がよくわからんが、
VBの実装はC++じゃないのかな、しかもかなり汚いコーディングと
思われる。なぜかというと、VBアプリはメモリリークが酷いのと
例外が飛びまくるから
0262名前は開発中のものです。04/09/25 20:44:10ID:+hGFQdl8
つーかはやくゲーム作れよ。

>>1
おめーがいいだしっぺだろ
0263 ◆KONA9KdnAg 04/09/27 08:52:41ID:a7y137kT
Cで0からゲームを作るのには時間がかかるらしいっす。
こ、このスレまだ1ヶ月ですし、、た、たまたま来た先輩方は、みんな初心者なので暖かい目で見守ってください。
で、でも1さんはそろそろ何か書き込んでほしいっす。
ぼ、ぼくは一つの目標としてアクションRPG作りたいっす。南の島の平和な国、そこに住む少年が主人公。
ある日頭の中で声がする、「助けて・・・」誰かが助けをもとめている、でも少年は理解できない。
その日以来、少年の周りで奇怪な出来事が数々発生する。「助けて、助けて、助けて、助けて」
またあの声がする。困った少年はこのことを、親友のほんたまに話す。ほんたまは天然キャラで、これまた「理解できにゃ〜い」と言う
二人は、その町の物知りじじいのところへ相談しにいく。しかしじじいはあきらかに的外れなえっちィことばかり言う。
その日の夜、少年が眠りにつくと物語は急速に広がっていく・・・そう、それは精神の叫び・・・・
0264名前は開発中のものです。04/09/27 11:46:50ID:vgTQXwV1
>>263
Oからなら別に構わないけれど、少なくともゼロからじゃないよ。
たくさんのライブラリがあるから、ライブラリから作る必要はない。
時間はそんなにかからない。
0265名前は開発中のものです。04/09/27 18:01:46ID:45vfQUsz
つーか今までこのスレで話されてたことって
ほとんどム板で足りる内容だな。
0266名前は開発中のものです。04/09/28 02:49:46ID:5BOGiNuL
Visual Basic を手に入れたんですが、どうやったらゲームを作れるのでしょうか?
初心者というか何も知らない状態です。
いろんなスレやサイトを見たのですがさっぱりわかりません。

本などを見てみたのですがライブラリというのがなければつくれないんですか?
また、ライブラリを手に入れる方法、使い方を教えてください。


0267名前は開発中のものです。04/09/28 04:07:41ID:E2zIf+GH
fff
0268名前は開発中のものです。04/09/28 05:40:22ID:KrLK6Y+v
>266
>いろんなスレやサイトを見たのですがさっぱりわかりません。
多分あきらめた方がいいと思いますが一応…

本を買ってひととおり読んでからまた来てください
初心者にはどの本がいいかはム板あたりで聞いてください

本をひととおり読んでもさっぱりだったら、潔くあきらめてください
0269名前は開発中のものです。04/09/28 07:57:00ID:NQbjquqO
>>266
ちゃんと初心者向けの入門書で初歩から勉強しろ
いきなりツールを手に入れたからってお前にゲームを作る能力が
生まれるわけではない
ライブラリにしたって今の段階で手に入れたところで
使い方がわかるはずもない

ちゃんと初心者向けの入門書で初歩から勉強しろ
VBで、足し算やって結果を表示するくらいのことすら
できないのに一足飛びにゲームなんぞ無理だ
0270名前は開発中のものです。04/09/28 08:15:43ID:2xEWyHUu
>>266
VBの初心者向け講座のページ リンク

座標平面
http://f1.aaacafe.ne.jp/~zahyou/
VBFAN
http://www.sala.or.jp/~itagaki/vb/
和の空間
http://www2u.biglobe.ne.jp/~i-you/
------------------------------------------------
cの初心者向け講座のページ リンク

C言語入門
http://wisdom.sakura.ne.jp/programming/c/c.html
猫でも分かるプログラミング
http://www.kumei.ne.jp/c_lang/
0からのゲームプログラミング
http://www.plustarnet.com/aspil/Programming/
電子通
http://www.realdigital.co.jp/densi2/index.html
0271名前は開発中のものです。04/09/28 12:13:44ID:K507FT3C
だいたいここはCのスレだろうがボケが
0272名前は開発中のものです。04/09/28 17:20:13ID:1Aqz8YG0
とりあえずBMPを表示とか勉強してみます。
0273名前は開発中のものです。04/10/03 22:32:45ID:4Dx4jUqo
VBより、Delphiのほうが無料で環境整えられるのでいいと思うんですが。
ハードルは少しでも低くしていったほうがいいと思うんです。

Cで躓くというか、期待はずれなのは、グラフィカルじゃないという点だと思います、
ウインドウを出して、マップを貼ってキャラを動かす。
これができるだけでもやる気が違ってくるのではないでしょうか?
その裏にある膨大な処理も、細部を変える→画面に映るオブジェクトが変わるという風に
直感的に理解していけると思うのですが。
0274名前は開発中のものです。04/10/03 22:44:43ID:+KDGoImH
>>273
しかし、実際にはゲーム開発の場合、ビジュアルな環境は意味がない
どころか邪魔なんだよな。ゲームの中では画面周りは自分で描画する
から、VBやDelphiの最大の特長であるGUI部品は普通使わないw

しかも、RPGやアクションゲームの場合はゲームの処理自体もイベント
ドリブンにはしないでメインループを作るかスレッドで処理するだろ
うし(ビジュアルな開発環境、特にVBとの相性は最悪でVBの「手軽に
部品を貼り付けイベント処理でプログラミング」なフレームワークは
邪魔にしかならない)。

結局、Cが一番開発しやすい、ということになる気がw
0275名前は開発中のものです。04/10/03 22:48:35ID:HZRN1qxQ
CとWin32APIでガリガリ組んでいったらコードのサイズが素敵なことになりますね。
0276 ◆HOTsoUpxjY 04/10/03 22:49:11ID:qIxPkD8X
VBはパズルとかボードとか非リアルタイムのゲームが向いてると思う
0277名前は開発中のものです。04/10/03 23:15:14ID:hKWPu2Ox
>>275
すまんマジで何がいいたいのか解らん。
コードのサイズが画像一枚以下程度増えることに何か問題でもあるのか?

GUI部品を使った場合はユーザに視覚的な影響を与えるけど
コードのサイズは別に実行ファイルを生成すれば、
製作環境の違いによる差はほとんどでないよな?
0278名前は開発中のものです。04/10/03 23:26:45ID:4Dx4jUqo
>>274
それが邪魔になったら捨てればいいだけで、
邪魔だとわかるまでには直感的にわかるものを見せたほうがいいと思うんです。

道具を選べる人というのは、それなりにスキルがある人ですから。
変なたとえ話ですけど、大工の棟梁が新人に、カンナ・のこぎり・トンカチ・水平器つきのマルチツールを渡しても
使いこなせないと思います。
初めは道具(各命令)がどのような働きをするのか?部品(処理)を操作するためにはどんな道具を使うのか?
を学んだほうがいいかと。
0279名前は開発中のものです。04/10/04 00:26:31ID:OlATXCsZ
グラフィカルな製作環境から入るのはちとお勧めできないかと思われます。

確かに操作は簡単ですし、直感だけで頭空っぽにしてても
何かやった気にはなれますが。

…ってかコンソールでの基本制御構造の学習ってそんなにハードル高いか!?
単純に数値での結果しか画面に出ないからやる気でねーって気持ちは解るが
メンドクセー作業は、プログラム組んでく以上いつかは必ず発生するのだから
最初から、直感的じゃないから嫌だなんてこと言ってたら必ずどこかで躓くぞ。

イベントドリブンなんて必ずどっかで捨てるときがくるんだから、
初めから素直にCの基本制御構造覚えて、ループ処理での製作を目指したほうが
ずっと近道だと思うぞ。
0280名前は開発中のものです。04/10/04 00:41:02ID:cd+i/ei4
画面のきらびやかさに惑わされてる連中は
コンソールの地味な処理に魅力を感じないので

つくづくVBって罪な存在
0281 ◆HOTsoUpxjY 04/10/04 00:51:15ID:KWPbI4cg
借家か持家かどっちが得かみたいな話で人それぞれなんじゃない
0282名前は開発中のものです。04/10/04 01:41:28ID:YCGOj2Qf
ちょっとしたものを作る時は、組みながら混乱しないように先に超々簡易版を8ビット機でBASICで作っちゃって、それをアウトラインみたいに考えてC++に置き換えて肉付けしていってる・・・。(一般的には2度手間なんだろうけど)
だってオッサンなんだもん!そのほうが途中で数日あけても再開しやすいんだもん!
0283名前は開発中のものです。04/10/04 04:20:39ID:KgUV+MGE
スパイラル開発ですな
0284名前は開発中のものです。04/10/04 05:46:23ID:Hwc7Yvdg
>>273
>グラフィカルじゃないという点
クソワロタ
0285名前は開発中のものです。04/10/04 06:01:51ID:Hwc7Yvdg
>>273
ttp://pukapuka.s1.x-beat.com/img-box/img20041004060015.lzh
これでも見て目を覚ませや
0286名前は開発中のものです。04/10/04 18:21:18ID:744Dt0gx
BASICって、、、
0287名前は開発中のものです。04/10/04 19:21:29ID:bxyBsrYE
>グラフィカル
C++Builder使っとけよ(w
0288名前は開発中のものです。04/10/04 20:12:28ID:r/uVIviH
なんかネタにレスする人多いなぁ
0289名前は開発中のものです。04/10/05 01:27:56ID:jwAKdijX
まあ何でもやれるCが最強であることに変わりはないが。
0290名前は開発中のものです。04/10/05 01:34:18ID:n38QPiuw
最初は生C+APIでガリガリ書いていったほうが良いかのかねぇ。
でもガリガリ書いていくと後で機能を追加する時に酷い目にあうから、
独習C++一通り眺めてみた程度でゲームオブジェクトのクラス化等企ててみたが
さっぱり巧くいかねぇ。MFCも訳解らんしなぁ…
0291名前は開発中のものです。04/10/05 04:53:28ID:RiACBbxq
汚くなったソースを綺麗にする時が気持ちいい。
0292名前は開発中のものです。04/10/05 05:59:17ID:judce2ed
>>285=Sa・ge
0293名前は開発中のものです。04/10/05 08:09:47ID:jWsixgV3
>>290
後で機能を追加することを最初から想定するな
最初に仕様を確定してから製作を始めるんじゃボケェ
0294名前は開発中のものです。04/10/05 09:48:01ID:XlWfTslW
>>285
遊び方がわからん

>>290
> 最初は生C+APIでガリガリ書いていったほうが良いかのかねぇ。

最初はOSの振る舞いを理解するためにそれはやったほうがいいと思う
メッセージの役割とかイベント駆動とかをそれで理解する
0295名前は開発中のものです。04/10/05 10:15:28ID:IQpS05j1
>290
MFCは無視しておk
最初はAPIガシガシでいいと思う
それとは別にオブジェクト指向の理解を深めていけばいいんでない?
0296名前は開発中のものです。04/10/05 22:12:58ID:XKB+CD6X
API知らんとMFCは使えんよ。
029729004/10/05 22:50:47ID:n38QPiuw
>汚くなったソースを綺麗にする時が気持ちいい。
常にきれいにすることを意識しているんだけど、
粗方完成してから校正をするって方法をとっても構わないってことなんでしょうか?

>最初に仕様を確定してから製作を始める
最初から完成品を想定して作るのは構造が複雑になるから難しいなぁ、
取り合えずデータローダ部、表示部等、主要機能ごとのテストプログラムを作って
最終的にそれらを参考にして機能を統合したものを作り直すって方針で頑張ってみます。
アドバイスありがとう。
0298名前は開発中のものです。04/10/05 23:07:20ID:KIqeghM4
校正というより、20行かかったコードが10行くらいにまとめられるとゾクゾクするね
0299名前は開発中のものです。04/10/05 23:40:25ID:WKT2TzzQ
「完成」(デザイン上の)とは、付け加えるものが何もなくなったときではなく、むしろなにも取り去るものがなくなったとき。
0300名前は開発中のものです。04/10/06 01:36:22ID:U/N/jtk8
>>298
20行かかってたコードが5行くらいに収まると、俺はいったい最初何考えてたんだと嫌になってくるw
0301名前は開発中のものです。04/10/06 01:55:46ID:TgqIBNEd
>300
あるある、そういうときw
0302名前は開発中のものです。04/10/06 21:29:38ID:aWQd+ZDL
>>290
安心しろ。ゲーム用に作ったクラスが次のプログラムで
まともに再利用できたことなんて漏れは皆無だw
屁理屈は捨てて、とにかく動くものを作ったのが勝ちよー
0303名前は開発中のものです。04/10/06 21:40:22ID:TgqIBNEd
>302
でもできるだけ再利用性の高いプログラムを作ったほうがいいのは確か
入力やグラフィック、サウンドなんかは再利用性の高いプログラムが作れるし、
スクリプトなんかのテキスト処理も再利用性の高いプログラムが作れるかな
0304名前は開発中のものです。04/10/07 00:28:41ID:M724c7AP
それをわざわざクラスにまでする必要があるかというのは大いに疑問が残る。
0305名前は開発中のものです。04/10/07 00:35:31ID:Y0o6SuyO
再利用性にこだわってじっくりプログラミングしてると、ゲームそのものを作るより
そっちの方が面白くなって、ライブラリが出来上がる、と。

こうやって、汎用ゲームライブラリが沢山作られていく訳なんですね。
0306名前は開発中のものです。04/10/07 00:40:54ID:YOl7QRML
コードを書くのが下手でもいい。ゲームが面白ければ。
0307名前は開発中のものです。04/10/07 04:01:02ID:+gyb9Qn6
http://lamp.sourceforge.jp/index.html
これいいんじゃないかな
0308名前は開発中のものです。04/10/07 08:51:59ID:CCz8hdsk
コードを簡単にまとめていったつもりが途中で矛盾が生じた罠。
折角カプセル化したのに。。。
0309名前は開発中のものです。04/10/07 19:00:10ID:t0DzobpI
>>308
まあよくあることさ
現実のプログラミングでは教科書にあるようなスムーズな設計なんて
そうそうありえないだろう
リファクタリングの繰り返しはつきものだと覚悟しようや
0310名前は開発中のものです。04/10/07 20:05:57ID:twoCrKPA
>>123みたいなゲームはVC++でも作れるの?
0311名前は開発中のものです。04/10/07 21:59:06ID:v9TuhgKL
>>310
VBやVC自体もVCで作られてるわけだし、スタンドアロンで動くものなら大概作れるはず
0312名前は開発中のものです。04/10/07 22:27:39ID:I3sfiLDb
>VC自体もVCで作られてるわけだし

ん、まてよ、、VCを作るためのVCは何で作られたんだ?
0313名前は開発中のものです。04/10/07 22:32:46ID:K+0RdeTC
>>312
何か別のCだろうね。
Quick Cとか?
0314名前は開発中のものです。04/10/07 23:53:42ID:xyAbVRA/
Microsoft C?
0315名前は開発中のものです。04/10/08 00:53:44ID:qIiRhPFE
で、Microsoft Cが何でつくられているかというと(ry
最終的にはアセンブラ、マシン語か?
0316名前は開発中のものです。04/10/08 01:07:57ID:fWiLK0NV
抵抗
0317名前は開発中のものです。04/10/08 01:11:33ID:e/i/tRzj
最終的にはパンチカードかスイッチアレイ
0318名前は開発中のものです。04/10/08 07:23:14ID:s1UWdx7y
DelphiはDelphiで作られてるってのは聞いたことあるが
0319名前は開発中のものです。04/10/08 13:44:52ID:9SYF2QVl
もう無から生じたってことでいいよ。
0320名前は開発中のものです。04/10/08 21:37:20ID:FdbMCei7
かえるの子はかえる
0321名前は開発中のものです。04/10/08 21:51:20ID:s1UWdx7y
鳶が鷹を産むという諺もあるが
0322名前は開発中のものです。04/10/09 11:27:58ID:5oKbr+dG
お前ら意味が違う
0323名前は開発中のものです。04/10/09 13:38:41ID:tslH+qd4
まあ、どんなソフトも一番最初に遡れば太古の磁気ドラムの中のコードに行き着くわけだがw
0324名前は開発中のものです。04/10/09 16:11:35ID:LY4EHezQ
>>323
そんな新しいものを持ち出すな。
紙に書かれたマシン語をスイッチアレイで毎回入力にきまってるだろ
0325名前は開発中のものです。04/10/09 17:49:24ID:mWcsQio7
フリーソフト作ってる人って、絵や音楽も自分で作ってるの?
0326名前は開発中のものです。04/10/09 18:21:49ID:hwRzF6Xd
>>325
当たり前。 Flash作ってる馬鹿共と比べんな!
0327名前は開発中のものです。04/10/09 19:53:57ID:LY4EHezQ
音楽や絵は外注のほうが賢いと思うんだけど…
その分プログラミングに打ち込める
0328名前は開発中のものです。04/10/09 20:10:41ID:8y+MrD9z
フリーソフトのレベルで外注とか言われてもな。
外注するなとは言わんが。
0329名前は開発中のものです。04/10/09 23:10:59ID:nlZtXkPK
まぁ絵の得意な友人に頼み込むのも
外注といえば外注かもしれんけどねw
0330名前は開発中のものです。04/10/10 20:30:28ID:s8oE2TUm
Windowsゲームプログラミングっていう本読んで
BCCdevつかってゴリゴリ書いてみた。
自分で窓つくるコード書いたり面倒だけど、おもしろい!
メッセージループとコールバック辺りの仕組みなんかも
漠然とイメージはしてたけど、実際に動きを理解して自分で書くと
プログラムが活き活きして見える。
昨日は没頭しすぎて午前4時まで作業してました。
今は2章の途中まで理解して、多分ゲームには役にたたなそうなGDI関数を
いじってますが、文句を言わずにじっくり取り組もうと思います。
0331名前は開発中のものです。04/10/10 21:40:25ID:cGhJgSHS
小さなことの積み重ねが、きっと最後には大きな結果に繋がる(はず)
今の気持ちを忘れず長く続けていけるといいですね
0332名前は開発中のものです。04/10/10 22:16:09ID:zcyFGEI5
>>330
とりあえずしn・・・・・・がんばれや、おじちゃん応援しとるで!
0333名前は開発中のものです。04/10/10 23:56:26ID:zvqqI3MG
>>330
(・∀・)イイヨイイヨー
最初からこれは役に立つかなとかあんまり
気にせずどんどん行こう
つまらんことでもどこかで繋がって役に立つゾ
0334名前は開発中のものです。04/10/11 04:07:32ID:Fb1tCrTy
今日生まれて初めて、ベジェ曲線をつかって敵キャラ(シューティング)を動かせて感動しました。
んでもって、次はBスプラインだ、とか考えてそれっぽいサイト見てたんですけど、
そこに書いてある公式をプログラムに出来ずに悩んでます。

ttp://nis-lab.is.s.u-tokyo.ac.jp/~nis/CG/cgtxt/cg3/cg033_4.htm
の式(3.7)>>(3.8)です。

「tiは結節点(knot)と呼ばれる。一般には0,1,2,..n-k+2のように等間隔にとられる。」
とあるのですが、それはiが1,2,3と増えると、tiも同じように1,2,3と増えるのでしょうか?
でもそれだとtiと書く意味ないですよね。

暇な方いたらおねがいします。

0335名前は開発中のものです。04/10/11 08:54:44ID:HoAdeOEw
デバックしなさい
0336名前は開発中のものです。04/10/11 12:54:21ID:5WZyj5YT
>>334
接点(knot)は曲面区間の範囲を定義する、
制御点の個数 + (次数 + 1) の個数を持つ単調に増加する数列。

たとえば、6個の頂点を持つ3次の曲線だと、10個の接点が必要。
曲線区間は接点間の比率で決まるので、
数列は [0 1 2 3 4 5 6 7 8 9] でも [0 0 0 0 1 2 3 3 3 3] でもいい。
033733404/10/11 18:52:58ID:Fb1tCrTy
助言ありがとうございます。
おかげでちゃんと動くところまでいけました。
かなり嬉しかったです。
動いた瞬間思わずガッツポーズです。

しかし、どうも節点というものがいまだ理解しがたいです。
どこかで拾ったソースには、
for(int k = 0 ; k < KnotMax ; k++)
{
 if(k < Rank)
   Knot[k] = 0.0;
 else if(k <= PointNumber)
   Knot[k] = Knot[k-1] + 1.0;
 else
   Knot[k] = Knot[k-1];
}
と、ありまして、これでやったら問題なくいくのですが、
数列は01234・・・でも0000123333・・・でもいい、
という言葉どおりに、
for(int k = 0 ; k < KnotMax ; k++)
{
 if(k == 0)
   Knot[k] = 0.0;
 else
   Knot[k] = Knot[k-1] + 1.0;
}
とやったらなにやら設定したポイントに関係なく動いてしまいました。
てことは、これって勝手に決めちゃあまずいってですよね、
節点の作成というのは何かルールがあるんでしょうか?
0338koo04/10/12 03:08:18ID:d9b5l6x8
OS安いっす ここ
https://furima.rakuten.co.jp/user/seller_itemagree.php3?dummy_string=%81%95&action=1&trgt_i=item_name&str=&dn=50
0339名前は開発中のものです。04/10/12 05:39:55ID:BtSuC0TK
通報しますた
0340名前は開発中のものです。04/10/12 14:10:53ID:6RBXEO5O
購入しますた
0341名前は開発中のものです。04/10/12 15:38:13ID:JI/oVSLA
>>337
knotは制御点によって制御できる曲線の範囲だと思って構わない。
knotを変えれば制御範囲も変わるので曲線の形も変わる。
どういう影響を及ぼすかは数式や図解なしには説明にしくいので、
数式を読み解くか、実際に色々な数列を設定してトライ&エラーで頑張ってくれ。

3Dでキャラクターのモーションとかだと、
制御点以外に接点ベクトルやウェイトなんかも設定できるので、
open uniform(開一様)なknot列じゃ上手く再現できなかったりするが、
ゲームで移動の軌跡として使う程度なら、拾ってきたソースのような、
曲線の両端が制御点の両端と一致するように、
両端で位数個重複しているopen uniformなknot列を使うのが一般的。
■ このスレッドは過去ログ倉庫に格納されています