トップページgamedev
991コメント366KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2013/11/25(月) 21:50:34.58ID:6u/BeNgC
疑問に思うことがあれば、スレを立てずに、まずはココで質問。
スレッドを立てる前にはローカルルールを読みましょう。
http://pc11.2ch.net/gamedev/

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

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

gamdev.orgが落ちるたびにあげてみるスレ
http://hibari.2ch.net/test/read.cgi/gamedev/1107022166
0545名前は開発中のものです。2014/09/02(火) 19:41:49.42ID:5pUfdJac
>>544
そんなことはない。
win3.1、95時代の人かよ。
0546名前は開発中のものです。2014/09/02(火) 22:13:44.94ID:1xASGxHt
まあ、使いたい人が使えば良いんでね?
0547名前は開発中のものです。2014/09/03(水) 00:02:34.86ID:luuftBes
そんなことはない、と主張するなら
win3.1、95時代とはどこがどう違ってどうだからそんなことはないと
筋道だてて説明すればいいのに。
0548名前は開発中のものです。2014/09/03(水) 03:53:40.63ID:UxUneO6e
コルーチンのような無理矢理並列を実現させてた言語依存な実装をする必要が無くなったとか、
2つ以上のコアを同時に演算や処理に使えるようになったとか、
割り込み処理や非同期処理を排除して動作するロジックが作れるとか、
多段パイプラインのロジックの各階層で、完全に独立したフィルタ処理を並列に施せるとか、
そういうの書けばいいんじゃね? どれか詳細にメモリの排他やIOの話入れて説明してくれる人を期待
0549名前は開発中のものです。2014/09/03(水) 19:49:25.66ID:FH9eFq6L
「マルチ」スレッドの時点で高速化は副産物だけどなw
0550名前は開発中のものです。2014/09/04(木) 00:43:42.84ID:5claBEax
コア数がまだ数個のうちは、マルチスレッドの技術はなかなか発達しないと思う
コア数が数十、数百個単位になってからがマルチスレッドの本番な気がする
0551名前は開発中のものです。2014/09/04(木) 01:01:10.46ID:6AeNAEUh
その頃になったらコンパイラさんが程よくがんばってくれて
マルチスレッド? ああ昔はそんなこと気にしてたね
とか言ってるよ
0552名前は開発中のものです。2014/09/04(木) 01:21:37.25ID:5claBEax
並列化の手法も今とは別物になってるんだろうな
0553名前は開発中のものです。2014/09/04(木) 09:51:35.76ID:PSBhSPpk
ゲーム制作超初心者です
(脱出ゲームなど簡単なゲーム数本や、ツールを使ったノベルゲームを作りました)
ゲームを作ってていつも悩んでいることがあります

例えば「数字の書かれた裏返しカード5枚を場に配ってプレイヤーに好きなカードを選ばせる」という機能を作りたい場合、
A、実際に1〜5までの数字を並べ替えてそれぞれのカードを表示させて選ばせる
B、どのカードを選んでも事前にランダムで決めた数字のカードが出てくる(つまり置いてあるカードはただの見せかけ)
この2つの方法が思い浮かびます

なるべくAで作ろうとするのですが、時間と手間がかかるし行数も伸びてゴチャゴチャしてきます
作るのはBの方がずっと簡単です
でも「自分で選んでるように見えて実際はすでに決まってるなんて裏切りなのでは…?」と妙に申し訳ない気持ちになります
実際にBで作って遊んでくれてくれた人から「どのカード選ぶか悩んじゃったよ〜w」って言われると(あ、どれ選んでも一緒だよ…)って言えないけど胃が痛くなります

本当はBにしたいのにAで作らなくちゃ精神的に辛い…、という謎のジレンマに苦しんでいます
ゲーム制作では、AとBの方法のどちらが一般的なのでしょうか?
見た目は同じなのにわざわざAを選ぶメリットってあるのでしょうか?
堂々とBを選べる理由がほしいです
0554名前は開発中のものです。2014/09/04(木) 10:34:25.93ID:6AeNAEUh
そういう機能は選んだ後で全部のカードをオープンして見せる演出が多いので
結局Aで作るのと同じになる

特にゲームの有利不利に直結する場合は
ガタガタぬかすアホを減らすために見せたほうがいい

見せないならBでいいんじゃね
0555名前は開発中のものです。2014/09/04(木) 11:58:43.61ID:gyY2Gyfs
麻雀ゲームとか、Bだったりするよな絶対w

でも簡単なゲームだったらAの方が結果的には楽になると思うぞ。
例えば「特殊アイテムを使ったら、ヒントがカードの裏にうっすらでるようにしよう」とか
追加機能を付けたい時とか、簡単に改良できる。
0556名前は開発中のものです。2014/09/04(木) 18:40:02.12ID:9DsG7doE
配列と乱数が使えるならシンプルに実装できるから具体的に言語や環境を提示して聞くか、それぞれのコミュやスレで聞けばなるほどと解決するかも
0557名前は開発中のものです。2014/09/04(木) 22:55:02.33ID:leTFPElC
>>533
そんなしょーもないところばかりに拘ってるとハゲるぞ
0558名前は開発中のものです。2014/09/04(木) 23:44:41.06ID:PSBhSPpk
>>554-555
なるほど…
確かに後々の処理を考えるとAの方法のがいいですね
とても納得しました

