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

物凄い勢いで誰かが質問に答えるスレ@ゲーム製作技術

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/11/08 16:25ID:UqwL7E48
調べるのがめんどくさい初心者はなんでも書いて。
知ってたら即、答えるし、知らんかったら知らんと書け。
検索なんかクソでも喰っとけヨ!
教えて君以外は逝ってヨシ!

【鉄の掟】
一、かぶっても泣かない。
一、出された質問は残さず答える。
一、マンモス村田のギャグには大爆笑する
0338名前は開発中のものです。02/03/31 10:30ID:+5oBF4cR
さげてしまった
0339名前は開発中のものです。02/03/31 12:03ID:???
oggの資料で日本語バージョンのものありますかね?
034033502/03/31 12:15ID:X682I5OQ
>>337
えっと、一歩歩くごとにパケット送受信したり、移動判定をしてたら
遅くなったり画面がカクカクしそうだな〜と、思いまして…。

少人数ならともかく、MMORPGとかでもそういう処理をスムースに
こなしているゲームってあるのかな、とお尋ねした次第なんです。
034133502/03/31 12:30ID:???
あ、できましたらコンシューマでは無く、
PCのゲームをご教授いただければ幸いです。あればですが…。
0342名前は開発中のものです。02/03/31 13:55ID:ub28ROGH
先生!ゲームのサーバーを組もうと思うのですが
十数人ぶらさげるのであれば、非同期サーバーですか?
マルチスレッドサーバーは重くなりスケーラビリティに欠けると聞いたのですが
034333602/03/31 16:28ID:???
>340-341
だからいくらでもあるっての
UOすらやったことないのか?
0344質問だよ02/03/31 17:23ID:hrXo0V8k
あたしは、今、BASICでプログラミングを
やってるのですが、

どのようにゲームを作るのでしょうか?
0345名前は開発中のものです。02/03/31 17:29ID:???
>>344
BASICにも色々あると思うけど・・・
ビジュアルベーシックのこと?
0346名前は開発中のものです。02/03/31 17:35ID:???
>>344
お前の行動なんか予測できるかい。
0347名前は開発中のものです。02/03/31 18:00ID:???
おそらくゲームとはなにかという
崇高な質問であると思われ
0348名前は開発中のものです。02/03/31 18:04ID:???
>>344
とりあえず本屋にいって「マイコンBASICマガジン」を買ってください
0349質問だよ34402/03/31 18:24ID:P6B88ICN
BASIC99です。教えて。
0350名前は開発中のものです。02/03/31 18:33ID:???
>>349
へー、そんなのあるんだ。しらんかったYO!
・・・とか思って検索したが、無いじゃねぇか!!嘘つき。
http://www.google.com/search?num=50&lr=lang_ja&q=BASIC99
0351名前は開発中のものです。02/03/31 18:36ID:???
ここにあったけど、読む気になれん。
よって、自分で調べてくれ>>349
http://www.sagami.ne.jp/tadaka/99Basic/
0352名前は開発中のものです。02/03/31 19:10ID:???
スプライトあるのは魅力的だな
初めてならヘタにVBやDelphiやるよりも楽しめるかもしれん
N88BASICにもスプライトあればMSXから乗り換えてやってもよかったんだが
0353質問だよ34402/03/31 19:11ID:P6B88ICN
>>351
呼んだけど、ゲームの作り方書いてない。
0354名前は開発中のものです。02/03/31 19:24ID:???
>>344
おまえは、まず、
なんだその99BASICで絵や文字を表示することが出来るようになってから来い。
0355名前は開発中のものです。02/03/31 19:41ID:???
スプライトで描画して、エッジがギザギザな画面をフルシーンアンチエイリアスかけるのと
無難にアルファブレンドつかって描画するのとどっちが早いのかな?
0356質問だよ34402/03/31 19:48ID:P6B88ICN
文字は翔るけど、絵はどうやってかくの?
0357名前は開発中のものです。02/03/31 20:23ID:???
>>344
ここに逝きなさい。
ttp://www.sagami.ne.jp/tadaka/99Basic/bbs.html
そしてスプライトが扱えるようになってから来なさい、たのむから、な。

