トップページgamedev
1001コメント327KB

【初心者】スレを立てる前にココで質問を【Part11】

■ このスレッドは過去ログ倉庫に格納されています
0001スレ立て挑戦2006/01/20(金) 13:16:04ID:AUyOArlH
疑問に思うことがあれば、スレを立てずに、まずはココで質問。
スレッドを立てる前にはローカルルールを読みましょう。
http://pc8.2ch.net/gamedev/

>>980 を踏んだ人は次スレ立てをお願いします。

その他は>>2-10ぐらい
0332名前は開発中のものです。2006/03/05(日) 19:02:29ID:EOkGnGj1
>>326
不労所得系だろ
この人のメルマガ面白いよw
0333名前は開発中のものです。2006/03/05(日) 19:05:07ID:8Wk7Clb4
>>331

フィールドとかTerragenとかそこら辺のソフトで作っちゃだめなのかな。
まぁ、ありがとう。
とりあえずググッてくる。
0334名前は開発中のものです。2006/03/05(日) 19:12:01ID:8Wk7Clb4
スマソ。ゴバ━━━━(゚∀゚)━━━━ク!!!!
スルーしてくれ。
0335名前は開発中のものです。2006/03/05(日) 20:32:09ID:CivhMQLb
3Dの陰茎処理ってどうやればいいんですか?
0336名前は開発中のものです。2006/03/05(日) 20:51:49ID:QJ2cT6HJ
とりあえず、ズボンとパンツ脱げ
0337名前は開発中のものです。2006/03/07(火) 09:54:46ID:ocK6AFb/
>>335が実は女と言う展開に期待
0338名前は開発中のものです。2006/03/07(火) 20:24:24ID:uDRwpbfX
OGREのスレってないんですかー?
0339名前は開発中のものです。2006/03/07(火) 23:43:05ID:594+S8KL
GamDevPukiWiki - FrontPageのお約束事に
6.いかなる理由でもペイピッポォ禁止。
ってあったんですが、「ペイピッポォ」とはなんですか?
0340名前は開発中のものです。2006/03/08(水) 00:51:39ID:eGWNaoTd
>>339
その名を出すな!
心の傷が…
0341名前は開発中のものです。2006/03/08(水) 00:54:26ID:eqmtSlqY
>>339
http://www.google.co.jp/search?q=%83y%83C%83s%83b%83%7C%83H&hl=ja&lr=lang_ja&oe=Shift_JIS&num=20&btnG=Google+%8C%9F%8D%F5
0342名前は開発中のものです。2006/03/08(水) 04:07:00ID:zBZ1Ic9S
>>339
ようは、AA荒らしです。
かつては、すぐに終了!終了!と書き込む終了厨もいました
0343名前は開発中のものです。2006/03/08(水) 08:32:23ID:TNuAov0P
かつての暗黒の時代を思い出して泣けてきた。
0344名前は開発中のものです。2006/03/08(水) 10:29:33ID:mZu8SEWn
すっかり記憶の彼方だったよ。名作はいつまでも心に残るけど
荒らしなんざ、幾ら荒らそうが何も残せないんだよな。
0345名前は開発中のものです。2006/03/08(水) 18:08:26ID:I+Hyb9kc
だってみんな似たより寄ったりだもん、ウザイだけだし
0346名前は開発中のものです。2006/03/08(水) 23:15:49ID:iwRqR5yC
質問です。伝説のオウガバトルみたいな戦闘画面を
作れるソフトはどれですか?
0347名前は開発中のものです。2006/03/08(水) 23:49:36ID:IYMZ/RTq
画面だけならどんな言語でも可能だと思う
0348名前は開発中のものです。2006/03/08(水) 23:50:07ID:cm23didt
質問です。DOOM3みたいなゲームを
作れるソフトはどれですか?
0349名前は開発中のものです。2006/03/08(水) 23:52:48ID:MiWOop7n
java
0350名前は開発中のものです。2006/03/09(木) 02:09:11ID:9cJl+Phy
バイナリエディタがあれば何でも作れる。
0351名前は開発中のものです。2006/03/09(木) 02:14:39ID:71fQEqxl
質問です。みたいなを
作れるソフトはどれですか?
0352名前は開発中のものです。2006/03/09(木) 02:28:33ID:/oVDHdrT
メッセージループのメッセージがないときにゲーム処理を呼ぶというので、
ゲームを作ろうと思ったんですけど、そうするとCPU使用率が常に100%になってしまいます。
どうにかして減らす方法ないですか?
0353名前は開発中のものです。2006/03/09(木) 02:32:02ID:GYU8BNnD
Sleep
0354名前は開発中のものです。2006/03/09(木) 02:42:31ID:/oVDHdrT
>>353
よくわからんのですが、こんな感じですか?

   do{
      if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){
         TranslateMessage(&msg);
         DispatchMessage(&msg);
      }else{
         Sleep(1);
      }
    }while(timeGetTime() < time + 16.67f); // 60 FPS (1000 / 60 = 16.67)