>>556
お言葉に甘えてここで質問しても大丈夫でしょうか?
よろしくお願いします

ティラノスクリプトというもので製作してます
独自タグもありますが、[iscript]

[endscript]というタグでJavaScriptが使えるそうです
今までずっと[if exp=〜]の条件分岐だけでどうにかしてたのですがゴチャゴチャしてしまうので
今回初めてJavaScriptを使い始めました

色々ググってみてこの2つは出来たのですが、そこからどう次の処理をしたらいいかか分かりません
(「f.」とついてるのはティラノスクリプトの変数だからです)

↓ランダムに数字を選ぶ方法
f.dice=Math.floor(Math.random() * 5 + 1);
↓1〜5までの数字をバラバラに並べ替える方法
f.ary=[1,2,3,4,5,6];

f.ary.sort(function(){return Math.random() - Math.random();});

今はBの方法をとっていて、事前にランダムで数字を決めておいてカードを選ぶ時にそれを引かせるようにしています
Aの方法をJavaScriptでやるにはどうしたらいいのでしょうか?
数字をバラバラに並べた後、各数字を各変数に収納したのですが取り出し方が分かりません
0559名前は開発中のものです。2014/09/04(木) 23:45:51.45ID:PSBhSPpk
? 収納したのですが取り出し方が分かりません
○ 収納したいのですが取り出し方が分かりません
0560名前は開発中のものです。2014/09/05(金) 00:54:02.77ID:y2m5jZry
JavaScript なので以下のコードでいける。他にもよく使われるの3種類ぐらいある。
どういう処理をしてるかわからなければ聞かれれば答えるが、関数名でググって勉強するのをお勧めする。

var items = [1,2,3,4,5]; // シャッフルされるカード番号の配列
var cards = [ ]; // 空っぽの配列に1枚ずつカード番号を追加していく

while (items.length > 0) { // items が空っぽになったらループ終了
// items からランダムで1つずつ値を取得して cards の末尾に追加していく
var num = items.splice(Math.floor(Math.random() * items.length), 1);
cards.push(num[0]); // splice は配列を返すから、1つだけ入った値を取り出す
}
// この時点で cards[0] 〜 cards[4] にシャッフルされた番号が1つずつ入っている
// items は空っぽになってる
0561名前は開発中のものです。2014/09/05(金) 01:31:57.43ID:Gve/4fcl
JavaScriptはわからんのでそれについては何も言えんし、
ひょっとしたら知ってるかもしれないのでトンチンカンな回答かも知れんが
シャッフルは以下のようなやりかたが一般的ではないだろうか。

配列0〜4にそれぞれ数値が入っていたとして、

まず配列0と、配列0〜4のどれか(ランダムで決める)の中身を交換する。
次に配列1と、配列0〜4のどれか(ランダムで決める)の中身を交換する。
次に配列2と、配列0〜4の(以下同文)

……を配列4まで繰り返す。
0562名前は開発中のものです。2014/09/05(金) 02:30:03.44ID:bHlLCt0R
>561をコード化したのが>560だな
0563名前は開発中のものです。2014/09/05(金) 03:07:13.02ID:lEkSHS07
何て検索したらいいのか分からなくて悩んでいます。
東方のボムとかスペカが発動した時、テイルズの秘奥義を発動した時などなど…
カットイン?が入る時のゴゥン!とかボッ!みたいな音は何音というのでしょう?
相応しい名称をご存知の方は教えてください。
爆発音とかワープ音だと違うし、効果音の素材サイトを見ててもよくわかりません。
0564名前は開発中のものです。2014/09/05(金) 08:51:52.82ID:UV7RCJX5
ただの効果音だろ。似ているのを見つけて来るか自分で作れ
0565名前は開発中のものです。2014/09/05(金) 10:13:04.43ID:Igyvf58t
カットインSEとそのまま言ってみる
0566名前は開発中のものです。2014/09/05(金) 14:43:02.74ID:Mwh2C0js
ゲーム用素材に特化してなきゃ特別な名前はつけないじゃろ
自分がその音を作る(録音する)側として考えたらわかるかも知れん
0567名前は開発中のものです。2014/09/05(金) 15:40:52.38ID:ZqbOlhsq
>>561
シャッフルは、1つずつ減らしていくのでは?
0〜4から1つ選んで、[0]へ代入、[0]は確定
1〜4から1つ選んで、[1]へ代入、[1]は確定
以下同様に、2〜4 → [2]へ
3〜4 → [3]へ

>>558
詳しくは「js シャッフル」で検索して

Mathにシャッフル関数は無いのか
Underscore, Lo-DashのCollectionsに、shuffle関数がある
ttps://github.com/enja-oss/Underscore/blob/master/docs/Collection.md
ttp://lodash.com/docs

ライブラリの質問なら、web制作管理板
JavaScript ライブラリ総合質問所 vol.4
ttp://peace.2ch.net/test/read.cgi/hp/1400834117/l50

JSの質問は、web制作管理板か、プログラム板の方がよいかも

ゲームは、jsdo.itでも作っている人も多い
ttp://jsdo.it/
0568名前は開発中のものです。2014/09/05(金) 16:07:00.06ID:y2m5jZry
>>567
> Mathにシャッフル関数は無いのか

