1read 100read
2013年07月ゲ製作技術330: ゲーム製作で必要な数学の知識 (102)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
著作権の切れた名曲を晒すスレ (192)
おめえらRPGツクールを崇め (106)
スーパーマリオブラザーズの動作って・・ (829)
あびる優容疑者をネタにゲームを作ろう (173)
デバッガを小一時間問い詰めたい (119)
■吉里吉里/KAG/TJS雑談質問スレ■その27 (387)
ゲーム製作で必要な数学の知識
- 1 :2007/02/02 〜 最終レス :2013/05/18
- わからなかったらここで聞けばいいじゃない
なるべく詳しく日本語で質問してね
- 2 :
- 自分で調べられない奴は何をやっても駄目。
〜終了〜
- 3 :
- \ U /
\ U /
/ ̄ ̄ ヽ,
/ ', / _/\/\/\/|_
\ ノ//, {0} /¨`ヽ {0} ,ミヽ / \ /
\ / く l ヽ._.ノ ', ゝ \ < バーカ! >
/ /⌒ リ `ー'′ ' ⌒\ \ / \
(  ̄ ̄⌒ ⌒ ̄ _)  ̄|/\/\/\/ ̄
` ̄ ̄`ヽ /´ ̄
| |
−−− ‐ ノ |
/ ノ −−−−
/ ∠_
−− | f\ ノ  ̄`丶.
| | ヽ__ノー─-- 、_ ) − _
. | | / /
| | ,' /
/ / ノ | ,' \
/ / | / \
/_ノ / ,ノ 〈 \
( 〈 ヽ.__ \ \
ヽ._> \__)
- 4 :
- クソスレ立てた>>1が1日たったら別人として質問する
そんなパターンがありますよね
- 5 :
- 加減乗除と論理演算と三角関数が分かればいいんじゃね?
- 6 :
- 円の方程式とかもいるかな
あとは物理だな
- 7 :
- こういう糞スレでは、何のゲームを作るのかという前提条件すら定義せず、
いきなり結論を提示する馬鹿がしたり顔で出てくるのは何でだろう?
- 8 :
- 削除依頼くらいの数学の知識があればいんじゃないか?
- 9 :
- http://www.square-enix.co.jp/e306/titles/fabula/ff13/e3trailer.html
↑
一人だけで3日かけて作った作品です。
感想とかくれるとありがたいです。
- 10 :
- まずはスクエニのドメインをナントカしろ。
- 11 :
- 3D使わなかったらたいして数学なんて使わないぞ
- 12 :
- 3D組むんだったらクォータニオンが使えないと苦労するな。
- 13 :
- >>11
2Dでもアクション系だったら少し使うけどな。
STGのオブジェクト軌道は普通ベクトルの概念をベースに考えるし、
特殊な軌道を描くときに曲線のパラメタ表示や微分を使ったりもする。
弾の狙い方向では回転行列なんかも必要になるな。
そのベースになる三角関数はもちろん不可欠。逆三角関数も使えないと何かと困る。
アクションだと、重力が存在するから等加速度運動の理解がいるな。
まあ言えることは、
2Dゲーム=高卒程度の数学力
3Dゲーム=大卒程度の数学力
が必要ってことか。
- 14 :
- 個人的にアクションに使う重力は、物理計算でリアルにするより
多少インチキくさいほうがゲームらしくて好き。
マリオみたいにさ。
- 15 :
- 数学ないと厳しいのは当たり判定かな。
当たり取るのは公式で一発だけど、衝突後の処理は
ベクトル行列を使いこなせないと絶対つまると思う。
- 16 :
- >>13
行列、ベクトル、三角関数、微分積分がある程度分かれば
高卒、大卒、2D、3D問わず個人製作のクオリティの範囲でなら大抵のゲームは作れるよ
- 17 :
- やべぇ、どれも分からねぇ(;^ω^)…
- 18 :
- 行列とベクトルと三角関数が分からなければ3Dは絶対ムリだと思うのはモレだけか?
微積なんぞは知らなくてもなんとかなる。
意外と盲点なのは確率かな。こいつが出来ると仕上がりの高級感が違う・・・・。
- 19 :
- 戦略シミュとか育成シミュなら数学いらんな
- 20 :
- >>19
ユニットの経路選択に使うダイクストラとかモロに数学じゃね?
- 21 :
- ダイクストラって数学か?
単なるアルゴリズムって気がするが。
- 22 :
- 計算を数学と捉えるなら数学じゃね?
所詮、計算機だし。
- 23 :
- >>21
離散数学の中のグラフ理論の一部
- 24 :
- 数学とアルゴリズムの境界線ってどこにあるんだろう?
- 25 :
- 数学⊃アルゴリズム
- 26 :
- ほとんどゲームでカウンタとかが必要だから足し算は必要だな!
- 27 :
- 2Dゲームだったら行列はいらんだろ。
三角関数くらいか?
ばか正直にやらなくてもそれらしくごまかせばいい。
- 28 :
- 2Dでも行列いるよ…。
画像をアフィン変換するのに使った。
- 29 :
- 正直数学より物理分野の方が使うと思う
- 30 :
- 呼んだ?
ゲームのための物理(力学)
ttp://pc10.2ch.net/test/read.cgi/gamedev/1018255106/
- 31 :
- 高校は理系だった。
lim→∞
積分関数なんか必要ないやん。と思ってたら、
3Dグラフィックスの数学では 大いに必要だった。面食らったわ。
- 32 :
- 学校で習った知識がの一つ一つ役に立つかどうかなんて
役に立つ時が来ないと気づかない
- 33 :
- 教科書引っ張り出して自学すればいいだろw
言語やライブラリのを勉強するのと何ら変わらない。
- 34 :
- 必要になったときに何を勉強すればいいか分かる程度に知識があれば問題無いと
俺は思ってる。
- 35 :
- 結論:ゲーム製作で必要な数学の知識≒本棚の位置。
- 36 :
- >>32
Yes そうなんですよー。
>>33
8年漬けた綺麗な綺麗なチャート式 漬け物 がございます。
いやー蔵から出してみたら、寝ちゃう。
マイクロソフトのサイトの、なかなか改行してくれなくて
やたら横に文章を読むのに 似ているこの辛さ。
>>34
そう。それがいい。
>>35
藁。蔵に入れてちゃ、そりゃ伸びない。
- 37 :
- ジャンプの放物線なんですが
x値は等感覚で増やしy値を加速的に増やすと確かに放物線を描くのだけど
下にいくほど速くなってしまいます
一定の速度でジャンプするにはどうすればいいでしょう?
スーパーマリオのようなジャンプを実装したいのです
- 38 :
- 最初から過疎スレか質問スレにしかならんだろうと思ってたし
ついにこの日が来たかと一瞬思ったが
質問者のあまりのセンスに吹いた
- 39 :
- >>37
y=c(x-a)(x-b)
って関数がどんなグラフになるか知ってる?
- 40 :
- ラジアンなんて全く知らなかった。スーパーアラビアンなら知ってた。
- 41 :
- ゆとり教育世代ってやーね
- 42 :
- 速さ一定で放物線を描きたいのなら
それには「曲線の長さ」という考えが必要だな
数年前までは高校の数学IIIだったのだけど、改正で
今は大学初年級の微積の内容ということになった
- 43 :
- >>39
パラメトリック曲線上を動く点の速さを一定にするのは
意外と難しいと思うんだけれど
- 44 :
- 紙にプロットしてモノサシで測ればOK
- 45 :
- >>44
天 才 現 る
- 46 :
- 一定値を超えたらy値を等間隔で増やすとダメかな
スーパーマリオでも一定速度で放物線は描いてないんじゃないのかな
そんな複雑なことはしてない気がする
- 47 :
- 用途によってはマジで>>44を実行してテーブルにでもしてた方が
手っ取り早いんじゃね?
曲線の長さじゃ面倒だから二点間を擬似的に直線として扱うと多少楽?
ただし、当然二点間が広がるほど誤差も広がるけど。
- 48 :
- 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
- 49 :
- 式は合ってるが、tを求めてどうするんだ?w
du = dt / ( 4u^2 + 1 )
を時間で積分してuを求めんと。
実際に使う分には差分式でよいので、Cで簡単に書くならこうかね?
u += dt / ( 4*u*u + 1 );
- 50 :
- いや、差分ではずれがたまるだろ
- 51 :
- 予想通りのレスじゃないかw
どうせ分かってるだろうが数値積分の誤差の問題だし別にいいじゃね?
んなこといってたら等加速度運動もv+=a; p+=v;の式すら使えなくなるぜ
- 52 :
- >>49
具体的にy=x^2の時の
x,yの値をプロットするとどうなる?
とりあえず、始めの点が(0,0)その次の点が(1,1)だとして、
その次の点は(1.25,1.5625)?
- 53 :
- >>52
それはdtの値による
- 54 :
- >>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の間を直線で近似しちゃってるし、仕方ないかも
- 55 :
- あーごめんルートつけるの忘れてた
0から1までとかって長い区間を近似するなら、
端点じゃなくて中央での値を使ったほうがよさそう
- 56 :
- 中心差分が出来るならそっちのがいいね
現実はy=ax^2のa=1の場合って
22ピクセル進んだら画面上端から画面下端までまっさかさまだし、
そっちのパラメータの問題な気もするがw
- 57 :
- すごいなあ
ところで楕円の描き方おしえてもらえないでしょうか?
- 58 :
- >>57
公式使え
ってことじゃなく?
- 59 :
- 紐とピン2個があれば描けるよ
- 60 :
- ペンと紙も要るよ
- 61 :
- グラウンドに足で書いちゃダメなのか
- 62 :
- >>61
三本目の足か
- 63 :
- ページを眼の高さまで持ち上げて平らにして見れば
- 64 :
- 円書いた板ポリゴンを傾ければいい
- 65 :
- 画面縦横比を16×9にして円を描画する
- 66 :
- サランラップに丸書いて両端を思いっきり引っ張る
- 67 :
- 3日以上同じネタ引っ張るのはやりすぎだろ…
- 68 :
- >>66の様子をリアルに描画するのは結構できたらすごそうだ
- 69 :
- 点を打つ。
無限遠から見たことにしてくれと説明書に書く。
- 70 :
- 高校時代は文系です
ですが将来はゲームのプログラマーにでもなろうかなあ…
なんて思ってたけど
行列、ベクトル、三角関数、微分積分
全くわからず、
>>48 >>54なんてチンプンカンプン
どこの国の言葉だよ、って感じ
俺はプログラマーにはならない方が良いと痛感しました
ならない方が良いじゃなくて絶対無理ですね
ありがとうございました。
- 71 :
- 分からない事は無視して別の方法でやればいいんじゃね?
絶対に必要なら分かる奴に頼めばいいし
- 72 :
- 行列、ベクトル、三角関数、微分積分を知っている必要は必ずしもないが、
行列、ベクトル、三角関数、微分積分を理解できる程度の頭がないと無理。
- 73 :
- というか、ゲームプログラマー自体は
理解できてもならないほうがいいかもね
- 74 :
- ゲーム以外なら別に普通にプログラマとして食ってけるよ
- 75 :
- 役に立つかどうかはわからんけど一応おいてきまつね
つhttp://queen.kagennotuki.com/bm/
- 76 :
- へー ゲーム作るのって大変なんだなぁ
まあそういうのはキモヲタ君たちにまかせるしか方法ないな
がんばっていいゲーム作ってね。
去?的!
- 77 :
- \ U /
\ U /
/ ̄ ̄ ヽ,
/ ', / _/\/\/\/|_
\ ノ//, {0} /¨`ヽ {0} ,ミヽ / \ >>76 /
\ / く l ヽ._.ノ ', ゝ \ < バーカ! >
/ /⌒ リ `ー'′ ' ⌒\ \ / \
(  ̄ ̄⌒ ⌒ ̄ _)  ̄|/\/\/\/ ̄
` ̄ ̄`ヽ /´ ̄
| |
−−− ‐ ノ |
/ ノ −−−−
/ ∠_
−− | f\ ノ  ̄`丶.
| | ヽ__ノー─-- 、_ ) − _
. | | / /
| | ,' /
/ / ノ | ,' \
/ / | / \
/_ノ / ,ノ 〈 \
( 〈 ヽ.__ \ \
ヽ._> \__)
- 78 :
- ________
| |
| / ̄ ̄ ヽ, |
| / ', |
| {0} /¨`ヽ {0}, !
|.l ヽ._.ノ ', |
リ `ー'′ ',|
| |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
5代目 ジュウシマツ住職
- 79 :
- 去?的ってどこの国の言葉?
- 80 :
- とりあえず線形(ベクトル、行列、射影とか)がわからんことには
3Dの世界は始まらんと思うのだがどうだろうか。
- 81 :
- 行列の計算方法を教えてください><
- 82 :
- 一個一個計算すれば?
- 83 :
- matlabとかおすすめ
- 84 :
- >>81
行列式展開法でぐぐってみ
- 85 :
- 間違った。
“行列式展開法の定義”でググれば出てくると思う。
- 86 :
- RPGで命中率ってどうやればいいだろう。
いまんところRand関数で10個か100個とって、当りの数字と外れの数字の数
たとえば1〜4までならアタリ 5〜10まではミスとかやってるんだけど
これじゃどうも純粋な命中率4割とは行かない気がする。
もっと精度のいい計算式とかプログラムないですかね
- 87 :
- 何の言語のRand関数を使ってるのか知らんが
それはRand関数の精度の問題じゃなく、多分君のコードがおかしい
エスパーしてみたところ、Rand関数が返す乱数の範囲
(例:0〜32767とか)を考慮していないのが原因だとわかった
- 88 :
- Perlつかってま
独学だからいろいろと怪しい反面、関数は一々それ単体でいろいろテストしてから使うようにしてる
乱数の範囲はちゃんと設定してますよ。整数の0〜9か0〜99の値出すようにして+1してる
だから返す値は1〜10ないし1〜100なんだけど
なーんか、均一に値がでないきがするんですよ。これで十分なのかもしれないけれど
もっといいやり方があれば知りたいな、って思って
- 89 :
- 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は正常に乱数を返している
- 90 :
- × Perl(9)とかやれば0.0〜10.0の範囲で乱数を返すはず
○ Perl(10)とかやれば0.0〜10.0の範囲で乱数を返すはず
- 91 :
- × $命中率 = $hit/10000;
○ $命中率 = $hit/10000.0;
かな。Perlの構文忘れた。算術時の暗黙の型変換ルールとかあったよな
- 92 :
- >89
おお!ありがとうございます。だしかにこうやれば命中率でますね
ひたすらrandの返す値を記録して返す値ごとの頻度とかみてた自分が馬鹿みたいだ
- 93 :
- ああ・・・自分は少数とかめんどくさいからiって思って
intでrandの返す値を整数化してたんですが
どうもそのせいで命中率が+1割増えてしまっていたみたいです
少数のまま使えばこっちの思惑通りの命中率になってくれました。
本当にありがとう
- 94 :
- 今頃になって気付いたがPerl(9)とかPerl(10)てなんだww
酒入ってるとわけ分からんな、俺の書き込みは
- 95 :
- フーリエ変換で
大学数学使うでしょ?
- 96 :
- なんで3Dの世界は √ が頻繁にでてくるのか?
- 97 :
- ベクトルの長さを求めるときに必要だから
- 98 :
- pp
- 99 :
- >>96
回転がある時点でSin Cosが出るから
- 100read 1read
- 1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
ネットゲームforHSP『無人島』制作スレ (748)
3DPGの最終目標 (125)
【SOF2】新・デモバスターを作るスレ【DEMO】 (193)
MMORPG製作プロジェクト(仮) (117)
ライブラリ製作スレ Part001 (100)
【iPhone】ゲームつくるよ【iPod touch】 (121)
--log9.info------------------
( ゚Д゚)<それどころじゃないスレ (111)
忘れられない異性への叫びを書き込むスレ (219)
失恋したあなたを何としても、励まします! (111)
未練が残ったまま次へいくのってアリ? (125)
全国のストーカーの皆さんへ (154)
想いを書きなぐって未練を断ち切るスレ (219)
腹が立って仕方がないw (177)
ふる側とふった側の辛さは雲泥の差 (587)
相思相愛だが付き合えないってあるんだな (206)
今頃、あなたのの元彼は、他の女に寝顔を見られてる (151)
★復縁から結婚しました★相談に乗りますpart25 (557)
正社員になれなかったことで彼女にふられました・2 (195)
恋ってどんな味がするんだろう? (132)
【ごめんね】もう復縁はできない【音信不通】 (117)
元カレ元カノに二度と会えないと思うと死にたくなる (587)
きれいさっぱり忘れたい (115)
--log55.com------------------
後ろ向きに脱ニートを試みて愚痴ったりするスレ19
やって良かったスレin喪女板 11
カーリング女子アンチスレ★2
どうせ吹いたスレタイでも集めようぜ38
メンヘラの喪女 その44くらい
◆好きだけど人に言えない 48◆
同人(腐)女子の喪女 34
今の日本は「男尊女卑」か「女尊男卑」か