0355名前は開発中のものです。2006/03/09(木) 03:01:10ID:rOVZGput
>>352
SetTimer、PostMessage辺りかな。
0356名前は開発中のものです。2006/03/09(木) 11:08:39ID:KxJsUriB
Sleep(1)じゃなくてSleep(0)で頼む
0357名前は開発中のものです。2006/03/09(木) 22:19:37ID:4T2dc8xK
俺は次のフレーム開始時刻までの余裕分だけ一気にSleepさせてるけど。
0358名前は開発中のものです。2006/03/09(木) 22:26:18ID:ulH8Z7Si
Sleepは精度悪すぎる。
2,3ミリsec余裕でずれる
0359名前は開発中のものです。2006/03/09(木) 22:26:48ID:ulH8Z7Si
すまん。Sleep使うなみたいな風に見えるな、Sleep(0);でループが現実的だと思う
0360名前は開発中のものです。2006/03/09(木) 23:30:36ID:4T2dc8xK
精度悪いから少し短めにSleepして残りはギリギリまでビジーループにしてる。
これだときちんと他のアプリ立ち上げたり負荷掛けたときだけCPU使用率が高くなる。
0361名前は開発中のものです。2006/03/09(木) 23:58:32ID:ZV0n2FwR
このサイトに書いてあることを参考にしていいんでしょうか?
ttp://rina.jpn.ph/~rance/directx8/03/01.html
0362名前は開発中のものです。2006/03/10(金) 00:15:34ID:49EtE12l
スレッド分けてるのは俺だけか…。
0363名前は開発中のものです。2006/03/10(金) 00:32:26ID:4IHmwG2s
もう何度も出た話なので、無駄に苦労させておけばよい。
0364名前は開発中のものです。2006/03/10(金) 02:32:08ID:W8Q8Lboi
こんな感じでいいですかね

  //メッセージループ
   while( 1 )
   {
        if ( PeekMessage(&msg,NULL,0,0,PM_NOREMOVE) ){
           if ( GetMessage( &msg, NULL, 0, 0 ) == 0 ) { break; }
               TranslateMessage(&msg);
               DispatchMessage(&msg);
        }else{
           MainLoop();
  }
}