558が自分で調べた sort(クイックソート) メソッドの評価関数で randam() 値使えばそれがシャッフルと等価になってる。
「全ての処理がクイックソートである」 が確定してないと無限ループやバグの元になるから推奨できないんだけどね。
大半のクラスライブラリや基本モジュールでは クイックソート と明言されてるから使える技
0569名前は開発中のものです。2014/09/05(金) 18:16:24.87ID:Gve/4fcl
>>567
>シャッフルは、1つずつ減らしていくのでは?

君の言うやり方だといちいち「選び終わった数字」を控えておかないといけないじゃん。

>0〜4から1つ選んで、[0]へ代入、[0]は確定
>1〜4から1つ選んで、[1]へ代入、[1]は確定

現に↑このレイだと「ランダムで一つ選ぶ」はずなのに、
一行目では「0」が選ばれたことが前提になってるしw
0570名前は開発中のものです。2014/09/05(金) 20:58:37.27ID:RDK5elSd
シャッフルの件、C#のコードで申し訳ないけれども
http://ideone.com/pSimqs
個人的にはこの方法が好き。

・利点
なんとなく均等にシャッフルできているような気分になる
・欠点
作業用配列を確保しなきゃならないのでメモリ使用量的にどうよ、ってなる
05715672014/09/06(土) 00:22:46.61ID:O3RtaV2M
>>569
商店街でガラガラ回す、福引のように、
一度選んだものを、除外していく方式

例えばインデックス[0〜4]から、ランダムに[2]を選んで[0]へ格納
ただし、元々[0]にあった要素を、上書きされないようによけておく
[0]→tmp、[2]→[0]、tmp→[2]

[1〜4]から、[1]を選んで[1]へ格納

[2〜4]から、[4]を選んで[2]へ格納
ただし、元々[2]にあった要素を、上書きされないようによけておく
[2]→tmp、[4]→[2]、tmp→[4]
0572558-5592014/09/06(土) 21:13:42.92ID:soDD9N1k
試す時間が取れなくてレス遅くなってレスすみません

>>560
こちらのコードをティラノスクリプト用に変数を書き換えたものをコピペしたら動きました!
こんなに短いコードで自分がやりたかったことが出来て、とても感動してます本当にすごいです
1文1文丁寧なコメントもつけて下さりありがとうございます

今までJavaScriptについて知識がなく、HTMLの補助くらいにしか思ってなかったのですがこんなに便利なものだったんですね
他の方のレスもとても参考になりました
今の自分には何となくしかわからなくてすみません
関数名や「js シャッフル」で検索して勉強してみます

カードが並べられるようになったので
他の方が言っていたカードが透けてヒントが見える表現なんかも出来てゲームが楽しくなりそうです
本当にありがとうございました
0573名前は開発中のものです。2014/09/07(日) 13:11:16.63ID:s9vhQEyf
vector<Hoge*> list;
って保存したインスタンスのポインタって他から参照しても有効ですか?
vectorはpush_backし過ぎると上限を上げるために新しく配列を作りなおして
vector自体のアドレスが変わると聞いたのですが、
「ポインタ変数」のアドレスが変わるだけで「ポインタ変数」が指す「変数」のアドレスまでは変わらないですよね?

vector<Hoge*> list;
vector<Hoge*>* prevListAddress = &list;
Hoge* hoge = new Hoge();
list.push_back(hoge);
for(int i=0;i<1000;i++){
list.push_back(null);
}

//prevListAddress == &list //多分違うアドレスになっている
//list[0] == hoge//でもこれは・・?
0574名前は開発中のものです。2014/09/07(日) 13:13:44.20ID:UqEBZZZt
vectorは再配置するが、値は変更されない、壊れないだろう。
0575名前は開発中のものです。2014/09/07(日) 16:54:49.90ID:t3aim4Jq
参照の参照を見る形だから、ポインタのポインタである変数にアクセスする限りは変わらない
0576名前は開発中のものです。2014/09/14(日) 17:44:28.28ID:FGcW/RHE
OP主題歌を依頼するといくらくらいかかりますか?
最低ラインを教えてください。
やっぱり同人でも有名な人とかはコネないと無理なんでしょうか?

映像も依頼するつもりなのですが、その最低ラインもお教えくだされば
幸いです。よろしくお願いします!
0577名前は開発中のものです。2014/09/14(日) 18:29:27.07ID:vmi838sE
相場はないんでは?
ある程度の実績がある人、会社だったらあるだろうが。
発注がどこかで大差あり。
たとえば、スタジオ・ジブリの宮崎駿と、無名では違う。
0578名前は開発中のものです。2014/09/14(日) 20:54:01.14ID:28ejKsun
プロの話だからあくまで参考にしかならないけど、
エロゲの音楽作る人が曲の値段について前にtwitterで投稿してた
たしかOP主題歌は30万円ぐらいだったかな。
作曲→レコーディング(歌手・スタジオの手配)→ミックス→納品というフローを考えればそれぐらいはするかなと思う

が、あくまでこれはプロの話だし、同人音楽屋なら、直接その人に値段について問い合わせたほうがいいと思う。
作曲者側で30秒いくらで単価を設定してるはずだし、そういうルールも教えてくれるんじゃないかな。
参考にひとつ作曲家の依頼受付ページ貼っておく。
作曲家側がどんな感じで受けてるのかわかると思う(ただしこの人は歌ものはやってない)
http://kohrogi.com/?page_id=4446

