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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001名前は開発中のものです。2009/09/29(火) 07:08:29ID:OO8C9kYO
疑問に思うことがあれば、スレを立てずに、まずはココで質問。
スレッドを立てる前にはローカルルールを読みましょう。
http://pc11.2ch.net/gamedev/

>>980 を踏んだ人は次スレ立てをお願いします。
【アップローダ・避難所・Wiki】
ゲーム製作技術板公式Wiki
http://wiki.game-develop.com/

ゲーム製作技術板公式アップローダ
http://gmdev.xrea.jp/

ゲーム製作技術板予備(機能停止中?)
http://yy13.kakiko.com/gamdev/

アップローダー予備
http://gamdev.hp.infoseek.co.jp/

gamdev.orgが落ちるたびにあげてみるスレ
http://pc11.2ch.net/test/read.cgi/gamedev/1107022166/
0951名前は開発中のものです。2010/03/27(土) 05:03:59ID:x1+IP3ud
良い制作進行になるには、どうしたらいいですか?
http://www.sakananovel.com/knowhow/staff01.htm
ここ見てて、制作進行って大事ってことは伝わるんですが、「良い製作進行さんが居るサークルはゲームの完成率が高いですし」とあっても、その手法が載ってないんだぜ。
サイト・書籍など何でも良いから、(同人ゲーム製作向け)制作進行の技術・手法・ノウハウ的なことはないでしょうか。
0952名前は開発中のものです。2010/03/27(土) 05:06:52ID:zsdgLKNM
本気で馬鹿だろこいつ
0953名前は開発中のものです。2010/03/27(土) 05:26:04ID:VJODbesJ
プログラムも音楽も絵もできないから制作進行っていう発想は心から軽蔑する
0954名前は開発中のものです。2010/03/27(土) 05:36:50ID:x1+IP3ud
馬鹿だけど、別に何もできないとは言ってないんだけどなぁ。。。
(言いたくなる気持ちも分からないでもないのだけど)
というかほとんどの場合、中心人物は“何かを担当+制作進行(というか雑用)”をすることになるだろうし、そのための色々を勉強したいじゃない。
http://www.geocities.co.jp/Bookend/2352/DojinDOC/dojin-project.html
こういうのとかさ。
0955名前は開発中のものです。2010/03/27(土) 09:44:14ID:RRFAwMcI
>>951
http://www.amazon.co.jp/dp/4478410232

>>947
1はC、trueはC++
0956名前は開発中のものです。2010/03/27(土) 12:26:56ID:1cQ6wtXx
対戦型パズルを作ってみたんですが、COMアルゴリズムの実装に難航しています。

まずフィールドの状態を把握させるところから始めるかと思うんですけど、ここでつまづいていまして。
囲碁のように 盤上のどこにでも置ける仕様なので、多様に変化する局面に対応させようとすると
情報量が多すぎてワケがわからなく・・・

なにか参考になるサイトとかってありますでしょうか?

0957名前は開発中のものです。2010/03/27(土) 12:27:48ID:sVteQbGl
>>954
オープンソースのコミュニティを覗いてみろ
0958名前は開発中のものです。2010/03/27(土) 23:54:08ID:niZM79GQ
>951
最初にやるべき事は、そういうノウハウっぽく書いてあるページを信用するのをやめることじゃね?
0959名前は開発中のものです。2010/03/28(日) 00:00:02ID:DVpvrvjN
アドベンチャーゲーム用のスクリプトエンジンを作っているのですが、
禁則処理とかルビ付き文字の表示処理がうまく行かずつまずいています・・
どこか参考になるサイト内でしょうか。
0960えいいち ◆GRGSIBERIA 2010/03/28(日) 17:42:35ID:hHuZZPde
>>959
等幅フォントだったら、Nバイト先にある文字を確認して、
禁則処理が必要だったら変数をリサイズするなりなんなりした後、
Nバイト目に改行文字を挿入すればいいんじゃね?

ルビも似たような感じでNバイト目の位置を半角文字幅から計算して、
NバイトからN+nバイトの間で文字を均等に云々すればいいと思うけど。

スクリプトエンジンプログラミング(坂本千尋著)がそこそこ詳しいけど、びみょー。
坂本千尋の本でゲームが作れましたってんならオススメ。
参考になるのは載ってるアルゴリズムだけかな、と僕は思う。
どうせやるんなら自分で考えたほうが自分のためになるよ。
0961名前は開発中のものです。2010/03/28(日) 18:49:48ID:S9skJtk1
吉里吉里使ってみて、それからソースも読む
0962名前は開発中のものです。2010/03/28(日) 21:28:21ID:VG9RfPwy
地面の判定にelse使いたいのですが思い通りに行きません…

if(地面と主人公当たってる場合){
  主人公は地面の上
}else{
  落下
}

