トップページgamedev
818コメント302KB

Windowsゲームプログラミング 質問スレ

■ このスレッドは過去ログ倉庫に格納されています
0001うゆ ◆vvvK3Fcqdg 2008/11/06(木) 21:28:45ID:lNn2skuQ
※回答する人も、質問する人も必ず読んでください

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する香具師 】
・ どんな事で躓いているのか明確にしる。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書け。
0017名前は開発中のものです。2008/11/11(火) 23:33:50ID:v37PimrE
>>16
移動前と移動後の間も含めて接触判定……って
いまいちピンと来ない、どういうことでしょうか?
0018名前は開発中のものです。2008/11/12(水) 01:01:19ID:M3s12QpR
>>17
ボールとブロックの距離が、
ボールの(1 フレームの)移動距離よりも短いとき、
ボールはブロックに衝突することなくすり抜けしまう。
対処方法として、
ボールの移動前後を結ぶ線分との交差判定を行う
ことが挙げられる。
0019名前は開発中のものです。2008/11/12(水) 06:00:58ID:xaKS9jsU
>>15
> ShellVX*=(-1);
同時に2つのブロックに接触すると元に戻りそうな嫌なコードだ
0020名前は開発中のものです。2008/11/12(水) 10:40:33ID:kFb9KO8q
>>14
>>19でも指摘されてるけど、2つのブロックに同時に触れた場合は
移動方向が元に戻るから貫通するよ。
だから「ShellVY*=(-1);」の後に「break;」を入れれば
とりあえず貫通するバグは無くなる。

でもそもそも判定ロジックが間違ってるので、全部書き直さなきゃダメ。

当たった部分が縦の面か横の面かの判定をしなきゃまともに跳ね返らない。
前フレームの玉の位置と現在の位置を線で結んで、各ブロックの
4つの側面のどこと交差しているかを判定する必要がある。
横面と交差してるならYだけ反転、縦面と交差してるならXだけ
反転させる。

玉のスピードが速いと、複数のブロックと同時交差する場合もある。
その時は一番玉に近いブロックとの判定だけに絞り、玉の位置も
そのブロックに接触する直前のポジションまで移動させる。
0021142008/11/12(水) 15:58:41ID:58FrgqUc
なるほど、理屈は理解できました
しかしどういうソースを書けばいいのかがまるで思いつかない……
いったいどういしたらいいのでしょうか?
0022名前は開発中のものです。2008/11/13(木) 09:45:19ID:KTGSzFRw
>>21
ベクトルが理解できてないみたいだね。
まずは数学の勉強から始めないと。
線分交差の判定はここを参考にしてみたら?
http://www5d.biglobe.ne.jp/~tomoya03/shtml/algorithm/Intersection.htm
0023142008/11/14(金) 05:07:34ID:wWFUvlwz
>>22
ありがとうございます
しかし読んでみたはいいのですがそれをどう組み込んでいいかがやっぱり思いつきませんでした

なのでがんばって自己流で判定組んでみたら
「○○.exe の 0x0056e0b6 でハンドルされていない例外が発生しました: 0xC0000094: Integer division by zero」
とか出されてしまいました、一体これはどういうことなんでしょうか?
0024142008/11/14(金) 05:14:12ID:wWFUvlwz
ソース