void MainLoop()
{
  /*このあたりにCPU使用率を下げるための処理*/
  
  /*OKならゲーム処理*/

}
0365名前は開発中のものです。2006/03/10(金) 03:16:46ID:pNEIOb2s
いちいち聞かずにやってみればいいだろ
0366名前は開発中のものです。2006/03/10(金) 08:37:58ID:eDyAepNd
>>364
パク(ry
0367名前は開発中のものです。2006/03/10(金) 09:05:16ID:bSuzl4Hg
このへんは垂直同期待ちの関数が必ず寝てくれりゃいいんだけど
思いっきりスピンロックしやがる実装がザラだからなあ。
Direct3D9Exあたりから待機関数あるみたいだけど。
0368名前は開発中のものです。2006/03/10(金) 18:35:08ID:OkL0RMkq
>>364
ダメ。
そんな事するから、重いウィンアプリばっか出てくるんだ。
タイマーをうまく使うべし。
精度が悪い場合は、timeSetEventを使う。
0369名前は開発中のものです。2006/03/10(金) 21:42:10ID:eHf1wg1N
画像を回転させたいんでググったら
x’=x×cosΘ−y×sinΘ
y’=x×sinΘ+y×cosΘ

コレがでてきたんで
tex[0].x = 120;
tex[0].y = 240;

tex2[0].x = kai[0].x * cos(90) - kai[0].y * sin(90);
tex2[0].y = kai[0].x * sin(90) + kai[0].y * cos(90);
って書いたんだけどうまくいかないんです。
tex[0]は画像貼り付けた四角のポリゴン?の頂点の内のひとつです。
tex2の値使って描画してます。
0370名前は開発中のものです。2006/03/10(金) 21:56:37ID:eHf1wg1N
すみません間違いました

tex2[0].x = tex[0].x * cos(90) - tex[0].y * sin(90);
tex2[0].y = tex[0].x * sin(90) + tex[0].y * cos(90);

こうでした
0371名前は開発中のものです。2006/03/10(金) 22:20:47ID:IHVI/h/s
radian? degree?
0372名前は開発中のものです。2006/03/10(金) 22:21:35ID:6klj+UjH
どのライブラリ使ってるか知らないが、
多分のその三角関数の引数はラジアン。
0373名前は開発中のものです。2006/03/10(金) 22:26:21ID:eHf1wg1N
#defineRAD (3.14159f/180.0f)

int s;
s = 90 * RAD;

tex2[0].x = tex[0].x * cos(s) - tex[0].y * sin(s);
tex2[0].y = tex[0].x * sin(s) + tex[0].y * cos(s);

こうしてみましたがやっぱり失敗・・・どっか他の所なのかなぁ
0374名前は開発中のものです。2006/03/10(金) 22:33:40ID:gqVEhWf1
回転させないでは表示できてるの?
あと、いきなり90度じゃなくて5度くらいで試すとか。
0375名前は開発中のものです。2006/03/10(金) 23:41:44ID:eHf1wg1N
回転させないで表示できてます。
5度とかにするとまったく動かないです
#defineRAD (3.14159f/180.0f)

int s;
static int a = 0;

s = a * RAD;

tex2[0].x = tex[0].x * cos(s) - tex[0].y * sin(s);
tex2[0].y = tex[0].x * sin(s) + tex[0].y * cos(s);

a ++;
ってしてみたらカクカク回転はしてました・・・
0376名前は開発中のものです。2006/03/11(土) 00:01:33ID:eHf1wg1N
変数sをfloatで宣言したら解決しました・・・
レスくれた人ありがとうございました、そしてスマンでした。
0377名前は開発中のものです。2006/03/11(土) 01:44:45ID:j9qMi4TH
>>368
その辺りのことは自分で作っていくうちに効率的な方法を思いつくんですか?
それとも何かサイトや本を参考にして覚えるんですか?
0378名前は開発中のものです。2006/03/11(土) 01:57:36ID:DfEpN4C2
両方だろ
0379名前は開発中のものです。2006/03/11(土) 06:49:28ID:j9qMi4TH
朝までやったけどあんまり進みませんでした…
0380名前は開発中のものです。2006/03/11(土) 11:34:21ID:OQA38ARh
FPSを正確にきざむためじゃなくて、入力に即座に反応する必要がないときとかに
負荷をかけないで待機するのが目的だったらMsgWaitForMultipleObjectsをおすすめするぜ
あたらしいメッセージが届くか、タイムアウトするかの両方で待つことができるんだ
あとメッセージキューは一回の検査で空っぽになるまで中身をとりだしちゃお
あとWM_CHARを評価しないならTranslateMessageを呼ぶ必要はないぜ…確か。
0381名前は開発中のものです。2006/03/11(土) 12:42:56ID:5vZF79TY
ム板で明確な回答が見つからんかったのでこちらで質問させて下さい。
D3D使ってゲームループを回すとフルスクリーン時だけCPU使用率が100%近くに
なってしまいます。
http://pc8.2ch.net/test/read.cgi/tech/1132965206/125-128

切り分けたところ、なんかフルスクリーン時のPresent()が重すぎなように見えます。
なおPresent()の引数は全てNULLを渡してます。
原因がわかる方いたら教えて下さい。

コノトオリ orz
0382名前は開発中のものです。2006/03/11(土) 12:52:37ID:LLveNUqF
VSync待ちでCPUをぐるぐる回しているからだろ。
そんなこと考えるまでもない。
0383名前は開発中のものです。2006/03/11(土) 13:37:03ID:5vZF79TY
つまりはDirectX&ドライバのVSync待ちの実装の問題か…
確かにプログラマが考慮する内容じゃなさそう
D3DPRESENT_DONOTWAITやD3DPRESENT_INTERVAL_IMMEDIATE指定しても結局
全力ループ組まなきゃいけなさそうだしこれは許容するしかなさそうね
0384名前は開発中のものです。2006/03/11(土) 13:42:30ID:9yFKHnii
>>377
僕は自分オンリー。
むしろ基本のメッセージ処理なやり方って思っている。

Peekを使うのは、ウィンアプリの前にコンソールでやっていて、
そっちじゃないと分かりづらいというのもあるのかな。

>>380
その場合は、それ用のコールバック関数を作ってしまう。
0385名前は開発中のものです。2006/03/11(土) 14:09:22ID:OQA38ARh
>>383
IMMEDIATEを指定してあとはwindowモードのときと同じように休んでいけばいいだけなんじゃないの?
0386名前は開発中のものです。2006/03/11(土) 14:42:37ID:5vZF79TY
>>385
寝ぼけてますた、その通りですな…

CPUの負荷とティアリングを天秤にかける事になりますが、これは切り替えスイッチ
でも入れる事にします。
マリガトウ

ノシ
0387名前は開発中のものです。2006/03/11(土) 16:11:14ID:vpzIn0S1
RPGの製作順序キボンヌ

一応下げとくか
0388名前は開発中のものです。2006/03/11(土) 18:44:39ID:DfEpN4C2
そんな屁の役にも立ちそうに無いこと聞いてどうするんだよ
0389名前は開発中のものです。2006/03/11(土) 20:55:46ID:vpzIn0S1
屁をする
0390名前は開発中のものです。2006/03/11(土) 20:57:30ID:Rn1ZTT4U
(-_ - )ふん
0391名前は開発中のものです。2006/03/11(土) 22:32:49ID:dYMZfRdK
>>386
ついでに
・次回のvsyncタイミングを予測してその3msくらい前までsleepしてからvsyncを待つ
モードも作っておいてオプション設定で切り替えできるようにしておくとか… 俺はやったことないけど
0392名前は開発中のものです。2006/03/12(日) 00:54:48ID:WdX+GBZM
>>391
>俺はやったことないけど

つか多分自分でゲームループ組んだ事ないだろ?
その書き込みで判る
0393名前は開発中のものです。2006/03/14(火) 20:42:16ID:kIo9Nngk
void haikei(HDC hdc, HDC bufa, signed int x, signed int y)
{
HBITMAP haike;

haike = (HBITMAP)LoadImage(NULL, TEXT("./ggxx09.bmp"), IMAGE_BITMAP, WIDTH, HEIGHT, LR_LOADFROMFILE);
SelectObject(bufa, haike);
StretchBlt(hdc, 0, 0, WIDTH, HEIGHT, bufa, x, y, WIDTH, HEIGHT, SRCCOPY);

}
///////////////////////////////////////////////////////////////////

case WM_PAINT:
main = BeginPaint(hWnd, &ps);
haikei(main, bufa, x, y);
EndPaint(hWnd, &ps);
return 0;
/////////////////////////////////////////////////////////////////
DWORD WINAPI ThreadProc(LPVOID lp)
{
while(1) {

HWND hWnd;

hWnd = ((ThreadParam*)lp) -> hWnd;
InvalidateRect(hWnd, NULL, TRUE);

Sleep(200);
}

return 0;
}
0394↑のやつです2006/03/14(火) 20:42:56ID:kIo9Nngk
画面がずっとちかちかするのはどうしてでしょうか?
0395名前は開発中のものです。2006/03/14(火) 21:04:56ID:WZQXg5CU
>>394
WM_PAINTが発行されてから処理されるまでの間に垂直回帰と衝突し、
画面を書き換えながらデータを書き換えることになるから。
0396名前は開発中のものです。2006/03/14(火) 21:37:47ID:vD4YSUxp
いい加減なことを書き込んでいる奴が間に挟まっているがそいつは忘れろ。
チカチカする原因は背景消去のイベントが先に発生しているから。
いちいちWM_PAINTを発生させなくても、その場で書き替えれば解決する。
03973942006/03/14(火) 21:59:27ID:kIo9Nngk
>>396
解決しました!ありがとうございます。
とりあえず、マルチスレッドのなかにGetDC()〜で書き込むことにしました。

>>395
すみません。液晶モニタです・・・。
0398名前は開発中のものです。2006/03/14(火) 22:41:10ID:hFZrRBrc
つか、先が思いやられるコードだな…
0399名前は開発中のものです。2006/03/15(水) 00:52:52ID:bI4tObHl
寒くて眠れないんですが、どうすればいいですか?
0400名前は開発中のものです。2006/03/15(水) 19:47:42ID:1YotSJ4J
俺があっためてやろう
0401名前は開発中のものです。2006/03/15(水) 21:34:45ID:8Czfqo27
いーな〜
0402名前は開発中のものです。2006/03/16(木) 07:21:50ID:Y/eNDDcT
ライブラリスレがなくなっちゃたんだけど、ライブラリ見つけた場合はどこに書けばいいんだろ。
こことかかなあ?

ツール・スクリプト総合スレッド
http://pc8.2ch.net/test/read.cgi/gamedev/1012824335/
0403名前は開発中のものです。2006/03/17(金) 17:38:12ID:8gDgsZth
変数の値によってロードするデータを変えるのはどうすればできますか?
0404名前は開発中のものです。2006/03/17(金) 17:44:59ID:X0dS9tB6
質問内容がよくわからんが、変数の値によってIF文で分岐すればいいのでは?
0405名前は開発中のものです。2006/03/17(金) 22:57:51ID:xNtfEtiQ
関数ポインタとかも
0406名前は開発中のものです。2006/03/17(金) 23:08:20ID:Exobc+7Y
うむ。何を聞きたいのか判らない。模範的な初心者的質問だ。
0407名前は開発中のものです。2006/03/18(土) 02:35:11ID:Su4tUZqN
現在DirectXを使ってゲームのシステムを作っています。
そこで皆様に質問です。
フレームバッファはブラーができ1るように3枚ぐらいもっとけとか描画は標準で2D→3D→2D→3Dの4つぐらいの
プライオリティ持っとくでしょとか3Dサウンド・ジョイスティックはいるとか視野角で描画するかしないかとか
ゲームのシステムにこれぐらいあれば大体足りるんじゃねなものを教えていただきたいです。
なにぶん経験が浅くどこまでをいれてどこまででとめておくのか判断がつきにくいので皆様の経験からアドバイス
いただければ幸いです。
ではよろしくお願いいたします。
0408名前は開発中のものです。2006/03/18(土) 04:21:14ID:nGKJ4ycD
全部丸投げかよ・・・
0409名前は開発中のものです。2006/03/18(土) 05:19:24ID:Su4tUZqN
いちよ今のところ考えているのは
2D→3D→2D→3Dの順番でのプライオリティ
マウス・キーボード・ジョイスティックの入力
3Dサウンド(OGG・WAVE・MIDI形式に対応)
ムービーの再生ぐらいです。
主に描画周りで必要なものが聞きたいです。
04104032006/03/18(土) 07:23:59ID:95DqdFyc
>>404 405 406
レスありがとうございます。そしてすみません。

VC++で、
変数 x を用意して、LoadImage()を使い、
x=1の時はこのファイルをロード、
x=2の時はそのファイルをロード、
っていうのを、IF文を使わないでやる方法はありませんか?
(例えばJavaScriptの document.write("char" "+ (x) +" ".bmp"); みたいな感じでできればいいなと。
例の文がおかしかったらすみません。参考書見ながらです。)

改めてお願いします。

0411名前は開発中のものです。2006/03/18(土) 07:43:03ID:ZGA0kyS7
>>410
まずはC言語からやり直すべきだと思う。

>(例えばJavaScriptの document.write("char" "+ (x) +" ".bmp"); みたいな感じでできればいいなと。
もちろんこういうふうにできる。
04124032006/03/18(土) 07:57:01ID:95DqdFyc
>>411
朝早くからどうもです。

できるんですか。
確かにC言語の文法をちゃんとやったほうがよさそうですね。
とりあえずその辺の項目が載ってるところらへんから読んでみます。
ありがとうございました。
0413名前は開発中のものです。2006/03/18(土) 08:34:32ID:Ipz2AxPZ
BCC+DXlibを使って格ゲーを作ってるんですけど、2Pカラーみたいにパレットを変更する方法ってありますか?
0414名前は開発中のものです。2006/03/18(土) 10:42:29ID:4kSs+7jL
407・409です。
オブジェクト(モデル)に対してグレアとかを使えるようにしたいんですが
複数のオブジェクトに使おうとした時にテクスチャにモデルかいてそのうえから
テクスチャはっつけてみたいなことをしてたらパフォーマンスがグレアを使用する
モデルの数分落ちるんですがそこらへんで何か対策やいい組み方ありませんでしょうか?
0415名前は開発中のものです。2006/03/18(土) 16:31:55ID:yz7lWDB4
>>413
Direct3Dにもパレットはあるが、機能がショボくて使いにくいので
2Pカラーは別データとして持つか、自分でパレットから変換して
使った方がいい。
0416名前は開発中のものです。2006/03/18(土) 16:41:45ID:YpJRhIuV
> >(例えばJavaScriptの document.write("char" "+ (x) +" ".bmp"); みたいな感じでできればいいなと。
念のため言っておくとC言語ではできない。
0417名前は開発中のものです。2006/03/18(土) 19:29:01ID:g+aAvW/Y
wsprintf(a,"aaa$saaaaこんなのなかったー?",);
0418名前は開発中のものです。2006/03/18(土) 20:10:43ID:4wfna6z8
printf("char" "+ (x) +" ".bmp");
エラーも出ず、普通に実行可能。
0419名前は開発中のものです。2006/03/19(日) 00:24:36ID:uMD9RJsO
JSと動作は違うけど、文法に問題は無いしな
0420名前は開発中のものです。2006/03/19(日) 00:51:09ID:p7gnp8J4
物理シミュレーションを勉強しようと思うんですが、
高校の教科書をおさらいしたあとは、
受験用じゃなく、ゲーム制作に関する書籍を読めば良いんですよね?
0421名前は開発中のものです。2006/03/19(日) 01:49:18ID:GldnoIov
物理シムって言っても、ぶっちゃけると処理の80%くらいはコリジョンだしなぁ。
いや、もっと割合が多いか?
0422名前は開発中のものです。2006/03/19(日) 13:06:38ID:SjrbRmrH
ドット絵のファミコンちっくなゲーム作ろうとしてるんですけど
それでもDirectX使ったほうが便利なの?
DirectXって派手な演出向けかと思ってるんだけど・・
0423名前は開発中のものです。2006/03/19(日) 13:15:52ID:10+JNBXY
コリジョンw
0424名前は開発中のものです。2006/03/19(日) 13:16:29ID:C5ZIma6z
使わなくても作れるから、
今までのDirectX使ったコード流用できるとかじゃなければ
別に使わなくてもいいと思うけど。
やりやすいほうでいいんじゃない。
04254222006/03/19(日) 15:17:20ID:SjrbRmrH
>>424
なるほど。
とりあえず今使ってないで進めてるので
そのまま行ってみます。
thx!
0426名前は開発中のものです。2006/03/20(月) 10:19:21ID:PMTGalOb
デバックビルドでは動くのにリリースビルドにすると上手く動かないっていうのには
どんな原因が考えられますか?
0427名前は開発中のものです。2006/03/20(月) 10:38:42ID:zTZlIC7i
>>426
92.6%の確率でちゃんと初期化していない変数がある。
0428名前は開発中のものです。2006/03/20(月) 10:54:59ID:PMTGalOb
>>427
おお、本当だ!解決しました!
ありがとうございました。
0429名前は開発中のものです。2006/03/20(月) 16:45:48ID:kRMPXFjJ
>>421
コリジョンてのがちょっとよくわかりませんが、
あんまり高等な知識は必要ないってことでいいんですよね?
0430名前は開発中のものです。2006/03/20(月) 17:28:00ID:cO2KdBDH
collision
衝突
collision detection
当たり判定
0431名前は開発中のものです。2006/03/20(月) 17:49:26ID:kRMPXFjJ
>>430
ってことは、むしろ数学のほうが遙かに重要なのか。
■ このスレッドは過去ログ倉庫に格納されています