こうすると地面に当たってる時も落下処理になります…
0963名前は開発中のものです。2010/03/28(日) 21:42:26ID:qyKwvp69
if(地面と主人公当たってる場合){
  主人公は地面の上
}else{
  主人公のY座標をコピー
 コピーしたY座標に1を足す
if(地面とコピーした座標当たってる場合){
  主人公は地面の上
 }
 else{
  落下
 }
}
0964名前は開発中のものです。2010/03/29(月) 02:22:41ID:lWMlr+Q2
ありがとうございました
0965名前は開発中のものです。2010/03/29(月) 13:28:45ID:tAa/9ZD/
>>956
評価関数とか思考ルーチンでググれ。

ターン制なら全パターン走査でもやればいいよ。
アクションパズルは方法論がありすぎて、自分で考えるしかない・・・・。
だって、どんなパズルかわからないんだもの。

ぷよぷよとかはググれば結構あるとおもうから、探せ。
0966名前は開発中のものです。2010/03/29(月) 17:24:43ID:8VqpNpSG
>>965
レスどもです。
作ったのは そのアクションパズルのほうだったんですが、
ググって出てきたものを見てみると・・・これは相当深い世界ですね。

実はネット対戦の実現が厳しかったのでCOM対戦に逃げたんですが、
自分が思ってたより ずっと苦労しそうです。
しかし、おかげさまで光明が見えてきました(うっすらと)
0967名前は開発中のものです。2010/03/29(月) 18:24:16ID:tAa/9ZD/
どう考えても、ネット対戦(=vs人間)の方が楽なんだがw
とくにアクションパズルはw
COMの思考バリエーションも必要になるしねぇ。

一人用はできてるんだよね?
それとも相手が居ないとできないの?
0968名前は開発中のものです。2010/03/29(月) 18:40:12ID:8VqpNpSG
ええと・・・ オフラインなら2人用ができます。

ネット対戦が厳しい、と書いたのは、色々なフリーソフトを見ると現実的に
「人が集まらない、やってもらえない」という根本的な悩みを抱えている作者さんが
多い、ところいうのが大きいですね。
自分のパズルに、継続的に人を惹きつける魅力がそこまであるかな、と

もちろん、CSであればサーバーの管理が・・・とか、アクション性があるだけに
ラグの無いような組み方は・・・などプログラミング技術的な心配もあるんですけど
0969名前は開発中のものです。2010/03/29(月) 18:46:30ID:8VqpNpSG
あ、対戦ものなので相手が居ないとできないです。
0970名前は開発中のものです。2010/03/29(月) 19:27:24ID:tAa/9ZD/
基本は出来てて、あとはCOMの思考ルーチンだけなのね。

じゃぁ、人間の思考をCOMにさせればいいやっていう、
基本的な事はわかった上で、どうするかを考えているのか。

ぷよぷよのような落ち物パズルを想定して話すが、一番簡単な方法は、
「あらかじめCOMの操作の配列を作っておく」方法
ようするに、インチキ。

ランダムに落ちてくるはずのぷよをコンピュータは全部知っていて、
あたかも操作しているように見せる。色変えたり、パターンを増やせばほとんどわからんはずw
この方法だと、おじゃまプヨで終わりだけどな。
手がくずれたら、あとはひたすら消すルーチンにするとか。
お邪魔が来る前に3連鎖程度を連発するとか。

具体的な話になってくると、システムがわからないとねぇ。
パクられても嫌だろうから、あとは自分で頑張るしかないねw

逆にルーチン部分を他人が作れるように
インターフェースを整備して公開するのも面白いかも。
他人のルーチンが読めれば勉強にもなるだろうし。

俺とかむしろこっちの方がもえるかもシレンw
0971名前は開発中のものです。2010/03/29(月) 20:03:41ID:8VqpNpSG
インチキ法、ググってみると業務用でも採用されてたみたいですね、セガのテトリスとか。
自分の力量的にも分相応ではあるんですが・・・うーん最終手段かも

ぶっちゃけてしまうと、ルーチン部分は他の人に頼めればそれに越したことはない、
むしろそこ燃えて欲しいという考えではあるんですけど、いかんせん
言語がHSPなもんで誰も寄ってきてくれそうにないというのが。


取り敢えずは頂いた情報を材料にやってみます。
0972名前は開発中のものです。2010/03/29(月) 20:39:34ID:tAa/9ZD/
HSPか・・・・せめてpythonで・・・・w
外部用のインターフェース切るの難しいね。
とくに、こちらの指令する作法を守らせるのが難しい。