>>355
試してみて速い方が速いのでしょう。
0358名前は開発中のものです。02/03/31 20:29ID:nON8fk6A
X−BOXって何の言語で作られてるのですか?
あと開発の方法も教えてください。
0359名前は開発中のものです。02/03/31 21:07ID:???
おそらくはEnglish
0360名前は開発中のものです。02/03/31 21:11ID:???
開発はプログラミングで
0361名前は開発中のものです。02/03/31 21:17ID:???
>>355
環境依存、って環境ぐらい書け
0362名前は開発中のものです。02/03/31 22:31ID:???
>>355
FSAAかけない方が(・∀・)イイ!
アルファも要らな(・∀・)イイ!
ドットギザギザ(・∀・)イイ!
普通に ドットが目で確認できないような高解像度で描けば(・∀・)イイ!

と、普通のノベルゲー作りたそうだから無理を答えてみるテスト。
0363名前は開発中のものです。02/03/31 22:53ID:???
>355
アニメーションなら何もかけなくてもいいような気もする。
0364名前は開発中のものです。02/03/31 22:54ID:???
イイとかテストとか書けば良いと思ってんのかなぁ
0365名前は開発中のものです。02/03/31 23:27ID:???
>364
使ってみたかったんだろ
0366名前は開発中のものです。02/04/01 00:09ID:???
>347だと仮定して
ttp://www2.airnet.ne.jp/ojima/
でも読みなさい。古いけど。
0367名前は開発中のものです。02/04/01 00:46ID:???
>>364
そりゃテストは便利だからな
0368名前は開発中のものです。02/04/01 12:32ID:c90ZvcKy
クソスレ防止あげしまする
0369名前は開発中のものです。02/04/01 13:11ID:???
>>367
エクストリーム・プログラミングでもテストの重要性を説いてるからな・・・。
とか言ってみる単体テスト
0370うにょ ◆rH82hjOk 02/04/01 14:45ID:???
質問ですー アウトランや、bioのぽらすたー みたいな、
擬似3D,あれってどうやって計算してるの?教えてキボンヌ
0371名前は開発中のものです。02/04/01 14:47ID:???
>>370
教えてあげないよ、ジャン♪
0372名前は開発中のものです。02/04/01 14:57ID:???
>>370
今俺の手元にある去年のCマガジン10月号に詳しく載っていた、以上。
0373名前は開発中のものです。02/04/01 21:40ID:???
ぽらすたー…。懐かしすぎる…。
あのゲームのDOCファイル、面白かったなぁ。
037436202/04/02 00:09ID:IlKCqOhU
>>364

ごめんなさい。
0375名前は開発中のものです。02/04/02 01:01ID:???
《;゚Д゚》<気ィ落とさんと、これからも頑張りや
0376名前は開発中のものです。02/04/02 01:12ID:???
MMXのチェックのときに気になってるんですけど、
「Cyrixの6x86シリーズにはCPUID命令をサポートしていても
EFLAGSのCPUIDビットがセットされていないものがある」
…と聞いてるんですが、このチェックどうすればいいんですか?
ネットでも殆ど情報がなくて、BIOS経由でチェックするとか噂で聞いたんですが…?
もっとも、メーカーでも対応してるとことしてないとこがあるみたいですが。
0377名前は開発中のものです。02/04/02 01:40ID:???
>>376
午後のこーだのソースみてみ
037837602/04/02 02:14ID:???
>>377
ありました。ありがとうございます〜。
0379名前は開発中のものです。02/04/02 08:21ID:???
>>364
なんでそんなえらそうなの?
0380名前は開発中のものです。02/04/02 12:05ID:???
>>379
エライんだろうよ
0381名前は開発中のものです。02/04/02 16:36ID:CI/DGx/2
BIOHAZARD2のアイテムの説明欄やら背景やらの画像(TIM)を
開けるツールってありませんかね?
体験版では開けるツール見つけたんですけど、
製品版ではどのツールでも開けなくて・・・
何か特殊な圧縮がかけられているみたいなんです〜
0382名前は開発中のものです。02/04/02 17:13ID:???
>>379
そんなえらそうでもないだろう
0383名前は開発中のものです。02/04/03 02:56ID:???
物理板かもしれんけどとりあえずここで質問