int ShellAX, ShellAY, ShellXT, ShellYT;
//xが次のエリアに到達するまでの時間
if(ShellVX==0){ //分母が0防止
 ShellXT=0;
}else{
 if(ShellVX>0){ //右に変化中
  ShellXT=(35-(ShellBX%35))/ShellVX;
 }else{ //左に変化中
  ShellXT=(-1)*(ShellBX%35)/ShellVX;
 }
}
//yが次のエリアに到達するまでの時間
if(ShellVY==0){ //分母が0防止
 ShellYT=0;
}else{
 if(ShellVY>0){ //下に変化中
  ShellYT=(20-(ShellBY%20))/ShellVY;
 }else{ //上に変化中
  ShellYT=(-1)*(ShellBY%35)/ShellVY;
 }
}
ShellAX=ShellBX/35;
ShellAY=ShellBY/20;
0025142008/11/14(金) 05:14:58ID:wWFUvlwz
while(ShellX>LeftEdge&&ShellX<LeftEdge+350&&ShellY>0&&ShellY<20*BlockY){ //ブロックが存在しうる範囲かどうか
 if(ShellXT<ShellYT){ //Xのエリアが先に変化
  if(ShellVX>0){ //右方向に突入
   if(BlockFlag[ShellAX+1][ShellAY]){ //突入した先にブロックが存在
    BlockFlag[ShellAX+1][ShellAY]=0;
    ShellVX*=(-1);
    ShellX=35*(ShellAY+1); //エリア突入時の境界線へ移動
    ShellY=ShellBY+(ShellVY/ShellVX)*(35*(ShellAY+1)-ShellBY); //エリア突入時にyが進んだ分だけ増加
    break;
   }else{ //突入してもなかったよ
    ShellAX++; //判定を次のエリアへ移行
    ShellXT+=35/ShellVX; //次のエリアへの突入時間加算
   }
  }else{ //左方向に突入
   if(BlockFlag[ShellAX-1][ShellAY]){ //突入した先にブロックが存在
    BlockFlag[ShellAX-1][ShellAY]=0;
    ShellVX*=(-1);
    ShellX=35*ShellAX; //エリア突入時の境界線へ移動
    ShellY=ShellBY+(ShellVY/ShellVX)*(35*ShellAX-ShellBX); //エリア突入時にyが進んだ分だけ増加
    break;
   }else{ //突入してもなかったよ
    ShellAX--; //判定を次のエリアへ移行
    ShellXT=35/ShellVX; //次のエリアへの突入時間加算
   }
  }
0026142008/11/14(金) 05:15:41ID:wWFUvlwz
 }else{ //Yのエリアが先に変化
  if(ShellVY>0){ //下方向に突入
   if(BlockFlag[ShellAX][ShellAY+1]){ //突入した先にブロックが存在
    BlockFlag[ShellAX][ShellAY+1]=0;
    ShellVY*=(-1);
    ShellY=20*(ShellAY+1); //エリア突入時の境界線へ移動
    ShellX=ShellBX+(ShellVX/ShellVY)*(20*(ShellAY+1)-ShellBY); //エリア突入時にxが進んだ分だけ増加
    break;
   }else{ //突入してもなかったよ
    ShellAY--; //判定を次のエリアへ移行
    ShellYT+=20/ShellVY; //次のエリアへの突入時間加算
   }
  }else{ //上方向に突入
   if(BlockFlag[ShellAX][ShellAY-1]){ //突入した先にブロックが存在
    BlockFlag[ShellAX][ShellAY-1]=0;
    ShellVY*=(-1);
    ShellY=20*ShellAY; //エリア突入時の境界線へ移動
    ShellX=ShellBX+(ShellVX/ShellVY)*(20*ShellAY-ShellBY); //エリア突入時にxが進んだ分だけ増加
    break;
   }else{ //突入してもなかったよ
    ShellAY++;
    ShellYT+=20/ShellVY;
   }
  }
 }
 //抜け出し要素判定
 if(ShellAX==ShellX/35||ShellAY==ShellY/20){ //判定エリアが既にボールが来たことになっている場所とおなじなら
  break;
 }
}
0027名前は開発中のものです。2008/11/14(金) 07:16:14ID:EfjKu0FE
0除算例外
>>25>>26にある除算全てが該当するな

アルゴリズムまでは読んでないのでほかの人に任せた
0028142008/11/15(土) 03:43:14ID:NhltAbHO
前のほうでやってるのに忘れていました
とりあえず
ShellXT<ShellYT のところを
ShellXT<ShellYT && ShellXT!=0 にしてみたら動いたは動いたのですが
ボールがあらぬ挙動をします
当たっているのに当たった動きをしなかったり、突然わけのわからないところへ移動したり
原因がさっぱりです……

一応上記の判定は、画面を35*20のエリアに分けて、今いるエリアから別のエリアに移動したら、
そこにブロックが有るか無いか判定、という形で組んでみています
(今更ですが、ブロックを35*20でやっているので、ですね)