とにかく頑張れ!
0973名前は開発中のものです。2010/03/29(月) 21:16:10ID:+6S6hu0H
pythonって名前は聞くけど書いたことないなあ…
中括弧ないんだっけ?よく書けるなそんなんで
0974名前は開発中のものです。2010/03/29(月) 21:33:04ID:Z8PB/8Xa
完全に切り離して、ってのはダメなん?
パズルなら入力は移動と回転、落下とかくらいでしょ。
出力結果をそれらに絞るような外部思考ルーチンを組めばあるいは、、、
と、思考ルーチン組んだことないやつがたわごと言ってみる
0975名前は開発中のものです。2010/03/29(月) 21:41:14ID:Z8PB/8Xa
ゴメン、酔っぱらってた
orz
0976名前は開発中のものです。2010/03/30(火) 11:29:34ID:fhJynSYJ
>>973
一番勢いがある(あった?)言語だと思うんだが。日本ではいまいちだが。
GoogleAppEngineでも最初にサポートされた言語だし。

中括弧に相当するインデントによる制約があるし、機能として不足している部分はない。
PyScripterっていう専用エディタがなかなか便利で、それ使ってちょっと試したらいいよ。(python自体ももちろん要る)
API群も強力で、ちょっとググればほしいモジュールがたいていそろう。
探すときは英語読めないときついが、使うときはソースは読めるだろうからどうにかなる。

ゲーム制作でいえば、pygameという開発モジュールがあって、これが強力。
SDLのラッパーだから、LinuxやMacでも走るよ。
0977名前は開発中のものです。2010/03/30(火) 12:49:51ID:CSNOvyXo
日本語の解説少ない時点で敷居が高いだろ
0978名前は開発中のものです。2010/03/30(火) 12:59:11ID:jpGVC+Nd
PyScripte パイスクリプター? pygame パイゲーム?

えらくそそられる環境ですな
0979名前は開発中のものです。2010/03/30(火) 16:38:29ID:ok2a9IlJ
ttp://www.game-create.com/archives/154

ここを参考に2Dのホーミングは分かったのですが、3Dのホーミングはどうすれば良いのでしょうか。。。
09809592010/03/30(火) 17:23:08ID:P6m6KDQV
>>960
メイリオにしてます。全角文字は等幅のようですが、半角はプロポーショナルらしいので、
1文字の幅が一定という前提で計算することはできません。

そんなわけで、文字列は基本的に行ごとに格納しています。ルビの場合はそこで分割。
1行目、2行目A、2行目B(ルビ付)、2行目C、3行目のような感じで。
フォントクラスは改行文字も処理できるので、1行目と2行目Aはくっつけてもいいかもしれませんが。

>どうせやるんなら自分で考えたほうが自分のためになるよ。
頑張って自分で組もうとしてみました。
行末に禁則文字があった場合は、後ろの1文字も含めて次の行に送り出すようにしてみましたが
ルビ→改行→句読点のようになっていると、句読点が行頭に出てきてしまったりします。
まぁ、そのうちなんとかなるでしょう

>>961
吉里吉里ってソース公開されているんですね。見てみます!
かなり本格的なシステムなようなので、読むのが難しそうですが・・
0981名前は開発中のものです。2010/03/30(火) 22:38:48ID:KLyZQc5S
>>979
個人的には XY→角度→XY に戻すのは好みじゃないな
動作はXYだけで完結しておいて、角度を求めるのは表示するときのみ一方通行の変換にしたくなる

double x, y, z;// 現在位置
double ix, iy, iz;// 現在の移動ベクトル
double tx, ty, tz;// 現在位置からターゲットへの相対位置
double dis;// ワーク

dis = sqrt(tx*tx+ty*ty+tz*tz);
if(dis > 0){ dis = 方向転換力/dis; ix+=tx*dis; iy+= ty*dis; iz+=tz*dis; }
dis = sqrt(ix*ix+iy*iy+iz*iz);
if(dis > 0){ dis = スピード/dis; ix*=dis; iy*=dis; iz*=dis; }

今適当に書いたから間違ってたらゴメン
0982名前は開発中のものです。2010/03/30(火) 23:01:15ID:5dN9Twcu
>>980
WindowsならWinAPIのGetCharABCWidths使って>>960の考え方でがんばれば計算できるんじゃね?
09839792010/03/31(水) 04:22:17ID:hQL22suv
>>981
ありがとうございます。
試してみます。
0984名前は開発中のものです。2010/03/31(水) 04:46:03ID:D+e8+dQG
double だから dis == 0 ってなるか?と思う
0985名前は開発中のものです。2010/03/31(水) 08:30:33ID:6wc3W2mV
>>963のプログラムってどういう感じに働いてるんだろ
自分のとは全然違ってて新感覚
0986えいいち ◆GRGSIBERIA 2010/03/31(水) 10:12:53ID:sNcLJd0Y
>>984
if (!(dis ^ dis))で動くんじゃね?
0987名前は開発中のものです。2010/03/31(水) 15:49:04ID:G3DP0Tku
x, y, z;// 現在位置
ix, iy, iz;// 現在の移動ベクトル
tx, ty, tz;// 現在位置からターゲットへの相対位置