久石譲のような一流どころでなければコネなんていらん。
ただし人気があって依頼が多い作曲家の場合は納期は遅くなると思うし、最悪受けてもらえないかも、
ということを踏まえた上で、やはり問い合わせてみるのが一番。特にお目当ての作曲家がいるなら。

映像は手間かかるだろうし、そうそう製作者も転がっていないのでわからん。
というか、頼む当てがあるなら、やはりメールして聞いてみるのが一番よ。
0579名前は開発中のものです。2014/09/14(日) 21:49:25.18ID:XfoA2tY8
素材サイトで有料で作るよって書いてある所には値段も明記されてる場合が多い
世界的に有名なプロに依頼するわけじゃないでしょ?
0580名前は開発中のものです。2014/09/14(日) 23:51:45.43ID:Ngl+DYr4
最低料金だろ
漏れなら、Vocal無し、作曲+MIDIで、5万円

ただし、何曲もただで作り直すと、
時給が100円以下になるから、作り直しは無しで

それを友達のスタジオで、録音してもらうのに5万円

漏れは昔、30秒のゲーム音楽を、5千円ほどで作っていた。
でも今はやってないよ

ttp://www.musicworx-studio.com/
ここの社長が漏れの大学時代からの友人で、
今でもゲーム音楽を作っているかな?ここに聞いてみれば?
米国ボストンにあるバークリー音楽院に留学していた
0581名前は開発中のものです。2014/09/15(月) 00:18:09.89ID:TXJGRsKQ
偽ベートーベンで知ったが。
鼻歌テープから曲を作ってくれるアレンジャーはかなり安価だったぞ。
0582名前は開発中のものです。2014/09/15(月) 00:30:52.01ID:TXJGRsKQ
『鼻歌程度に作曲した曲を、何とか形に!』と言うご要望にお答えし、一曲一曲を丁寧にお好みのサウンドに仕上げます。
http://www.kazenomoriyukawa.saku ra.ne.jp/images/top_main.gif
全パート制作 ¥28,000 ピアノパートのみ ¥12,000 ボーカル録音  ¥8,000 (2時間mix込み)
各ジャンルにおいて男女の歌手を揃えております。音源を聴いて頂きご希望の歌手をお選び頂けます。
http://www.kazenomoriyukawa.saku ra.ne.jp/price.html


\20,000+TAX? 楽曲アレンジ
鼻歌からでも楽曲制作します。 ギターやキーボード+仮歌のデモから伴奏を起こしメジャークオリティの楽曲を制作したり、Hip Hop/R&B/レゲエのトラック制作またはグレードアップ。
アイドルグループの楽曲制作、作詞作曲、仮歌を入れての納品まで。
CMソングの楽曲制作、保育園/幼稚園の園歌制作、よさこい楽曲制作、バンドの同期作成、企業様のサウンドロゴなどなど 素材はデモもしくは鼻歌でも構いません。
http://stand-recordings.co.jp/arrange