もしかしたらこのあたり判定でなく、>>20の方法でやらなければダメなのでしょうか
でしたら、よければそのソースを教えていただけませんでしょうか?
0029名前は開発中のものです。2008/11/17(月) 07:17:05ID:Pi/WdcU7
もしかしなくても、お前の方法は完全に間違い。
先にベクトルの勉強しろって。
0030名前は開発中のものです。2008/11/17(月) 08:29:32ID:4WZ1RBFj
線分単位の当たり判定まではいらないにしても
少なくともどちらに跳ね返すかの判定はいるだろう
ボールの速度がブロックの厚みを超えないようにするだけでだいぶ計算量はへるし
0031名前は開発中のものです。2008/11/17(月) 15:27:54ID:p5mj6MH5
>>29
間違ってはいないよ。14の考え方は論理的には合っている。
自分で思いついた方法なら、そのまま突き進むのを俺は薦める。

とりあえず、問題がありそうな点
・XT,YTはintだと精度が足りない(AX,AY以外は全てfloatの方が望ましい)
・「左方向に突入」の部分のShellXT=35/ShellVX;は+=の間違い
・XT,YTが1フレーム分の時間を超えていたらループから抜ける必要がある
0032名前は開発中のものです。2008/11/19(水) 06:25:45ID:pWNBSaSF
合ってねーよバカw
0033名前は開発中のものです。2008/11/20(木) 02:14:48ID:njtRhxXk
なんかわからんけど >>14>>19 を見た感じ
これでいんじゃね?

CurShellVX = ShellVX;
CurShellVY = ShellVY;
for(int i=0;i<BlockX;i++){
 for(int s=0;s<BlockY;s++){
  if(BlockFlag[i][s]){
   if(ShellX>=LeftEdge+35*i-ShellR && ShellX<=LeftEdge+35*(i+1)+ShellR){ //X範囲の判定
    if(ShellY>=UpEdge+20*s-ShellR && ShellY<=UpEdge+20*(s+1)+ShellR){ //Y範囲の判定
     BlockFlag[i][s]=0;
     ShellVX = -CurShellVX;
     ShellVY = -CurShellVY;
    }
   }
  }
 }
}
0034名前は開発中のものです。2008/11/20(木) 07:27:59ID:ILiqIbsP

来た方向にそのまま戻ってくだけじゃねーかよw
反射させろよw

0035名前は開発中のものです。2008/11/20(木) 10:05:54ID:4yNvzVLI
回帰性があるんですね
0036名前は開発中のものです。2008/11/20(木) 17:22:35ID:rpm+4CxU
ゲーム作るならついにD言語のほうがとうとういいよ
0037名前は開発中のものです。2008/11/20(木) 17:55:39ID:2O47CO/r
ついにとうとうDの時代が来たか
0038名前は開発中のものです。2008/12/04(木) 15:02:10ID:tF31gb+s
Vista対応のゲームをつくる場合、
\Program Files以下にsavedataを作るのはまずいのでしょうか?
0039名前は開発中のものです。2008/12/04(木) 15:13:47ID:f93IhlbP
>>38
まずいよ
fopen( )だと NULL が帰ってくるから
0040名前は開発中のものです。2008/12/04(木) 15:15:55ID:+ofge7Nr
まずいと思うよ。書き込めるように対策してたとしても、
プレイする人の環境によって、そのまま保存されたりVirtualStoreディレクトリに
自動的に置き換わったり、警告出たり出なかったりと、動作がまちまちになるからねえ。
0041名前は開発中のものです。2008/12/04(木) 19:26:59ID:tF31gb+s
ありがとうございます。やはりそうでしたか。