sx=tx-ix, sy=ty-iy, sz=tz-iz;//舵力ベクトル
dis=sqrt(sx*sx,sy*sy,sz*sz);
ix+=舵力*sx/dis, iy+=舵力*sy/dis, iz+=舵力*sz/dis;

dis = sqrt(ix*ix+iy*iy+iz*iz);
if(dis > マックススピード){ dis = マックススピード/dis; ix*=dis; iy*=dis; iz*=dis; }
では?
0988名前は開発中のものです。2010/03/31(水) 18:33:34ID:SSvnJ33T
const double speed = 8.0f; // スピード(サンプル)
double dx = targetX - fromX;
double dy = targetY - fromY;
double dz = targetZ - fromZ;
double dis = sqrt(dx*dx+dy*dy+dz*dz);
double vectorX = dx/dis; //cos(atan2(dy, dx));
double vectorY = dy/dis; //sin(atan2(dy, dx));
double vectorZ = dz/dis;
vectorX = vectorX * speed;
vectorY = vectorY * speed;
vectorY = vectorZ * speed;

>>979のサンプル参考にするならこうじゃない?
確実に追撃する凶悪ホーミングになりそうだけど
0989名前は開発中のものです。2010/03/31(水) 18:42:48ID:SSvnJ33T
質問です
データのロード中にプログレスバー的なものやアニメーションを表示させたいのですが
どのようにしたらよいでしょうか?
参考になるようなサイトとかないでしょうか?
C言語+DXライブラリを使用しています
0990名前は開発中のものです。2010/03/31(水) 20:22:34ID:82KmLTbO
スレッド分けたら?
0991名前は開発中のものです。2010/03/31(水) 20:35:56ID:KdGg28RJ
>>989
ロードに何十秒もかかるような、大規模なゲームを作るわけじゃないと仮定して。

毎フレームにつき1つずつデータファイルを読み込んで、
そのフレームの描画タイミングで進捗具合を表示すれば、別に問題ないと思う。
0992名前は開発中のものです。2010/03/31(水) 21:27:40ID:6jaz5Vk+
どう考えても>>989のやりたいことは>>990だろ
0993名前は開発中のものです。2010/03/31(水) 21:30:06ID:Kyry7wz+
デジャブー
09949892010/03/31(水) 22:01:27ID:SSvnJ33T
ありがとうございます
スレッドっていうのがあるんですね
ちょっと調べてみます
09959592010/03/31(水) 22:53:59ID:mll2egdJ
なんとか解決・・・したと思うので一応報告を。句読点の前にルビ付きの文字列が前にあるような場合は
それごと次の行に送り出すようにしました。(ルビ付きの文字は分離禁止にしたいので)

ルビ付き文字列だけで1行占めているような場合(多分ないと思いますが)は永遠に次の行に送られ続けて
フリーズするかもしれませんが、その場合は諦めて改行するようにすれば良いでしょう。

>WindowsならWinAPIのGetCharABCWidths使って>>960の考え方でがんばれば計算できるんじゃね?
自分で書いたものではないのですが、特定の文字列の幅を取得する処理は出来ていました。
(Windows上だけど、マルチプラットフォーム対応のためFreeType2使用)
0996名前は開発中のものです。2010/04/01(木) 00:57:47ID:2efbVZje
>>994
DXライブラリはスレッドセーフじゃなかったはずなので注意な。
複数スレッドからDXライブラリの関数を呼ぶならロックが必要。

まだスレッドを知らないレベルなら、
>>991のやり方にしといたほうがいい気もするけど
0997名前は開発中のものです。2010/04/01(木) 16:50:19ID:o7wXbEPN
スレチでしたら、誘導お願いできると助かります

http://iup.2ch-library.com/i/i0074732-1270108177.jpg

ADVゲームなどのシナリオのルート管理で
図のようにルート分岐などを管理できて、四角ごとにシナリオが書き込め、
その四角を任意に移動、編集が可能なテキストエディタを探しています。
livemakerをご存知の方は、livemakerのチャートを思い浮かべて頂ければいいと思います。

お心当たりの方がいらっしゃったら、情報、ご助言よろしくお願いします
0998名前は開発中のものです。2010/04/01(木) 18:12:30ID:Pt9ShRpA
そういうのってアウトラインプロセッサというらしい
このサイトの下のほうでいろいろ紹介されてるよ
http://pctraining.s21.xrea.com/knowledge_tools/outline-proccessor.html
0999名前は開発中のものです。2010/04/01(木) 20:58:19ID:BQHLBARM
YuukiNovel
1000名前は開発中のものです。2010/04/01(木) 23:56:16ID:qRZRp6CX
1000げt
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。