WormsのNinjaRopeを再現したくて
単振り子のシミュレーションについて調べたんだけど
周期の話ばっかり出てきてさっぱりわけわからんのです

一番知りたいのは振り子の折れ角?が
次のフレームでは何度になっているべきかを
どうやって求めたらいいのかなんだけど・・・
0384名前は開発中のものです。02/04/03 10:13ID:???
>383
高校の物理の教科書みればいいんじゃない?
mgh=(mv)*2/2
後はひもの長さがわかってるからアークコサインを使えばでる、ではどう?
0385名前は開発中のものです。02/04/03 10:16ID:???
あ、そのまま単振動の公式使えばいいのか・・・
038638302/04/03 13:29ID:???
>384
その線でがんばってみます
0387名前は開発中のものです。02/04/03 16:09ID:???
http://homepage1.nifty.com/kaneko/wire.htm
こんなのは?.....方向性が違うだろうか。
038838402/04/03 19:01ID:???
書き間違えてた。
二分の一エムブイ二乗です。
0389名前は開発中のものです。02/04/04 14:11ID:???
エミュレータはロムをバイナリで開いているの?
0390名前は開発中のものです。02/04/04 15:41ID:???
こんなかんじ
#include <stdio.h>
#include <math.h>

#define L0 1.0 //振子長さ

int main ()
{
  double x=L0, y=0.0, vx=0.0, vy=0.0;
  double dt=0.01, endTime=2.0, t=0.0;

  int c=0;
  while ( t < endTime )
  {
    vy -= 9.8 * dt;

    double l = sqrt ( x*x + y*y );
    double dx = x / l * ( L0 - l );
    double dy = y / l * ( L0 - l );

    vx += dx / dt;
    vy += dy / dt;

    x += vx * dt;
    y += vy * dt;

    if ( c % 10 == 0 )
    {
      printf ( "%3.1f[sec], (%3.2f, %3.2f), l=%f\n", t, x, y, l );
    }
    c++;
    t += dt;
  }
  return 0;
}
0391名前は開発中のものです。02/04/04 16:57ID:???
ファイル操作系アプリを作りたいんですが、
DelphiとVBではどちらがいいんでしょうか?
0392名前は開発中のものです。02/04/04 17:39ID:???
>>391
自分が使いやすい方で。
0393名前は開発中のものです。02/04/05 10:52ID:???
>>391
なぜここで聞くの?
俺は両方使ったことがないから偏見でいうけど、
VBはランタイムがいるから配布時に面倒。
Delphiは単独起動できる。しかもPersonalが無料で手に入る。
つーわけでDelphi一押し。

VB.netやるならわかるが、いまからVBやる理由はない。
0394名前は開発中のものです。02/04/05 10:54ID:47RGytS9
>>389
エミュレートするロムがテキストならテキストで開くだろうし、
バイナリならバイナリで開くだろう。普通は。
ロムがテキストなものは見たことが無いけれど。
0395名前は開発中のものです。02/04/05 12:52ID:???
http://www.watch.impress.co.jp/pc/docs/2002/0401/uocchi/ms.htm
0396名前は開発中のものです。02/04/05 13:59ID:???
4/1ネタとしてがいしゅつですが、何か?
0397名前は開発中のものです。02/04/05 15:01ID:???
394に関連した資料のつもりですが....凄まじいツッコミですね
0398名前は開発中のものです。02/04/05 18:02ID:???
& と && のちがいを教えてくれ
0399名前は開発中のものです。02/04/05 19:50ID:???
&は例えば変数A,Bがあって、A & BとするとAとBを2進数であらわしたときに
両方ともたってるビットが1、それ以外は0になる。説明が下手で悪いけど、
例えば
a = 22;//10110
b = 19;//10011
c = a & b;
とすると
10110 <- a
10011 <- b
10010 <- cで
c = 18になる
&& は主に条件式に使われて、「かつ」って意味で使えば多分あってる
0400名前は開発中のものです。02/04/05 20:14ID:???
転載だけど
>「||」と「&&」は、前後に式を書くが手前の式を計算した結果、
>それ以上計算しなくても結果が決まっている場合、
>後の式は計算しないという特徴を持つ。
>そのため、複数の式の条件を複合して処理を変えたい場合などは、
>条件判断式を「&」や「|」でつなぐよりも、「&&」や「||」で
>つなぐ方がより高速になる。
0401名前は開発中のものです。02/04/05 21:09ID:???
>400
それはどの言語のどのコンパイラの話?
040240002/04/05 21:53ID:???
>401
自分が見かけたのはC#の解説やってたとこだったけど、
perlもそうらしい。↓(&&の評価順というところに)
http://www.sun-inet.or.jp/~yaneurao/intensive/tips2.html