savedataどこに作るか悩みますね。。
どこに作るのが一般的なのか調査してきます。
こちらでもアドバイスいただけると幸いです。
0042名前は開発中のものです。2008/12/04(木) 23:28:46ID:L0NPB3+N
マイドキュメントでも良いけど、ユーザーが直接ファイルを参照する必要がないなら
CSIDL_APPDATAのが適切かな。
0043名前は開発中のものです。2008/12/05(金) 09:49:13ID:tEf/k/KB
そうだな。
他のアプリでも使う可能性がある場合はMyDocument、専用ならAppDataだな。
0044412008/12/05(金) 18:35:25ID:7X+FAXTm
> 42 43
ありがとうございます。やはり結論としてはApp dataに落ち着きそうですね。
0045名前は開発中のものです。2008/12/05(金) 21:38:25ID:j0PqzKS1
中学1年で数学を挫折した馬鹿な僕に教えてください
普通の3D→2Dの座標変換(x、y、z座標を持った物体の画面上の表示場所x、yを求める)
の計算方法は分かるんですが、
今分からなくて知りたいのはラスタースクロールで奥行きを出すときで、
あるY座標に来たときにXをどれだけずらせばいいかを算出する計算方法です。
具体的に言えばストリートファイター2の地面の横スクロール(立体感がついている)や、
古くはマグマックスの地上面の地表みたいな表現です。
簡単に説明できなければお薦めの参考図書を紹介してくれるのでも良いです
お願いします
0046名前は開発中のものです。2008/12/06(土) 02:19:07ID:H7gLDNRD
そんなの雰囲気でおk
なんでもかんでも方程式で出さないと気がすまないのか?
0047名前は開発中のものです。2008/12/06(土) 02:28:57ID:x2Ho2N6O
スト2の地面なんて、たんにY座標に正比例してるだけじゃなかった?
0048名前は開発中のものです。2008/12/06(土) 07:30:02ID:EvnFjAdZ
>>46
答えられないなら無理にレスしなくて結構です
>>47
どういうことですか?
適当にやったらまったく立体的に見えなくてダメでしたので…
0049名前は開発中のものです。2008/12/06(土) 11:32:04ID:KLvL9x5Z
やった事無いから適当に考えるが。

背景の中心、地面の一番奥から一番手前まで直線が引いてあるとして
一番手前の地面を左右にスクロールさせると、その直線は傾く。
けど曲線にはならない。直線のはず。

つまり正比例で座標ずらせばいいってだけじゃないのかな。

それと言っておくが

>答えられないなら無理にレスしなくて結構です

こういう事を言うやつはよくいるが、「自分の性格は悪いです」って公言してるようなもんだから
誰も回答してくれなくなるぜ。
0050名前は開発中のものです。2008/12/06(土) 11:57:50ID:je8dQCcg
クオータービューで検索してね
"3DRPGプログラミング" この本を買って読んでみなさい。
0051名前は開発中のものです。2008/12/06(土) 19:52:48ID:4OvlXTAb
>>43
文句たれるバカが沸くから
結局ユーザに選ばせるしかない
0052名前は開発中のものです。2008/12/07(日) 08:52:11ID:GBSyFyEZ
適当な数式作るにはセンスが重要だよね……

>>48
スト2のリュウステージをラスタースクロールのみで再現しようとするなら、
まず板の継ぎ目がある一点に収束するように引いておく(画面中心点が妥当)。
その点からの相対Y座標を使い、
各ラインのスクロール量X = 立ち位置ラインのスクロール量X * 各ライン相対Y / 立ち位置相対Y
でいいんじゃないかな。