■シンプルアレンジ *ピアノコード伴奏(¥40,000〜 税別
■本格アレンジ(¥120,000〜 税別
■作曲補助  (¥50,000〜  税別
■プロ歌手によるボーカル収録 (¥140,000〜  税別
http://happymusic.me/images/catch_price.gif
http://happymusic.me/media/1/20130828-_______________________62.png
http://happymusic.me/price.php
0583名前は開発中のものです。2014/09/15(月) 01:47:13.72ID:n/ydR7tx
OP主題歌とかついてるゲームとか
臭いだけだからやめよう(アドヴァイス)
0584名前は開発中のものです。2014/09/15(月) 02:10:55.79ID:976WGFRE
商業ゲーのOPだって(ほとんどが)痛々しくて見てられないから飛ばすしなぁ……。
0585名前は開発中のものです。2014/09/15(月) 02:17:15.60ID:Mq6/VQ6Z
20年ほど前、桃鉄だったかな?
漏れの友人が、サザンのベースか、さくまの妻だったかの曲に、
コードを付けて、編曲していたのを思い出した

鬼ヶーーー島!
0586名前は開発中のものです。2014/09/15(月) 04:06:21.90ID:Pgie5qHx
いろいと詳細ありがとうございました!
参考になりました!
とりあえず問い合わせしてみます!
0587名前は開発中のものです。2014/09/23(火) 09:53:47.23ID:sI3UBnL4
640*480で、2D(ドット絵)ゲーを作ってたけど、いまどき画面比率4:3は無いかなぁ、と思い、
ワイドに変更を試みましたが、640*480の近似値でワイドとなると
720*480という中途半端で、しかもフルスクリーンにすると縦に潰れるという
どう考えても一般的じゃないものになってしまいました。
(仕様的に縦を480より伸ばすのは面倒なので横だけ伸ばす方向で考え、
 フルスクリーンも可能なサイズ、として検討したらこうなりました)

この条件に近くてもっと一般的なサイズはありますでしょうか?

最近は高解像度でありながら、拡大表示でドット絵ゲーにしてるのも多いようですが
そのほうが一般的なやり方なんでしょうか?
0588名前は開発中のものです。2014/09/23(火) 11:09:12.15ID:Mw+L8Mpo
フルスクリーンでなく、ウインドウにする。そうすれば画面に依存されない。そして、2倍モードが良いだろう。
0589名前は開発中のものです。2014/09/23(火) 12:40:44.16ID:efFoCSfd
4K だと小さそう。
0590名前は開発中のものです。2014/09/23(火) 12:45:50.24ID:jSzukf4c
上下あるいは左右に黒帯を付ける or フレーム枠画像を入れる、スマフォ向けなら広告を入れるあたり検討してみたら?

あとターゲットとなるプラットフォームが不明確だからリサイズ処理あたりの話はなんとも。
0591名前は開発中のものです。2014/09/23(火) 21:06:33.99ID:jSzukf4c
iPhone仕様で 640x1136 か 320x568 にしとくのもありかと
0592名前は開発中のものです。2014/09/24(水) 17:43:21.46ID:Vi9UhtYj
フルスクリーンはモニタの対応を気にしなきゃいけないから地味に難しいんだよな
例えば>>591が書いてるようなのは俺のモニタじゃフルスクリーンに出来ない
疑似フルスクリーンとか仮想フルスクリーンとか呼ばれてるようなやつでレターボックス付けるのが楽だった
0593名前は開発中のものです。2014/09/24(水) 20:28:17.16ID:y6enQ2a5
ゲーム性や画面構成にもよるけど、ワイドな画面の左右を適度にトリミング、上下黒帯っていうのもありだ
0594名前は開発中のものです。2014/09/26(金) 00:46:33.79ID:Ictjo2Uc
タワーディフェンスのようなゲームを作りたいのですが参考になるサイトないですか?
0595名前は開発中のものです。2014/09/26(金) 01:45:10.96ID:GYhvjVOz
自分で考えろ
0596名前は開発中のものです。2014/09/26(金) 07:48:31.64ID:rO+kEazw
>>587
自分の場合はモニタ対応とか色々考えた結果、1280x720に落ち着いた。
なんかもう考えるの面倒くせぇと諦めたともいう。
で、必要に応じて画像を整数倍拡大。キリはよくないけど、自分は3倍が好き。

あとは、たまに1920x1080で作る。
0597名前は開発中のものです。2014/09/26(金) 10:06:18.11ID:Gv+ltECi
>>594
シューティングゲームを応用して何とかしる
0598名前は開発中のものです。2014/09/26(金) 13:37:06.75ID:Ictjo2Uc
スプライン曲線を利用してキャラや弾を動かす。
目的地への最短ルートを障害物を避けながら移動する方法。
これらのやり方がさっぱりわかりません
0599名前は開発中のものです。2014/09/26(金) 14:19:45.56ID:Gv+ltECi
曲線は諦めて直線でごまかす 多分あとで直せる

移動ルートは固定化して直線+曲がり角に組み替える
必要ならば曲がり角ごとに進路をこっそり仕込む

もっと凝ったことがやりたいなら…頑張ってw
0600名前は開発中のものです。2014/09/26(金) 15:09:53.40ID:8/p/ukYS
>>598
なぜスプライン曲線をなぞる必要があるのか、その物理法則関係なくこだわりたい理由を詳しく。
最短ルートについては「経路探索アルゴリズム」という用語で出てくるページや資料を読むとよい。
0601名前は開発中のものです。2014/09/26(金) 15:21:10.90ID:Ictjo2Uc
マスがないマップであらゆる方向から縦横無尽に攻めてくるのを表現したいから
でも直線でできるようならそれでもいいんですけど
よくあるFPSゲーを2D画面で作ってみたいんです
0602名前は開発中のものです。2014/09/26(金) 16:19:31.43ID:JcYHmNqs
敵から自分への角度取得して、そっちの方に行けばいいじゃん
0603名前は開発中のものです。2014/09/26(金) 16:32:19.71ID:Ictjo2Uc
動いている自機に向かって敵が直線で進むようにすれば
結果的にスプライン曲線を描きながら進んでいるように見えるってことか
なんとなくわかってきたような気がします
0604名前は開発中のものです。2014/09/26(金) 18:41:19.83ID:mWpB2Rw7
>>594
俺「波状探査ならまかせろ」(バリバリッ
私の彼が波状探査だった・・・別れたい(しかも失敗してる)

https://www.youtube.com/watch?v=5XOstgDB7uA


簡単なタワーディフェンスならPS3でスクエニの「クリスタルデフェンス」って名前の体験版落とせる
スマホあるなら無料ゲーでテキトーに落とせば参考になるんじゃない?
0605名前は開発中のものです。2014/09/26(金) 18:56:33.28ID:8/p/ukYS
タワーディフェンスのような であって既にルールが決まってるタワーディフェンスをやりたいわけじゃないのね
0606名前は開発中のものです。2014/09/27(土) 02:21:39.70ID:wImin9kV
マス目上のルーティングは総当たりでなんとかなりそうだけど、普通の3D空間とかでルーティングするのってどうやるの?
ナビゲーションメッシュもあるんだろうけども、細かい障害物避けるのって
自分の座標とウェイポイントの直線と障害物判定してんのかな
障害物があることはわかるけど、じゃあどこ行ったらいいのって所で迷う
0607名前は開発中のものです。2014/09/27(土) 02:28:22.18ID:KFKFn22+
やったことないからわからんけど、
ルーティング用のマス目状マップでも用意しとくんじゃないかなぁ。
マップが自動生成されるんでもない限り、それでなんとかできそうな気がするが。
0608名前は開発中のものです。2014/09/27(土) 02:31:55.56ID:s2HQ+i3p
実例で学ぶゲームAIプログラミング
読んでみるとよい。
0609名前は開発中のものです。2014/09/27(土) 11:17:09.21ID:tjBxEneo
正確に最短経路探索や明確なオブジェクトのキャラ付けをしたい場合は、
たぶん知識が全然足りてない状態だから大学の専門講義レベルの内容を
>>600>>608が出してる専門書を理解してから、独自にコーディングする
必要がある。これをやるだけで2年は普通にかかるし、数年がかりの研究に
なるかもしれん。学術をやりたいならこっち。

ゲームを作りないなら「それっぽく見せる」のが重要なだけで、>>606の指摘した
メッシュのような簡単な方法を使い、それをスプライン曲線っぽく見せる単純な
改造を加えるのが正しい解。
0610名前は開発中のものです。2014/09/27(土) 11:21:49.79ID:Ei/nc79e
A*探索アルゴリズムがある。 エースター。
0611名前は開発中のものです。2014/09/27(土) 13:21:26.78ID:tjBxEneo
O(n log n) とか O(n) とか O(1) が何のことか理解しないと破綻するだろうね。
オブジェクト数が少ないなら単純に計算させりゃいいけど

枝刈り という単語についても一緒に勉強するとよさげ
0612名前は開発中のものです。2014/09/27(土) 14:58:36.02ID:rBcMllrc
カーナビみたいに目的地まで一気にルートを作成するのは大変そう
内部でマス目用意しておくか
探索範囲を自分の周囲だけにして障害物を避けながら移動して、
蟻みたいに後ろのやつは前のやつについていくようにすればいいかな
0613名前は開発中のものです。2014/09/27(土) 20:26:35.11ID:dH0Gqgc4
>>594
cocos2d-iphoneなら、Ray Wenderlichってサイトにあるよ。英語ができないならまあ頑張れ
0614名前は開発中のものです。2014/10/02(木) 23:31:37.03ID:FmmVRDwb
ファミコンの「ぼくドラキュラくん」の動画を見たのですが、
各ステージ最後のボス部屋以外、広大なマップを切り替え無しに
縦横に延々スクロールして移動しているのですが、これを再現
するにはどのように画面管理をすればいいのでしょうか。
ロックマンみたいにある時点でマップの区画を切り替える
やり方なら分かり、今は切り替え時点で次の区画の
オブジェクトを生成しています。
延々スクロールだとどの時点でオブジェクトを生成すればいいか
やり方がわかりません。
0615名前は開発中のものです。2014/10/03(金) 01:43:48.37ID:jMc5hZrh
最低でも二つのマップを表示していると見るべきかと
で、スクロールする範囲がマップ毎に別々に決めてあり、
今居るマップでスクロールする範囲が決まると
0616名前は開発中のものです。2014/10/03(金) 02:19:00.35ID:pwKYo/dk
1画面に表示するマップチップを配列で管理してるようにステージも同じように管理すればいいんじゃない?
マップチップ1個を1画面分の広さに置き換えて考えればイメージしやすいかな。

http://www.dotup.org/uploda/www.dotup.org5343762.png
0617名前は開発中のものです。2014/10/03(金) 07:41:54.97ID:Sj8MLdjG
背景部分の処理が一枚の巨大な画像を生成してそれを切り出してるというのであればその設計が問題。
今の時代は富豪プログラミングの力業でいけるから、20画面分くらいはいけるだろうけど、
リアルタイムに生成と消滅する手法を考える方が必要
0618名前は開発中のものです。2014/10/03(金) 07:48:59.12ID:xpbTXSz1
リアルタイムでファイルから読み込めば良いんでね?
ファイルアクセスのラグなんて、タイルマップの情報量から考えでもたかが知れてる
0619名前は開発中のものです。2014/10/03(金) 11:19:56.41ID:xnDT8Hy6
一般的にタイルマップと言う、RPGをタイルマップで作ることが多い。
例えば、16x16の画像を複数持って、画面に並べて表示する。
640x480画面ならば、40x30個のタイルを並べれば良い。
巨大なマップであっても、その一部を表示すればよい。
簡単な計算で出来る。スクロールも容易です。
0620名前は開発中のものです。2014/10/03(金) 14:08:18.37ID:Sj8MLdjG
>>619
その場合に画面を外れて往復するような敵キャラはどのように管理すればいいのかを具体的に説明して欲しいかも。

614で画面繊維したときにオブジェクトを一括で生成してるってことは
はるか先のスクロール場所にいる敵も、そのときに生成してると思われるが
これの管理はどうすればいいかは、気になると思う
0621名前は開発中のものです。2014/10/03(金) 14:26:55.18ID:aQh26k/Y
オブジェクトの管理なんてそもそも画面内かどうか関係ないじゃん
どのタイミングでどこ見ようが映るようにするのが本来の設計だし
0622名前は開発中のものです。2014/10/03(金) 14:29:16.53ID:IZCRmb1p
現在地から遠く離れた位置にいる敵の動作が必要なら
それなりの処理が必要になると思うけど、大抵は現在地から近くの敵だけだと思うので工夫して
たとえば現在画面とその周り8方向の画面を合わせた全9画面の中の敵だけは動作させるとか
そういう風にすればいいと思う。他にもやり方は色々あると思うけど。
0623名前は開発中のものです。2014/10/03(金) 14:53:17.71ID:xnDT8Hy6
>>620
それが、>>619の作り方をしたならば、
巨大マップの全部がひとつとして動作しており、
表示されるのが一部分であるだけです。
表示と、マップ上での敵などの動きは影響されない。
画面に見えなくても見えない部分も動作する。
これが単純で明快な方法。

効率化の為に最適化をするならば、
見えない部分の動きや音を止めるような方法もある。
これは、ゲーム性の部分であるから個別ゲーム仕様に準ずる。
0624名前は開発中のものです。2014/10/03(金) 15:23:02.80ID:xnDT8Hy6
タイルマップの簡単な説明
http://www1.axfc.net/uploader/so/3333991
0625名前は開発中のものです。2014/10/03(金) 15:28:29.62ID:Sj8MLdjG
ファミコンのあの限定的なメモリでどうやってあの手のゲームを実現してたかとかの話は不要かな。
富豪プログラミングまではいかないにしろ、少しのメモリで解決できるし。

この手の技術的な話題は ROM改造スレ や関連のまとめサイト行けば、目からうろこ なテクニックのお勉強になるよ
0626名前は開発中のものです。2014/10/03(金) 15:42:19.64ID:BtbFG2JS
ぼくドラキュラくんとやらの動画を見たが、
普通に「画面から遠くはなれた敵は消える」だろうな。
で、たぶんマップ上に「この位置にこういう敵がいる」ってのが記録されてて
表示画面に近づいた時に「生成される」んだろう。

だから例えばコウモリが配置されてる場所にいって、コウモリを倒したあと、
そこから離れて(スクロールアウトさせて)もどってみたら、
またコウモリが出てきてるはず。
0627名前は開発中のものです。2014/10/03(金) 19:42:21.12ID:Csgq/m7f
Androidで個人で知略対戦型のゲーム作ろうとしてます。
ブラゲで企画の核となるプロトタイプは既に作ってて、
それをブラッシュアップしたものをネイティブアプリで作りたい。

で、Androidのクラサバ?でレン鯖が負荷に耐えられるのかとか
負荷をなるべく抑えるためのゲームデザインとか
そういうので悩んでるんだけど
そういう話題のスレってありますでしょうか…
0628名前は開発中のものです。2014/10/03(金) 20:41:19.58ID:ETXfztCN
ブラウザゲームが耐えられんなら耐えられるんじゃねーの
0629名前は開発中のものです。2014/10/03(金) 20:56:13.79ID:Csgq/m7f
まあそりゃそうか(´・ω・`)
06306142014/10/03(金) 23:39:58.53ID:TKXRKVtW
>>615-616
マップ管理をもう一つ、全体を管理できるものを用意すればいいのですね

現在、ステージマップを画面切替単位毎に区画に分けて、それぞれの区画が
マップと敵配置等のイベントレイヤーの、2つの同サイズの2次元配列を
持っています。
そしてプレイヤーのいる区画のオブジェクトだけを動かしています。
これを他の区画のものも動かす場合、ステージ全体の2次元配列を
用意すればよさそうですが、ステージの最小座標と最大座標で
2次元配列を作ると、ステージの構成次第では膨大で配列の大部分が
無駄な領域となってしまいます。
マップの2次元配列は当たり判定にも使用していますので、
パフォーマンスも気になります。
区画毎に2次元配列を持つ今のやり方は根本的な誤りがある気が
してきました。
0631名前は開発中のものです。2014/10/04(土) 03:08:21.24ID:hWGwvuJc
大マップの配列の大きさが気になるならchar型でもってもいいのよ。
'0〜9' 'a〜z' 'A〜Z'で62種類あるし、char[256][256]とかやってもいいんじゃないかな?

ファイルの中身、こんなんですよ
http://minus-k.com/nejitsu/loader/up319308.png

大マップの方でプレイヤーキャラの上下左右3*3を調べて、現在いるステージと次ステージ以外は描画しないようにして
中心座標1マス(ゲーム画面1画面分)と、その周囲を描画させれば負担はそんなにかからないはず。
06326142014/10/04(土) 04:17:25.56ID:SzrnAQBu
みなさんアドバイスありがとうございます。
>>631
なるほど、char型ですか。
マップエディタ(Platinum)で作成していたのでその発想はなかったです。
あと、ご提示の画像でいうところの1〜5は別々の2次元配列に
したいです。今がその方式だし、分割管理の方がマップエディタでも
長方形の形をフルに使えて作成しやすいので。
その場合「1の右端」と「2の上端」をシームレスにスクロール
する方法を考えないといけないですが。
今は「1の右端」ではカメラが固定してプレイヤーが端まで移動
しますが、これをプレイヤーは画面中央のまま、2の画面に
入れるようにしないといけないですね。
0633名前は開発中のものです。2014/10/04(土) 04:35:40.88ID:CfbsB7UM
戦略ゲーム作ろうと思ったけどヘックスマップで挫折した
難しすぎて理解できない
最初は正方形で慣れたほうがいいかな
0634名前は開発中のものです。2014/10/04(土) 05:18:57.47ID:B6ymsrp2
正方形マスのマップを列(または行)ごとに半マスずつずらして考えてごらん。
■■■■
■■■■
■■■■
■■■■
■■■■
正方形マスと同じように配列で簡単に管理できる。
正方形マスより移動可能なマスが増えるだけ。
0635名前は開発中のものです。2014/10/04(土) 05:19:41.25ID:B6ymsrp2
ごめん半角省略された
■■■■
o■■■■
■■■■
o■■■■
■■■■
0636名前は開発中のものです。2014/10/04(土) 05:31:57.15ID:CfbsB7UM
■□■□■□■
□■□■□■□
■□■□■□■
□■□■□■□
■□■□■□■
こういうやり方もあるみたいなんですが
どっちがいいかわからないし、どちらにしても配列をどう管理すればいいかわからない
0637名前は開発中のものです。2014/10/04(土) 05:52:15.80ID:B6ymsrp2
表示される形と配列の形を同じにしようとしてるから混乱しているんだと思うよ。
0638名前は開発中のものです。2014/10/04(土) 07:32:53.26ID:LYcsoFl9
戦略シミュレーションゲームを作るスレ
ttp://peace.2ch.net/test/read.cgi/gamedev/1333204842/l50

漏れはこのスレの117だけど、正方形のマス目をずらして、
ヘックスを表すには、

>マス目は、縦方向に一直線で、
>横方向には半マスずれているのか?
マス目は、横方向に一直線で、
縦方向には半マスずれているようにしようと思う

これは、HTML,CSS,JS などでマス目を作る際に、
横方向に一直線になっている方が、
画面デザインをしやすいかなと思った
06396382014/10/04(土) 07:34:50.36ID:LYcsoFl9
マス目の行列は、M * N
番兵はぐるりと、その周囲を囲む
番兵を含むと、(M + 2) * (N + 2)

1〜M行目、1〜N列目はマップ
0, M+1行目、0, N+1列目は番兵

奇数行は、偶数行より半マス右にずれて表示される
マス目(i, j)に接するマスは、
奇数行と偶数行によって、iの1つ上下の行がずれる

接するマスは、iが偶数のとき、(i-1,j-1)(i-1,j)、
(i,j-1)(i,j+1)、(i+1,j-1)(i+1,j)
iが奇数のとき、(i-1,j)(i-1,j+1)、
(i,j-1)(i,j+1)、(i+1,j)(i+1,j+1)

iが奇数の際、iの1つ上下の行が、右へずれる
結論として、j + i % 2
偶数のとき、j + 0。奇数のとき、j + 1
0640名前は開発中のものです。2014/10/04(土) 12:18:01.67ID:3dztRD+u
自分が□にいるとして、隣接するヘックスは○

表示位置はこんな感じ
■■■■■
_■○○■■
■○□○■
_■○○■■
■■■■■
実際に参照する配列はこんな感じ
■■■■■
■○○■■
■○□○■
■○○■■
■■■■■

こういう表示位置なら…
_■■■■■
■■○○■
_■○□○■
■■○○■
_■■■■■
同上
■■■■■
■■○○■
■○□○■
■■○○■
■■■■■

自分が居る位置と方向(上の例では1時の方向、3、5、7、9、11)で正しく参照するようにする
0641名前は開発中のものです。2014/10/04(土) 15:53:06.15ID:CfbsB7UM
配列の一行目は(0,0)(1,0)(2,0)こんな感じで並べるのでいいですか?
X軸が水平ってやつだと思います
0642名前は開発中のものです。2014/10/04(土) 17:14:21.04ID:CbrYzgZ/
2次元配列で、列が偶数の時は左右と上下のx, x+1
奇数の時はx-1, xでhexになるような

[a0, a1, a2, a3, a4]
[b0, b1, b2, b3, b4]
[c0, c1, c2, c3, c4]
[d0, d1, d2, d3, d4]

a0の隣接 = a1, b0, b1
b1の隣接 = b0, a0, a1, b2, c0, c1
c2の隣接 = c1, b1, b2, d1, d2, c3
06436382014/10/05(日) 23:02:35.81ID:i6GrhbBw
>>641
0オリジンで、配列の0行目は、(0,0)(0,1)(0,2)
配列の1行目は、(1,0)(1,1)(1,2)

マス目を1行ずつ、左から右へ、見ていく感じ
それで、1,3,5などの奇数行は、半マス右にずれて表示される
0644名前は開発中のものです。2014/10/06(月) 01:37:28.95ID:hyhihY3R
DXライブラリで作っているんだけど
なんとか六角形を並べて表示することはできました
これをどのようにメモリで管理するのか
皆さんのレス何度も見ながらやっていこうと思います

参考にしたサイト

路然草(みちづれぐさ): ヘクスマップ
ttp://michizure.seesaa.net/article/318281163.html
Hexagonal Grids
http://www.redblobgames.com/grids/hexagons/#hex-to-pixel
■ このスレッドは過去ログ倉庫に格納されています