物凄い勢いで誰かが質問に答えるスレ@ゲーム製作技術
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/11/08 16:25ID:UqwL7E48知ってたら即、答えるし、知らんかったら知らんと書け。
検索なんかクソでも喰っとけヨ!
教えて君以外は逝ってヨシ!
【鉄の掟】
一、かぶっても泣かない。
一、出された質問は残さず答える。
一、マンモス村田のギャグには大爆笑する
0377名前は開発中のものです。
02/04/02 01:40ID:???午後のこーだのソースみてみ
0379名前は開発中のものです。
02/04/02 08:21ID:???なんでそんなえらそうなの?
0380名前は開発中のものです。
02/04/02 12:05ID:???エライんだろうよ
0381名前は開発中のものです。
02/04/02 16:36ID:CI/DGx/2開けるツールってありませんかね?
体験版では開けるツール見つけたんですけど、
製品版ではどのツールでも開けなくて・・・
何か特殊な圧縮がかけられているみたいなんです〜
0382名前は開発中のものです。
02/04/02 17:13ID:???そんなえらそうでもないだろう
0383名前は開発中のものです。
02/04/03 02:56ID:???WormsのNinjaRopeを再現したくて
単振り子のシミュレーションについて調べたんだけど
周期の話ばっかり出てきてさっぱりわけわからんのです
一番知りたいのは振り子の折れ角?が
次のフレームでは何度になっているべきかを
どうやって求めたらいいのかなんだけど・・・
0384名前は開発中のものです。
02/04/03 10:13ID:???高校の物理の教科書みればいいんじゃない?
mgh=(mv)*2/2
後はひもの長さがわかってるからアークコサインを使えばでる、ではどう?
0385名前は開発中のものです。
02/04/03 10:16ID:???0386383
02/04/03 13:29ID:???その線でがんばってみます
0387名前は開発中のものです。
02/04/03 16:09ID:???こんなのは?.....方向性が違うだろうか。
0388384
02/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:???自分が使いやすい方で。
0393名前は開発中のものです。
02/04/05 10:52ID:???なぜここで聞くの?
俺は両方使ったことがないから偏見でいうけど、
VBはランタイムがいるから配布時に面倒。
Delphiは単独起動できる。しかもPersonalが無料で手に入る。
つーわけでDelphi一押し。
VB.netやるならわかるが、いまからVBやる理由はない。
0394名前は開発中のものです。
02/04/05 10:54ID:47RGytS9エミュレートするロムがテキストならテキストで開くだろうし、
バイナリならバイナリで開くだろう。普通は。
ロムがテキストなものは見たことが無いけれど。
0395名前は開発中のものです。
02/04/05 12:52ID:???0396名前は開発中のものです。
02/04/05 13:59ID:???0397名前は開発中のものです。
02/04/05 15:01ID:???0398名前は開発中のものです。
02/04/05 18:02ID:???0399名前は開発中のものです。
02/04/05 19:50ID:???両方ともたってるビットが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:???それはどの言語のどのコンパイラの話?
0402400
02/04/05 21:53ID:???自分が見かけたのは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:???斜辺cはsqrt(a^2 + b^2)だから
c*cosθ = bで
θ = Arccos(b/c)
間違ってたらごめん
0405名前は開発中のものです。
02/04/06 02:28ID:???atan(a/b)デチ
0406403
02/04/06 03:09ID:???0407403
02/04/06 03:31ID:FIHamsxG今度は頂点角θと斜辺cが既知の場合
底辺aと高さbは求められるんでしょうか?
c*cosθがbのようですけど・・・
0408403
02/04/06 03:34ID:???0409403
02/04/06 03:37ID:???こういう時にsinを使うのか・・・アフォや
0410403
02/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:???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 += 冲;
}
これだと逆三角関数いりませんぜ
>無視してるようでゴメンなさい
オナニーして公開しただけですの気にしないで下さい
0412411
02/04/06 08:16ID:???○ θ += dt * ω;
0413403
02/04/06 08:38ID:???えーと、中心点の座標(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の場合は初回だけ振れ角を出してやればいいのかな?
0414403
02/04/06 08:40ID:???ω += 冲 * G * cosθ / L;
なのに
t += 冲;
するのは何故ですか?
0415名前は開発中のものです。
02/04/06 10:35ID:???ごめんなさい.tはべつにいりません
whileの抜けを考えていたのです,多分.
0416名前は開発中のものです。
02/04/06 10:50ID:???外力くわえたらまた計算(値を代入)しなおさないといかんと思うよ
0417411
02/04/06 11:44ID:???LとGによるけど,そんなに冲細かくしなくてもいいと思います.
(ax,ay)と(px,py)からLとθの初期値でるでしょ.角速度も適当に決めればいい
411は(ax,ay)が原点だから,411のx,yに代入する所で(ax,ay)を足してやればイイ
0418411
02/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なら別ですが)
0419411
02/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
#あきまさ氏のあぷろだ拝借
0420403
02/04/06 19:30ID:???なるほど・・・
ただ-(G/L)なのは振り子をこぐのに必要なんです
私もあきまさ氏のあぷろだを借りてUPしてみました
http://www.pureweb.jp/~akimasa/up/img/dat004.swf
←キーと→キーが振り子を押す力
↑キーと↓キーでひもの伸び縮み
SPACEキーでおもり切り離し
ブランコをこぐ要領で、まず左右に押して
ある程度勢いがついたら∞を描くようにヒモを伸び縮みさせると
振り幅がどんどん大きくなります
↑の振り子エンジンは>410です
>411とかも試してみたんですが
自分の読解力が無いせいか、何故かうまくいかない
あと丸め誤差のせいなのか
ヒモ長が微妙にずれていく・・・
0421403
02/04/06 19:34ID:???ダウンロードする事をおすすめします。
0422403
02/04/06 22:39ID:???http://www.pureweb.jp/~akimasa/up/img/dat005.swf
ヒモ長の狂いに法則がありました
角速度が一定以下だとどんどん縮んでしまい、
ある速度より大きくなると速度にほぼ比例して伸びていきます。
ただし角速度0だと安定
一体何が原因なんだろう・・・
振り子エンジンは>410,>413
0423名前は開発中のものです。
02/04/07 08:24ID:???なんも始まらんよ
playerが古いのかな...
0424403
02/04/07 09:47ID:???すいませんFlashMXで作ってます・・・
0425403
02/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円を描く様にはなりませんよ
移動するたびにらせん状にひもは長くなる
0427403
02/04/07 11:52ID:???そう言われれば速度の角度なんて考えてなかった・・・
けど、角度が小さいときに内向きの螺旋になるのは何故だろう?
0428403
02/04/07 23:15ID:???今度は楕円軌道を描きつつ内向きの螺旋になってしまいます・・・
なんかActionScriptの三角関数群自体に問題があるような気がしてきた
0429403
02/04/08 00:26ID:???自己解決しました
楕円軌道だったのは
ヒモの長さLを関数オブジェクトにしてたせいでした
1:Lを元にXを更新
2:Lを元にYを更新
とやってたんで、そりゃあズレますわ
恥ずかしい・・・
でもやっぱり内向きの螺旋になります
0430403
02/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:???文章がよーわからんけど
A(一番上)
B(真中)
C(一番下)
と画像を重ねあわせる時、ACが同一の画像って事であってるか?
0433名無しさん
02/04/09 01:24ID:???0434名前は開発中のものです。
02/04/09 01:36ID:???俺も文章がよくわからないんだが。というより、何がしたいのかわからない。
既に書いてある領域に白と黒の背景色と前景色を描きこみたいってことなのか?
0435名前は開発中のものです。
02/04/09 04:35ID:???漏れにはその知識がないからアドバイスはできんけど
0436名前は開発中のものです。
02/04/09 08:39ID:???MMX命令使いなされ。
ttp://homepage1.nifty.com/herumi/adv/adv10.html
0437431
02/04/09 09:51ID:0lddlFawあはっ、頭がぐちゃぐちゃしている時に書いたので
文章もぐちゃぐちゃでした。スミマセン。
簡単に言うと、DOS の文字みたいな物を表示したいのです。
フォントの色と背景色を指定できるような物です。
それを白黒のパターンから表示したいのです。
今のところ、
(1) 白黒画像 -ソース-
(2) 対象画像 -デスティネーション-
としたとき
(3) 一時画像 -前景色生成用-
(4) マスク画像 -前景色透過用-
を用意して、
(ステップ1)
一時領域(3)を指定の前景色でFill、
そこに白黒画像(1)を AND 演算転送で 前景色+背景部分が黒の画像を生成。
(ステップ2)
マスク領域(4)に白黒画像(1)を NOT 演算転送して、マスク画像を生成。
(ステップ3)
対象領域(2)を背景色で塗りつぶし、マスク画像(4)を AND 演算で転送、
最後に一時領域(3)の画像を対象領域(2)に XOR 演算で転送
という手順を取っています。
これで伝わったでしょうか?よろしくお願いします。
0438名前は開発中のものです。
02/04/09 11:18ID:???・・・2行目から読んでないけどな。
0439名前は開発中のものです。
02/04/09 11:32ID:vOCl/B9Aどうしても、WinMain.cppの3行目のif文で真となってしまい終了してしまいます。
何か基本的なことが分かっていないと思うのですがどうかよろしくお願いします。
(WinMain.cpp)-------------------------------------------
#include "CWinApp.h"
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
if(Application == 0)
return -1;
//Application->Init(hInstance, lpCmdLine, nCmdShow); の様に続く
}
(CWinApp.h)-------------------------------------------
#ifndef __CWinApp
#define __CWinApp
class CWinApp {
public:
CWinApp();
~CWinApp();
・・・省略
} // class CWinApp終了
extern CWinApp *Application; //CWinApp.cppの2行目で宣言
#endif
(CWinApp.cpp)-------------------------------------------
#include "CWinApp.h"
CWinApp *Application;
CWinApp::CWinApp() {
Application = this;
}
CWinApp::~CWinApp() {
Application = 0;
}
0440暇人
02/04/09 14:37ID:TLqMFG8I(あきまさ君のうpローダー借ります)
http://www.pureweb.jp/~akimasa/up/img/dat009.png
白黒2階調のBFNTみたいな文字画像を、(バックと文字の色を
変えて)表示させたいけど、↑の画像の手順よりもっとスマートに
処理できないものだろうか…?ということみたいです。
0441名前は開発中のものです。
02/04/09 15:29ID:???CWinAppはアプリケーションのメインフレームですよね。
とりあえず3行目の式を通さないようにするには
Applicationを宣言してるところでNULLを代入すればいいと思いますよ
0442431
02/04/09 16:51ID:ZX8.ylbMわ〜!ありがとうございます!!
こんなに解りやすい図にして頂けるなんてすごく嬉しいです。
まさしく図の通りです。
というわけで皆様よろしくお願いします。
0443名前は開発中のものです。
02/04/09 21:07ID:???BitBltなんかを使わずに直接メモリを操作するなら、>>440の図で、
白のときは柿色を転送、黒なら背景色を転送でいいんじゃないか?
0444名前は開発中のものです。
02/04/09 21:11ID:???使用言語、環境(DirectX&Surface / GDI&DIB / etc...)くらいの情報なけりゃアドバイスも糞も無いと思うが。
0445名前は開発中のものです。
02/04/09 22:43ID:TmXZI2Roもう目が離せません!
おおもりよしはる (←次スレはこれを使用しましょう)
http://yasai.2ch.net/test/read.cgi/doujin/1016348976/l50
おおもりよしはるせんせーのページ
http://www9.big.or.jp/~yoshioh/ <最後のhは半角のhに置き換えてください。
おおもりよしはるが思いを寄せてる作家・山本さだpさまのスレ
http://yasai.2ch.net/test/read.cgi/doujin/1013327123/l50
アニメ絵が芸術?デムパロリコン男おおもりよしはる @ネットウォッチ板
http://yasai.2ch.net/test/read.cgi/net/1018005845/l50
■■■ロリ絵?おおもりよしはる■■■
http://www2.bbspink.com/test/read.cgi/erodoujin/1016297545/l50
【抱き枕】すじ丸出し抱き枕ってどうよ?
http://mentai.2ch.net/test/read.cgi/otaku/1016198191/
【すじ】 ようじょのすじ 【すじ】
http://www2.bbspink.com/test/read.cgi/erog/1017041827/
0446名前は開発中のものです。
02/04/09 22:48ID:???src, dest, mono 全部24bitBitmapデータじゃないと動かないけど、MMXアセンブラ化してみた。
動作的には dest = ( src & mono ) | ( dest & !mono ) かな。
void BitBlt2( void *src, void *dest, void *mono, long len )
{
_asm {
mov eax, 8
mov ecx, len
shr ecx, 3 // len /= 8
mov edi, dest
mov esi, src
mov ebx, mono
loopM:
movq mm0, [esi]
movq mm1, [edi]
movq mm2, [ebx]
pand mm0, mm2 // src 画像を mono の白い部分だけ抜く
pandn mm2, mm1 // dest 画像を mono の黒い部分だけ抜く
pxor mm0, mm2
movq [edi], mm0
add esi, eax
add edi, eax
add ebx, eax
dec ecx
jnz loopM
// loop loopM // K6-2ならこっち
EMMS
}
for( int i = len & 0x7ffffff8; i < len; i++ )
if( ((char*)mono)[i] )
((char*)dest)[i] = ((char*)src)[i];
}
0447名前は再開発のものです。
02/04/10 02:49ID:???キャッシュミスを減らすためとききましたが…
char *tmp_ptr;
char *ptr;
tmp_ptr=new char[640*480*3];
ptr=(tmp_ptr + 31)&(~31);
0448名前は開発中のものです。
02/04/10 03:39ID:???newでも手元の環境(Win2K & VC++6)では8byteアラインで配置されるみたいだから
MMX命令使うなら問題無いのでは?
0449名前は開発中のものです。
02/04/10 14:32ID:5ayuVqAwそれってまじ?
8byteアライメント
0450名前は再開発のものです。
02/04/11 23:55ID:???なるほど、ありがとうございました。
0451名前は開発中のものです。
02/04/13 19:35ID:qO7/lk760452名前は開発中のものです。
02/04/13 23:14ID:???というやつがいます。
一、できるのでしょうか?
二、やってなんになる?ファミコンやれよ!!
0453名前は開発中のものです。
02/04/13 23:19ID:???Slot1のマザーボード買って来て、ファミコンのROMさせば目的は達せられる
0454名前は開発中のものです。
02/04/13 23:31ID:???ROMの吸出し機なら秋葉原で売ってるよ。
0456Dante
02/04/14 05:19ID:spmieqoI0457名前は開発中のものです。
02/04/14 09:35ID:PioPHzjQ>一、できるのでしょうか?
できます。
いわゆるマジコンというやつを使います。
454さんのおっしゃられている場所にて入手が可能です。
>二、やってなんになる?ファミコンやれよ!!
基本的に取り込んだROMはエミュレータでプレイすると思いますが、
エミュレータは実機と違いさまざまな利点があります。
例えば、
・RGBで直接CRTに出力できるので画面がキレイ(人によってはこれが一番大きい)
・エミュレータによってはどこでもセーブ、ロードが可能
・倍速動作が可能
等です。
ちなみに板違いですよ。もし板違いでなくてもウザイからシネやボケ。
0458名前は開発中のものです。
02/04/14 12:08ID:???ならこたえんなよ。
0459名前は開発中のものです。
02/04/14 12:15ID:GIgfaYmEタスケテ
0460名前は開発中のものです。
02/04/14 16:09ID:???0461名前は開発中のものです。
02/04/15 01:01ID:???この関数、DIB内の任意の矩形をDCに転送することはできるのでしょうか?
できるのなら、LoadImage()関数を使わずにReadFile()関数でトップダウン方式にしたのが原因なのかどうか…
BITMAPINFOHEADER内のbiHeightメンバは負に変更してあるんですが…。
0462名前は開発中のものです。
02/04/15 02:03ID:???任意の矩形ってあれは開始ラインと終了ラインしか決めれないのでは?
一度全部転送して、BitBltかなんかで任意の矩形を転送するといけると思うが。
0463名前は開発中のものです。
02/04/15 17:28ID:km37G0aA0464名前は開発中のものです。
02/04/15 17:44ID:???検索してなかったのならないと思われ。
普通はVCなんかで作らずにNScripterとかコミックメーカー使うと思うが。
0465名前は開発中のものです。
02/04/15 17:56ID:km37G0aAありがとうございました・・・
0466名前は開発中のものです。
02/04/16 02:06ID:???了解しました。そっちの方法でやってみます。
ありがとうございました。
0467名前は開発中のものです。
02/04/17 08:55ID:5.HwNPtwVC++とボーランドC++くらいしか知らないのですが、ゲームを作るのにいい
コンパイラが知りたいです。
0468名前は開発中のものです。
02/04/17 09:05ID:pEn0hjsYネジ穴一つなくて、分解の仕方がわからず困ってます。
誰か分解の方法教えて下さい!!
0469名前は開発中のものです。
02/04/17 09:23ID:V/0TnI9MVC++。資料が多いから。
>468
ハンマーで叩く。
つかSONYに修理出せやヴォケ。
はい、次〜
0470名前は開発中のものです。
02/04/17 13:21ID:PImbIDoI0471名前は開発中のものです。
02/04/17 14:53ID:RdJUeN4I0472名前は開発中のものです。
02/04/17 19:32ID:???ゲームデザイン論について語ろう
http://game.2ch.net/test/read.cgi/gamedev/1018763345/
0473名前は開発中のものです。
02/04/17 23:32ID:???SHL EDX,16
MOV DX,AX
…として、EDXから取り出す方法以外にありますか?
0474名前は開発中のものです。
02/04/18 23:53ID:???0475名前は開発中のものです。
02/05/03 21:02ID:???0476名前は開発中のものです。
02/05/03 22:50ID:???ヘルプに載ってるけど?
■ このスレッドは過去ログ倉庫に格納されています