ただ上記の処理だと半画面分スクロールしただけでもドットがボロボロになるので、
普通は拡大縮小処理も一緒に使うと思うよ。
この場合、板は普通に長方形で書いておき左右は均一に、上下は奥に行くほど
小さくなるような雰囲気で色を塗り、
各ラインの拡大率X = 各ライン相対Y / 立ち位置相対Y
で、画面の垂直中心線上のスクロール量が同一になるように補正する。
0053名前は開発中のものです。2008/12/07(日) 09:12:51ID:NKrbC59O
>>52
きめ細かい解説ありがとうございます。
ストIIは実際拡大縮小もやっているのでしょうかね?
0054名前は開発中のものです。2008/12/07(日) 18:46:01ID:49VdVrcF
センスのない奴ほど数式に頼りたがるよな
それで、修正のリクエストがあったときに
物理法則がどうのこうのと力説したがる
0055名前は開発中のものです。2008/12/09(火) 07:07:30ID:+Z5nbwy8
数式を使わずにどうやってプログラミングするんだ。
ツクール派?
0056名前は開発中のものです。2008/12/09(火) 10:32:23ID:pmbjGPY8
ジャンプを実装するのに
いちいち質量がいくつで、重力係数がいくつだから・・・・
とかやりだすことだろ
0057名前は開発中のものです。2008/12/09(火) 10:58:49ID:UXQm+qSa
ジャンプなんかは適当でもいいし、
どんなに不自然なジャンプでもそれによってゲーム性にオリジナリティが出るんだからそれでいい。
だが3D表示をするにあたって計算が適当じゃあ3Dに見えないだろ
問題が全く別だよ
トンチンカンな会話すんな
0058名前は開発中のものです。2008/12/09(火) 11:55:35ID:HsEnKH5F
じゃあ全く別な問題を持ち出す>>57が一番トンチンカンということになるな。
0059名前は開発中のものです。2008/12/09(火) 14:25:54ID:6m6wEUZw
普通に考えてこんなのに3D計算なんかしてないだろ
単純に奥のものが手前にあるもより遅く動いてるだけ
どれくらい遅くするかは作った人間のセンス
たぶん何度も係数をいじって自分の感覚で
ベストと思われる動きでフィックスしてるはず
この感覚が万人に受け入れられない人をセンスのない人という
0060名前は開発中のものです。2008/12/11(木) 07:02:29ID:5iwyeWDL
3D計算してもしなくても、最終的に数式に落とす事になるだろ。
それを聞いてるんじゃないの?
具体的な係数を聞いてるわけじゃないし、そこはAとかBとかでいいじゃん。
0061名前は開発中のものです。2008/12/18(木) 11:30:02ID:xmq4VfJC
ライトユーザー向けのPCゲームつくりたいんだけど、
Vramの推奨スペックはいくつにすべきか?
ご意見伺いたいです。
0062名前は開発中のものです。2008/12/18(木) 12:25:16ID:5uBOIM3K
何作るかによるでしょ。
3DじゃなけりゃWindowsが使えるだけあればいいよ。
0063名前は開発中のものです。2008/12/18(木) 12:43:11ID:NjDBhxVW
>>61
2Dなら800*600*32ビット1画面で2Mバイト
裏画面入れて4Mバイトあればいいんじゃない
0064名前は開発中のものです。2008/12/19(金) 05:45:59ID:/GzaBikq
>>61
現に画面が表示されていれば、VRAM容量は関係ない。
画面表示用バッファは、すべてメインメモリ(DIBなど)に取れるから。
0065名前は開発中のものです。2008/12/19(金) 07:18:28ID:5Lxw8rsT
2Dゲーならシステムメモリだけでも全然快適に動くから
VRAMゼロでもかまわないよ。
0066名前は開発中のものです。2008/12/19(金) 09:16:19ID:aOn2CrS2
チェックした最低動作環境でのVRAM容量を書いておけばいいよ
0067名前は開発中のものです。2008/12/19(金) 17:59:20ID:gIPakjTt
いまどきの安物パソコンなら専用VRAMなんか構えてないから
メインメモリ共有だし。容量だけなら128MB〜512MBくらいは普通にある。
0068名前は開発中のものです。2008/12/19(金) 22:25:50ID:VMJ9+Wbr
>>61
2Dゲーなら問題なし。
3Dなら、ユーザーが大目のMMORPGを参考にするといいと思う
0069名前は開発中のものです。2008/12/19(金) 22:26:25ID:VMJ9+Wbr
> 大目のMMORPGを
大目の日本のMMORPGを

0070名前は開発中のものです。2008/12/20(土) 00:34:45ID:EllKojph
俺も2Dゲームは画像データとかシステムメモリに置いてたけどさ、
描画周りにアクセラレーション効かせるのってあんまり一般的じゃないの?
0071名前は開発中のものです。2008/12/20(土) 00:55:24ID:CbJUTGDn
いつの時代からタイムスリッパしてきやがりましたか?
0072名前は開発中のものです。2008/12/22(月) 00:06:41ID:gFPzk4ah
>>61
どのみちライトユーザーにVRAMとか行っても理解してもらえない。
奴等は自分のマシンのスペック分からずにで、動いたかどうかしか興味が無い。
0073612008/12/22(月) 12:28:11ID:fcAyGbxP
Vramの件、みな、どうもご親切にサンクス。
レスおそくなりすいません。カキコできなくて。