同じC言語でもコンパイラによって違ってくるのかな?
その辺は未確認です。
0403名前は開発中のものです。02/04/06 02:06ID:FIHamsxG
数学板かもしれんけどとりあえずここで質問

底辺と高さがわかっている直角三角形の頂点角って
どうやって求めるんでしたっけ?

図解するとこう

    ↓ここの角度を
    /| 底辺と高さから求めたい
    / |
  /  |
  / ┌|
   ̄ ̄
0404名前は開発中のものです。02/04/06 02:12ID:???
底辺をa,高さをb,求める角をθとすると
斜辺cはsqrt(a^2 + b^2)だから
c*cosθ = bで
θ = Arccos(b/c)
間違ってたらごめん
0405名前は開発中のものです。02/04/06 02:28ID:???
何故いちいち斜辺求める?
atan(a/b)デチ
040640302/04/06 03:09ID:???
ありがとうござまーす!
040740302/04/06 03:31ID:FIHamsxG
度々すいません
今度は頂点角θと斜辺cが既知の場合
底辺aと高さbは求められるんでしょうか?

c*cosθがbのようですけど・・・
040840302/04/06 03:34ID:???
あ、a=√c^2-b^2かな・・・?
040940302/04/06 03:37ID:???
自己解決しました
こういう時にsinを使うのか・・・アフォや
041040302/04/06 05:37ID:???
いよいよ場違いかもしれませんが
重力定数G、紐の長さL、振れ角Rとしたとき

while(1)
{
 v += -(G/L)*sin(R);
 x += -v*cos(R);
 y += -v*sin(R);
 #Rの更新は省略
}

でかなり近い挙動をするんですが
これは振り子とは違うんでしょうか?

所詮ゲームだからそう見えりゃいいっちゃいいんですが・・・


あ、>390さんがわざわざソース書いてくれたのに
無視してるようでゴメンなさい
0411名前は開発中のものです。02/04/06 08:11ID:???
>>410
Rは水平軸との角度で,vは角速度ですかね?
冲=1.0で省略てな感じかな?

まっとうなのは以下のようになると思います

振子の中心のモーメント M = m g cosθ × L
振子の中心の慣性モーメント I = m L^2
よって角加速度 ωdot = M / I = g cosθ / L
あとは積分

while ( )
{
  ω += 冲 * G * cosθ / L;
  θ += dt * omg;

  x = L * cosθ;
  y = L * sinθ;

  t += 冲;
}
これだと逆三角関数いりませんぜ

>無視してるようでゴメンなさい
オナニーして公開しただけですの気にしないで下さい
041241102/04/06 08:16ID:???
× θ += dt * omg;
○ θ += dt * ω;
041340302/04/06 08:38ID:???
>411
えーと、中心点の座標(ax,ay)とおもりの座標(px,py)だけわかっている状態で
振り子運動をさせたいんです

なので現在
function R() {
 var x,y,result;//ローカル変数確保
 x = ax-px;
 y = py-ay;
 result = atan(x/y);
 return result;
}
function L() {
 var x,y,result;//ローカル変数確保
 x = (ax-px)*(ax-px);
 y = (py-ay)*(py-ay);
 result = sqrt(x+y);
 return result;
}
として、>410のコードで動かしてます

それから振り子運動中に外力を加えたりしてるので
時間軸入れるとうまくいくかわからないので省略してます

