わからなかったらここで聞けばいいじゃない
なるべく詳しく日本語で質問してね
自分で調べられない奴は何をやっても駄目。
〜終了〜
3 :
製作神 ◆3C/O4odLsY :2007/02/02(金) 13:30:56 ID:Cv0Pptdl
\ U /
\ U /
/ ̄ ̄ ヽ,
/ ', / _/\/\/\/|_
\ ノ//, {0} /¨`ヽ {0} ,ミヽ / \ /
\ / く l ヽ._.ノ ', ゝ \ < バーカ! >
/ /⌒ リ `ー'′ ' ⌒\ \ / \
(  ̄ ̄⌒ ⌒ ̄ _)  ̄|/\/\/\/ ̄
` ̄ ̄`ヽ /´ ̄
| |
−−− ‐ ノ |
/ ノ −−−−
/ ∠_
−− | f\ ノ  ̄`丶.
| | ヽ__ノー─-- 、_ ) − _
. | | / /
| | ,' /
/ / ノ | ,' \
/ / | / \
/_ノ / ,ノ 〈 \
( 〈 ヽ.__ \ \
ヽ._> \__)
クソスレ立てた
>>1が1日たったら別人として質問する
そんなパターンがありますよね
加減乗除と論理演算と三角関数が分かればいいんじゃね?
6 :
名前は開発中のものです。:2007/02/03(土) 09:45:00 ID:dYSVPri8
円の方程式とかもいるかな
あとは物理だな
こういう糞スレでは、何のゲームを作るのかという前提条件すら定義せず、
いきなり結論を提示する馬鹿がしたり顔で出てくるのは何でだろう?
削除依頼くらいの数学の知識があればいんじゃないか?
9 :
名前は開発中のものです。:2007/02/03(土) 12:17:10 ID:20zjJjUH
まずはスクエニのドメインをナントカしろ。
3D使わなかったらたいして数学なんて使わないぞ
3D組むんだったらクォータニオンが使えないと苦労するな。
>>11 2Dでもアクション系だったら少し使うけどな。
STGのオブジェクト軌道は普通ベクトルの概念をベースに考えるし、
特殊な軌道を描くときに曲線のパラメタ表示や微分を使ったりもする。
弾の狙い方向では回転行列なんかも必要になるな。
そのベースになる三角関数はもちろん不可欠。逆三角関数も使えないと何かと困る。
アクションだと、重力が存在するから等加速度運動の理解がいるな。
まあ言えることは、
2Dゲーム=高卒程度の数学力
3Dゲーム=大卒程度の数学力
が必要ってことか。
個人的にアクションに使う重力は、物理計算でリアルにするより
多少インチキくさいほうがゲームらしくて好き。
マリオみたいにさ。
数学ないと厳しいのは当たり判定かな。
当たり取るのは公式で一発だけど、衝突後の処理は
ベクトル行列を使いこなせないと絶対つまると思う。
>>13 行列、ベクトル、三角関数、微分積分がある程度分かれば
高卒、大卒、2D、3D問わず個人製作のクオリティの範囲でなら大抵のゲームは作れるよ
17 :
製作神 ◆3C/O4odLsY :2007/02/03(土) 17:56:57 ID:z04kCzis
やべぇ、どれも分からねぇ(;^ω^)…
18 :
名前は開発中のものです。:2007/02/03(土) 18:47:00 ID:jsqhnBma
行列とベクトルと三角関数が分からなければ3Dは絶対ムリだと思うのはモレだけか?
微積なんぞは知らなくてもなんとかなる。
意外と盲点なのは確率かな。こいつが出来ると仕上がりの高級感が違う・・・・。
戦略シミュとか育成シミュなら数学いらんな
>>19 ユニットの経路選択に使うダイクストラとかモロに数学じゃね?
ダイクストラって数学か?
単なるアルゴリズムって気がするが。
計算を数学と捉えるなら数学じゃね?
所詮、計算機だし。
数学とアルゴリズムの境界線ってどこにあるんだろう?
数学⊃アルゴリズム
ほとんどゲームでカウンタとかが必要だから足し算は必要だな!
2Dゲームだったら行列はいらんだろ。
三角関数くらいか?
ばか正直にやらなくてもそれらしくごまかせばいい。
2Dでも行列いるよ…。
画像をアフィン変換するのに使った。
正直数学より物理分野の方が使うと思う
高校は理系だった。
lim→∞
積分関数なんか必要ないやん。と思ってたら、
3Dグラフィックスの数学では 大いに必要だった。面食らったわ。
学校で習った知識がの一つ一つ役に立つかどうかなんて
役に立つ時が来ないと気づかない
教科書引っ張り出して自学すればいいだろw
言語やライブラリのを勉強するのと何ら変わらない。
必要になったときに何を勉強すればいいか分かる程度に知識があれば問題無いと
俺は思ってる。
結論:ゲーム製作で必要な数学の知識≒本棚の位置。
>>32 Yes そうなんですよー。
>>33 8年漬けた綺麗な綺麗なチャート式 漬け物 がございます。
いやー蔵から出してみたら、寝ちゃう。
マイクロソフトのサイトの、なかなか改行してくれなくて
やたら横に文章を読むのに 似ているこの辛さ。
>>34 そう。それがいい。
>>35 藁。蔵に入れてちゃ、そりゃ伸びない。
ジャンプの放物線なんですが
x値は等感覚で増やしy値を加速的に増やすと確かに放物線を描くのだけど
下にいくほど速くなってしまいます
一定の速度でジャンプするにはどうすればいいでしょう?
スーパーマリオのようなジャンプを実装したいのです
最初から過疎スレか質問スレにしかならんだろうと思ってたし
ついにこの日が来たかと一瞬思ったが
質問者のあまりのセンスに吹いた
>>37 y=c(x-a)(x-b)
って関数がどんなグラフになるか知ってる?
ラジアンなんて全く知らなかった。スーパーアラビアンなら知ってた。
ゆとり教育世代ってやーね
速さ一定で放物線を描きたいのなら
それには「曲線の長さ」という考えが必要だな
数年前までは高校の数学IIIだったのだけど、改正で
今は大学初年級の微積の内容ということになった
>>39 パラメトリック曲線上を動く点の速さを一定にするのは
意外と難しいと思うんだけれど
44 :
名前は開発中のものです。:2007/02/19(月) 08:56:12 ID:N5sPNDQg
紙にプロットしてモノサシで測ればOK
一定値を超えたらy値を等間隔で増やすとダメかな
スーパーマリオでも一定速度で放物線は描いてないんじゃないのかな
そんな複雑なことはしてない気がする
用途によってはマジで
>>44を実行してテーブルにでもしてた方が
手っ取り早いんじゃね?
曲線の長さじゃ面倒だから二点間を擬似的に直線として扱うと多少楽?
ただし、当然二点間が広がるほど誤差も広がるけど。
x = u
y = u^2
とすると,du に対する長さ変化の2乗は
( (dx/du)^2 + (dy/du)^2 ) du
= ( 1^2 + (2u)^2 ) du
= ( 4u^2 + 1 ) du
よって,du = dt / ( 4u^2 + 1 ) とすればよく
dt / du = 4u^2 + 1
t = (4/3) u^3 + u
式は合ってるが、tを求めてどうするんだ?w
du = dt / ( 4u^2 + 1 )
を時間で積分してuを求めんと。
実際に使う分には差分式でよいので、Cで簡単に書くならこうかね?
u += dt / ( 4*u*u + 1 );
いや、差分ではずれがたまるだろ
予想通りのレスじゃないかw
どうせ分かってるだろうが数値積分の誤差の問題だし別にいいじゃね?
んなこといってたら等加速度運動もv+=a; p+=v;の式すら使えなくなるぜ
>>49 具体的にy=x^2の時の
x,yの値をプロットするとどうなる?
とりあえず、始めの点が(0,0)その次の点が(1,1)だとして、
その次の点は(1.25,1.5625)?
>>52 ごめん、計算したらとんでもない値になった…
ってか、
>>48の式がどうせ合ってると思って適当なこと言ったけど式おかしくない?
パラメトリック曲線X(θ)に対するθ微分をX~(θ)として距離s=s(θ)とすると
dθ/ds = 1 / ||X~(θ)||
(θn - θn-1) / 冱 = 1 / ||X~(θ)||
θn - θn-1 = 冱 / ||X~(θ)||
θ += 冱 / ||X~(θ)||
さっきの場合なら
θ += 冱 / sqrt( 4*u*u + 1 );
初めの点が(0,0)で次の点が(1,1)ってことは冱=1なので、
次はθ=1.4472 くらい ⇒ ( 1.4472, 2.0943 )
最初、随分短くなってるような気がしておかしいなと思ったんだけど
この場合0〜1の間を直線で近似しちゃってるし、仕方ないかも
あーごめんルートつけるの忘れてた
0から1までとかって長い区間を近似するなら、
端点じゃなくて中央での値を使ったほうがよさそう
中心差分が出来るならそっちのがいいね
現実はy=ax^2のa=1の場合って
22ピクセル進んだら画面上端から画面下端までまっさかさまだし、
そっちのパラメータの問題な気もするがw
57 :
名前は開発中のものです。:2007/02/28(水) 21:02:35 ID:xr7QTFCR
すごいなあ
ところで楕円の描き方おしえてもらえないでしょうか?
紐とピン2個があれば描けるよ
ペンと紙も要るよ
グラウンドに足で書いちゃダメなのか
ページを眼の高さまで持ち上げて平らにして見れば
円書いた板ポリゴンを傾ければいい
画面縦横比を16×9にして円を描画する
サランラップに丸書いて両端を思いっきり引っ張る
3日以上同じネタ引っ張るのはやりすぎだろ…
>>66の様子をリアルに描画するのは結構できたらすごそうだ
点を打つ。
無限遠から見たことにしてくれと説明書に書く。
高校時代は文系です
ですが将来はゲームのプログラマーにでもなろうかなあ…
なんて思ってたけど
行列、ベクトル、三角関数、微分積分
全くわからず、
>>48 >>54なんてチンプンカンプン
どこの国の言葉だよ、って感じ
俺はプログラマーにはならない方が良いと痛感しました
ならない方が良いじゃなくて絶対無理ですね
ありがとうございました。
分からない事は無視して別の方法でやればいいんじゃね?
絶対に必要なら分かる奴に頼めばいいし
行列、ベクトル、三角関数、微分積分を知っている必要は必ずしもないが、
行列、ベクトル、三角関数、微分積分を理解できる程度の頭がないと無理。
というか、ゲームプログラマー自体は
理解できてもならないほうがいいかもね
ゲーム以外なら別に普通にプログラマとして食ってけるよ
76 :
名前は開発中のものです。:2007/06/04(月) 21:35:52 ID:eLd10i12
へー ゲーム作るのって大変なんだなぁ
まあそういうのはキモヲタ君たちにまかせるしか方法ないな
がんばっていいゲーム作ってね。
去?的!
77 :
名前は開発中のものです。:2007/06/04(月) 21:45:15 ID:rq16LU8+
\ U /
\ U /
/ ̄ ̄ ヽ,
/ ', / _/\/\/\/|_
\ ノ//, {0} /¨`ヽ {0} ,ミヽ / \
>>76 /
\ / く l ヽ._.ノ ', ゝ \ < バーカ! >
/ /⌒ リ `ー'′ ' ⌒\ \ / \
(  ̄ ̄⌒ ⌒ ̄ _)  ̄|/\/\/\/ ̄
` ̄ ̄`ヽ /´ ̄
| |
−−− ‐ ノ |
/ ノ −−−−
/ ∠_
−− | f\ ノ  ̄`丶.
| | ヽ__ノー─-- 、_ ) − _
. | | / /
| | ,' /
/ / ノ | ,' \
/ / | / \
/_ノ / ,ノ 〈 \
( 〈 ヽ.__ \ \
ヽ._> \__)
78 :
名前は開発中のものです。:2007/06/04(月) 21:46:04 ID:rq16LU8+
________
| |
| / ̄ ̄ ヽ, |
| / ', |
| {0} /¨`ヽ {0}, !
|.l ヽ._.ノ ', |
リ `ー'′ ',|
| |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
5代目 ジュウシマツ住職
去?的ってどこの国の言葉?
とりあえず線形(ベクトル、行列、射影とか)がわからんことには
3Dの世界は始まらんと思うのだがどうだろうか。
81 :
名前は開発中のものです。:2007/08/03(金) 18:39:33 ID:ccMWyj5N
行列の計算方法を教えてください><
一個一個計算すれば?
matlabとかおすすめ
85 :
84:2007/08/05(日) 01:11:51 ID:cQMefaa0
間違った。
“行列式展開法の定義”でググれば出てくると思う。
RPGで命中率ってどうやればいいだろう。
いまんところRand関数で10個か100個とって、当りの数字と外れの数字の数
たとえば1〜4までならアタリ 5〜10まではミスとかやってるんだけど
これじゃどうも純粋な命中率4割とは行かない気がする。
もっと精度のいい計算式とかプログラムないですかね
何の言語のRand関数を使ってるのか知らんが
それはRand関数の精度の問題じゃなく、多分君のコードがおかしい
エスパーしてみたところ、Rand関数が返す乱数の範囲
(例:0〜32767とか)を考慮していないのが原因だとわかった
Perlつかってま
独学だからいろいろと怪しい反面、関数は一々それ単体でいろいろテストしてから使うようにしてる
乱数の範囲はちゃんと設定してますよ。整数の0〜9か0〜99の値出すようにして+1してる
だから返す値は1〜10ないし1〜100なんだけど
なーんか、均一に値がでないきがするんですよ。これで十分なのかもしれないけれど
もっといいやり方があれば知りたいな、って思って
Perlなら浮動小数で値を返すから
Perl(9)とかやれば0.0〜10.0の範囲で乱数を返すはず
$hit = 0;
for($n=0;$n<10000;$n++){
if(Rand(10) <= 4.0){$hit+=1;}
}
$命中率 = $hit/10000;
# このコードで$命中率が0.4前後になってればRandは正常に乱数を返している
× Perl(9)とかやれば0.0〜10.0の範囲で乱数を返すはず
○ Perl(10)とかやれば0.0〜10.0の範囲で乱数を返すはず
× $命中率 = $hit/10000;
○ $命中率 = $hit/10000.0;
かな。Perlの構文忘れた。算術時の暗黙の型変換ルールとかあったよな
>89
おお!ありがとうございます。だしかにこうやれば命中率でますね
ひたすらrandの返す値を記録して返す値ごとの頻度とかみてた自分が馬鹿みたいだ
ああ・・・自分は少数とかめんどくさいからiって思って
intでrandの返す値を整数化してたんですが
どうもそのせいで命中率が+1割増えてしまっていたみたいです
少数のまま使えばこっちの思惑通りの命中率になってくれました。
本当にありがとう
今頃になって気付いたがPerl(9)とかPerl(10)てなんだww
酒入ってるとわけ分からんな、俺の書き込みは
フーリエ変換で
大学数学使うでしょ?
なんで3Dの世界は √ が頻繁にでてくるのか?
ベクトルの長さを求めるときに必要だから
pp
>>96 回転がある時点でSin Cosが出るから
100
101 :
名前は開発中のものです。:2012/09/17(月) 14:54:32.55 ID:mqbVLUJK
おめでとう
カメラは、座標(Cx,Cy,Cz)、水平方向の回転角θh、垂直方向の回転角θp、水平視野角θhv、垂直視野角θpv、y座標の正の方向が天井です。
点(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),(x4,y4,z4)で構成されている平面を見た時
この平面の各頂点の座標は、サイズX*Yで左上を(0,0)とする画面に映す時どのような座標に変換されるでしょうか
与えられる情報はCx,Cy,Cz,x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,X,Y,M(*)です
(*)水平視野角θhvと垂直視野角θpvは画面サイズX,Yと視野角倍率Mを入力すると自動で決まります
こんな感じの座標変換が1発でできたら便利なので定形にしたいのですがどうしたら良いでしょうか。