何作るかによりますね。すいません。2Dゲーで
Flashで作ったアニメデータがバリバリと動く予定です。
DirectX使っていますので、Vramの確保は必須かもと思っていました。。
ライトユーザーに理解してもらえなくてもいいんですが、
作り手としてってことでしょうか。
0074名前は開発中のものです。2008/12/23(火) 02:14:34ID:vL1qdlBE
>>73
72書いた者だけど、質問の意図は分かります。
ただ、どれだけ気にしてもやっぱり動かない環境は残ってしまって、
そういう環境のユーザーほどマシンスペック分からずに苦情出してくるからな〜
すんません。個人的トラウマでした。
否定的な意見はやめて、

DirectXなら、使用するDirectXのバージョンがそのままマシンの世代を表しているって
考えてもいいんじゃないでしょうか?
例えば、DX7使用ならVRAM8MB、DX8ならVRAM32、とか。
あ、値は適当ですが。
0075名前は開発中のものです。2008/12/23(火) 20:12:05ID:NOdX60e0
お前「殺意を覚えるくらい馬鹿ですね」って言われたことない?
0076名前は開発中のものです。2008/12/23(火) 20:41:02ID:DrL02hk4
VRAMの大きさ(容量)を知る関数のようなもの、ありますか?
0077名前は開発中のものです。2008/12/24(水) 13:55:34ID:ir5LUNRv
>>76
DirectDrawなら
IDirectDraw::GetCaps( )で
http://msdn.microsoft.com/ja-jp/library/cc353808.aspx
dwVidMemTotal
ビデオ メモリの合計容量。
0078732008/12/26(金) 16:23:02ID:YwwBT0Kv
>74
どうもサンクス。
トラウマ…なんとなくわかります。
0079名前は開発中のものです。2008/12/31(水) 14:01:10ID:VvNRRwGl
Windowsのソリティアのように
コントロールをドラグ&ドロプ、リリスしたとき、
定位置に整列する(磁石に引きつけられるように)コードの
せめて考え方、ヒントを教えて頂けないでしょうか

0080名前は開発中のものです。2008/12/31(水) 14:11:55ID:Zi1V94lh
フレーム毎に目的の位置に近づけていくだけ
0081名前は開発中のものです。2008/12/31(水) 14:12:09ID:sicDYG8u
論理的思考を身につけるには、まず正しい日本語から。
0082名前は開発中のものです。2008/12/31(水) 14:25:51ID:M5esy22P
まずは自力で線分を引けるように。
線が引ければ途中のXY座標もわりだせるだろう。
0083名前は開発中のものです。2008/12/31(水) 14:42:28ID:Y1/xuelj
表示する座標 (x,y)
移動前の座標 (sx,sy)
移動後の座標 (ex,ey)

Aパターン
x+=((ex-sx)/m) ;
y+=((ey-sy)/m) ;
単純に終点へのベクトルを座標に足していく
mの値が大きければ遅く小さければ速く移動
x+=((ex-x)/m) ;
y+=((ey-y)/m) ;
とすると遠いときほど早く近いときほど遅くなり磁石っぽい

Bパターン
x=sx+(ex-sx)*m;
y=sy+(ey-sy)*m;
mを0から1.0へ増やす
mの値にsin(0)〜sin(π/2)を使うと磁石っぽい
Aとの違いは始点と終点の距離にかかわらず同じ時間で終点に到達する
0084名前は開発中のものです。2008/12/31(水) 20:18:33ID:Zi1V94lh
>とすると遠いときほど早く近いときほど遅くなり磁石っぽい