>411の場合は初回だけ振れ角を出してやればいいのかな?
041440302/04/06 08:40ID:???
あと>411で
ω += 冲 * G * cosθ / L;
なのに
t += 冲;
するのは何故ですか?
0415名前は開発中のものです。02/04/06 10:35ID:???
とりあえず>>414だけ

ごめんなさい.tはべつにいりません
whileの抜けを考えていたのです,多分.
0416名前は開発中のものです。02/04/06 10:50ID:???
>>413
外力くわえたらまた計算(値を代入)しなおさないといかんと思うよ
041741102/04/06 11:44ID:???
外力をモーメントであらわせば>>411でいけると思います
LとGによるけど,そんなに冲細かくしなくてもいいと思います.

(ax,ay)と(px,py)からLとθの初期値でるでしょ.角速度も適当に決めればいい
411は(ax,ay)が原点だから,411のx,yに代入する所で(ax,ay)を足してやればイイ
041841102/04/06 12:23ID:???
でこんな感じ

while ( )
{
  //モーメント
  M = mass * G * cosθ * L;

  //外力Fが重心において回転方向に加わる場合
  M += F * L;

  //(Lを含まないこともあろうとあえてLは約分せず)
  ω += 冲 * M / ( L^2 * mass );
  θ += dt * omg;

  x = ax + L * cosθ;
  y = ay + L * sinθ;
}