磁石は距離が近くなるほど磁場が強くなるので、遠いほど遅く、近くなると速くなる。
つまり真逆。
0085名前は開発中のものです。2009/01/04(日) 15:53:08ID:PprE941C
DirectXとc++で2D格闘ゲームを作りたいと思うのですが、ソースってどこかにないですかね
参考にしたいのですが、ググり方が悪いのか出てきません
ソースの置いてある場所があったら教えて頂きたいのですが、ないですかね
0086名前は開発中のものです。2009/01/04(日) 17:35:22ID:VQhzW2V4
逆に君は自分の自作のソースを晒したいと思ってますかね
ぐぐってパクるだけで分け与えなければどこにもなくて当たり前じゃないですかね
馬鹿ですかね
0087名前は開発中のものです。2009/01/05(月) 01:19:54ID:HsIAylDp
>>86
ガキ臭い煽り方だな
なんか嫌なことでもあったのか
0088名前は開発中のものです。2009/01/06(火) 13:57:16ID:24x5pO5Z
いや、でもいいこと言っている
0089名前は開発中のものです。2009/01/06(火) 14:37:31ID:ZJKN10wA
子曰く
「どうすればいいのか、どうすればいいのか、と考え悩みぬいた者でなければ
 私にもどうしようもない」

最初から他人をアテにしてるようじゃダメってことだな。
0090名前は開発中のものです。2009/01/06(火) 19:50:41ID:5KaPAE6Y
情弱ですか
0091名前は開発中のものです。2009/01/06(火) 21:55:02ID:3TYaYHJU
>>85
格闘げーはアニメーション画像が命みたいなところがあるから、
素材の用意が大変過ぎてプログラミングの教材には向かない罠。
0092名前は開発中のものです。2009/01/06(火) 22:09:59ID:kH8rEgPB
>>85
逆にいえばアニメーション、当たり判定、キー入力ができれば作れるともいえる
キー入力はちょっと特殊だけどそれ以外はインベーダーゲームの応用
0093名前は開発中のものです。2009/01/06(火) 22:15:01ID:NsliiIma
ジョイメカファイト・・・
0094名前は開発中のものです。2009/01/07(水) 08:43:07ID:tOeiWdUq
いっそ3D格ゲーにすりゃ、3Dアニメーションの基本をごっそり勉強できる
0095名前は開発中のものです。2009/01/07(水) 16:52:39ID:F0TH9wEI
PS3のリトルビッグプラネットのCGはDirectXでも表現出来るの?
0096名前は開発中のものです。2009/01/07(水) 17:03:09ID:DnzfbcT/
表示するだけならできるだろうけど
アレのすごい所って主に物理演算の部分だろ?
まったく別問題な希ガス
0097名前は開発中のものです。2009/01/07(水) 17:10:42ID:F0TH9wEI
物理演算はNVIDIAならphysxが使える
あの程度なら余裕なはず
0098名前は開発中のものです。2009/01/07(水) 17:14:31ID:F0TH9wEI
で具体的にどうやればあんなクオリティのCGが作れるのか知りたい
プログラムは出来るけどCGに関してはまったくの素人なんで
0099名前は開発中のものです。2009/01/07(水) 19:51:09ID:ZchRr+VS
>>94
モデリングとアニメーションツールの勉強から始めなきゃならないじゃん。

プログラミングの勉強としてはすっごく遠回り。
0100名前は開発中のものです。2009/01/08(木) 02:23:25ID:OwvAnpBE
>>98
とりあえずBlenderでも弄ってみたら
質は遠く及ばんなりに、基礎やクオリティ上げる定番手法は一式遊べるよ
0101名前は開発中のものです。2009/01/08(木) 13:45:17ID:NsMjn5lD
多少はモデリングのことも勉強しとかんと
デザイナーと会話できないからな
0102名前は開発中のものです。2009/01/09(金) 00:10:10ID:xgPo70G1
DirectXでって言ったでしょ
0103名前は開発中のものです。2009/01/09(金) 00:31:42ID:venL3ic3
>102
CG板で聞けば?CGの話なんだし
0104名前は開発中のものです。2009/01/09(金) 02:32:56ID:2uf5nwF0
>>102
>>96
表示だけならDirectXでもできるぞ。他の人間も指摘してるとおり
データ(モデル・モーション・マテリアル(まぁシェーダーも含むが))を用意できればの話だがな
動きについては物理シミュ用のライブラリ(bulletとかPhysX)でもひっぱってきたほうが楽だな
ただアレの爆発エフェクトを真似るためには簡易なCFDのコードが必要だが、ゲーム用のフリーの
ライブラリでそういう機能を提供してるものがあるのかどうかは知らん

なければ適当に2D格子用意して格子気体法とかCIP法の劣化版みたいなコードを組めばいい
どうせシミュったって何かを厳密に再現する必要はないし、支配方程式が導出できる必要も無い
それっぽい流れ場のアニメーションができればなんでもいい

>で具体的にどうやればあんなクオリティのCGが作れるのか知りたい

>>103
データを作る部分の話はCG板で聞いたほうがいいんじゃね
ティーポットとかトーラスとかシリンダに毛とか生やすだけでおkならD3DXでいけるけどな
0105名前は開発中のものです。2009/01/09(金) 03:03:09ID:xgPo70G1
いやだからリアルフォトマティックレイとレーシングでしょ?
モデルとかそういう問題なの?
ただの無地の球体でもレイトレーシングのアルゴリズムで全然違うでしょ
レイトレーシングの仕方なんて聞いてないんだよ
同じ効果をDirectXで高速に描画出来る方法があるのかって話をしてるの
0106名前は開発中のものです。2009/01/09(金) 03:06:00ID:xgPo70G1
あと物理演算の領域はこっちの分野だから君らに教わることはないよ
0107名前は開発中のものです。2009/01/09(金) 03:22:44ID:2uf5nwF0
>あと物理演算の領域はこっちの分野だから君らに教わることはないよ

おかしいな。分かるならCUDAとか使ってるだろうし
GLSLやHLSLでサクサクと俺シェーダー組めてもいいはずだが・・・

リアルタイムなCFDをやる場合って差分スキームはいつもナニ使ってるの?
後学のために教えてください
0108名前は開発中のものです。2009/01/09(金) 08:06:03ID:xgPo70G1
CUDAとシェーダーは別次元の話だな
物理演算をリアルタイム処理する人しかこの世にいないと思ってんの?
0109名前は開発中のものです。2009/01/09(金) 08:10:48ID:xgPo70G1
高速化技法をいくら語られても根幹のアルゴリズムが分からないって話をしてんの
シェーダー分かったらなんなんだ
超リアルなCGが書けるのか?書けないだろ?
0110名前は開発中のものです。2009/01/09(金) 08:22:52ID:xgPo70G1
リトルビックプラネットのCGはフォトリアルスティックレイトレーシングの結果のようなリアルな画像なの
PS3でもさすがにフルHDをレイトレーシングするような能力は無い
君の大好きなCUDAやGLSLを使ってもPCでは到底無理なの
PS3はDirectXベースに作られてるんだから当然同じことがPCでも出来るだろうと思ってるわけ
レイトレーシングはあり得ないのでどうやってんのかを知りたいの
物理演算とか誰も聞いてないから
0111名前は開発中のものです。2009/01/09(金) 08:49:59ID:9nYZuqdQ
自分で解答言ってないか?
0112名前は開発中のものです。2009/01/09(金) 12:20:56ID:FD9CF3VW
なんでコイツ上目線で質問してんの?人格障害でもあんの?
0113名前は開発中のものです。2009/01/09(金) 13:18:37ID:i9tzRBGb
2chに慣れちゃだめだぞ。:アルファルファモザイク
http://alfalfa.livedoor.biz/archives/51415753.html
0114名前は開発中のものです。2009/01/09(金) 18:15:29ID:xgPo70G1
明らかに知識が下の人が的外れな回答して偉ぶってるからw
0115名前は開発中のものです。2009/01/09(金) 20:40:58ID:GzTmK6ph
つ鏡
0116名前は開発中のものです。2009/01/10(土) 03:00:31ID:1Stepbtb
(;・∀・)
■ このスレッドは過去ログ倉庫に格納されています