と書きながら>>410が今やっと解りました(アフォ
でもやっぱ角速度と角度で管理したほうがよくないですか?
冲=1.0にしてθ=π/2 - R とすればほぼ同じ形になります

で,一つ違う所は,
× v += -(G/L)*sin(R);
○ v += -G*sin(R);
じゃないかな・・・
次元も合うし.冲=1.0で考えると前者のvは角速度ですよ(L=1.0なら別ですが)
041941102/04/06 12:38ID:???
だんだん自信無くなってきて結局オナニサンプル作っちゃった
WindowsConsole+入力受け付けず
10秒で終了,5.0〜5.2秒間モーメント加えてる
http://www.pureweb.jp/~akimasa/up/index.php
http://www.pureweb.jp/~akimasa/up/img/dat003.lzh
#あきまさ氏のあぷろだ拝借
042040302/04/06 19:30ID:???
>418
なるほど・・・
ただ-(G/L)なのは振り子をこぐのに必要なんです

私もあきまさ氏のあぷろだを借りてUPしてみました
http://www.pureweb.jp/~akimasa/up/img/dat004.swf
←キーと→キーが振り子を押す力
↑キーと↓キーでひもの伸び縮み
SPACEキーでおもり切り離し

ブランコをこぐ要領で、まず左右に押して
ある程度勢いがついたら∞を描くようにヒモを伸び縮みさせると
振り幅がどんどん大きくなります

↑の振り子エンジンは>410です
>411とかも試してみたんですが
自分の読解力が無いせいか、何故かうまくいかない

あと丸め誤差のせいなのか
ヒモ長が微妙にずれていく・・・
042140302/04/06 19:34ID:???
あ、えーと>420はブラウザで開くとデカイ=重いなので
ダウンロードする事をおすすめします。
042240302/04/06 22:39ID:???
マイナーバグフィクス
http://www.pureweb.jp/~akimasa/up/img/dat005.swf

ヒモ長の狂いに法則がありました
角速度が一定以下だとどんどん縮んでしまい、
ある速度より大きくなると速度にほぼ比例して伸びていきます。
ただし角速度0だと安定

一体何が原因なんだろう・・・

振り子エンジンは>410,>413
0423名前は開発中のものです。02/04/07 08:24ID:???
>>422
なんも始まらんよ
playerが古いのかな...
042440302/04/07 09:47ID:???
>423
すいませんFlashMXで作ってます・・・
042540302/04/07 09:49ID:???
すいませんポインタ忘れてました
http://www.macromedia.com/jp/shockwave/download/?P1_Prod_Version=ShockwaveFlash&P5_Language=Japanese&Lang=Japanese
0426名前は開発中のものです。02/04/07 10:32ID:QkW4z/Hg
ひもと直角な方向の速度を何回も足してるわけでしょ
円を描く様にはなりませんよ
移動するたびにらせん状にひもは長くなる
042740302/04/07 11:52ID:???
>426
そう言われれば速度の角度なんて考えてなかった・・・
けど、角度が小さいときに内向きの螺旋になるのは何故だろう?
042840302/04/07 23:15ID:???
振り子エンジンを>418にしてみましたが
今度は楕円軌道を描きつつ内向きの螺旋になってしまいます・・・

なんかActionScriptの三角関数群自体に問題があるような気がしてきた
042940302/04/08 00:26ID:???
>428
自己解決しました

楕円軌道だったのは
ヒモの長さLを関数オブジェクトにしてたせいでした
1:Lを元にXを更新
2:Lを元にYを更新
とやってたんで、そりゃあズレますわ
恥ずかしい・・・

でもやっぱり内向きの螺旋になります
043040302/04/08 06:15ID:???
螺旋になる原因は
キャラクターの座標が1/100精度なのに
演算を1/100000000でやっていたせいでした

よく設計を見直してみたらLを動的に確保しなくても大丈夫だったので
無事円軌道を描く様になりました

無学な漏れにさんざんつきあってくれた411氏に感謝
0431名前は開発中のものです。02/04/08 21:17ID:l6XgGYO6
あ”ー!!頭がぐちゃぐちゃしてきたよ兄さん!!

ラスターオペレーションに関して質問というか、アドバイスをいただきたいのです。

手元に白黒の画像があります。
この白と黒を指定の背景色と前景色にして画面に転送したいと思っています。
一応できたのですが、対象サイズと同じサイズの領域を2つも必要とするので
実はもっと単純な方法があるのではないかな?などと思っています。

今やっている手順を、白−前景色、黒−背景色として状況を説明しますと、
まず、一時領域を前景色で塗りつぶし、そこに AND 演算で画像を転送し、
前景色と黒バックの画像を作り、
次にマスク用領域に反転しつつマスク画像を作成、
次に最終的に描画したい場所を背景色で塗りつぶし、
マスク画像を AND 演算で描画し、最後に一時領域の画像を XOR 演算で描画しています。

なんとなく無駄がありそうなのですが、
もっと高速 or リソースの少なくて済む方法等があったらご教授頂けないでしょうか?
0432名前は開発中のものです。02/04/08 21:35ID:???
>>431
文章がよーわからんけど
A(一番上)
B(真中)
C(一番下)
と画像を重ねあわせる時、ACが同一の画像って事であってるか?
0433名無しさん02/04/09 01:24ID:???
なんか凄く懐かしいことやってるなあ。
0434名前は開発中のものです。02/04/09 01:36ID:???
>>431
俺も文章がよくわからないんだが。というより、何がしたいのかわからない。
既に書いてある領域に白と黒の背景色と前景色を描きこみたいってことなのか?
0435名前は開発中のものです。02/04/09 04:35ID:???
たぶんお手製αチャンネルだと思われ
漏れにはその知識がないからアドバイスはできんけど
0436名前は開発中のものです。02/04/09 08:39ID:???
>431
MMX命令使いなされ。
ttp://homepage1.nifty.com/herumi/adv/adv10.html
043743102/04/09 09:51ID:0lddlFaw
>>432-436
あはっ、頭がぐちゃぐちゃしている時に書いたので
文章もぐちゃぐちゃでした。スミマセン。

簡単に言うと、DOS の文字みたいな物を表示したいのです。
フォントの色と背景色を指定できるような物です。

それを白黒のパターンから表示したいのです。

今のところ、
(1) 白黒画像 -ソース-
(2) 対象画像 -デスティネーション-
としたとき
(3) 一時画像 -前景色生成用-
(4) マスク画像 -前景色透過用-
を用意して、
(ステップ1)
 一時領域(3)を指定の前景色でFill、
 そこに白黒画像(1)を AND 演算転送で 前景色+背景部分が黒の画像を生成。
(ステップ2)
 マスク領域(4)に白黒画像(1)を NOT 演算転送して、マスク画像を生成。
(ステップ3)
 対象領域(2)を背景色で塗りつぶし、マスク画像(4)を AND 演算で転送、
 最後に一時領域(3)の画像を対象領域(2)に XOR 演算で転送

という手順を取っています。
これで伝わったでしょうか?よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています