1人でゲームが作れるように修行します。2 (487レス)
上下前次1-新
213: SGGK ◆6pZCoAtaxk 2011/04/14(木)23:30 ID:XhLhjLQN(2/2) AAS
最後から2行目は自分のプログラムの進捗的なものがわずかという意味であり、
ここで得たものがわずかという意味では無いので念の為。
ここではいろいろ多く学ばせてもらってますので…(汗;
読み直してあせった。言葉って難しい。
214: SGGK ◆6pZCoAtaxk 2011/04/15(金)23:10 ID:2Uog82ch(1) AAS
>>210の試合経過時間は未だ実装出来ず。
結構難しいかもしれない。
215(1): 179 2011/04/16(土)03:34 ID:WryT+KpS(1/2) AAS
IF文とboolフラグのオンパレードになってきた…orz
とりあえずの×ボタンは簡単に実装できたけど、
消したのを表示するのは作ってない罠
経過時間は1フレーム毎の時間を求めてカウンタに足していくか引いてくか
するのがいいんじゃないカナー
gettimeとかの関数で取り出したのをそのまま使うと
ポーズとかややこしい事になりそうw
省7
216(2): 179 2011/04/16(土)03:42 ID:WryT+KpS(2/2) AAS
あ、初期化ミス…↓こうでしたorz
//初期化
static int frame_time = 0
static inttime_know = GetNowCount() - 1;
static inttime_back = GetNowCount() - 1;
//1フレームの時間を求める処理
if(time_back != know_time;)time_back = time_know;
省2
217(2): 2011/04/16(土)15:03 ID:aTo50Zu7(1) AAS
サッカーゲームのような、フレームごとの計算を繰り返していくタイプのプログラムの場合、
経過時間の管理は、実際の(現実世界の)経過時間ではなく、
処理したフレーム数で管理するほうが、合理的な結果が得られると思います。
218: SGGK ◆6pZCoAtaxk 2011/04/17(日)00:44 ID:mWz5D8BJ(1/2) AAS
>>215,216
ありがとうございます。
自分はいままでbackとknowに相当するコードをなぜかソース内の別々の場所に書いてあり、ソースが読みにくくなっていたけど、
これを見て3行続けて書ける事が分かりましたので、早速修正してみます。
今回はメインループ内に書かれるソースコードを減らしてみたくてこの3行に相当する機能をクラス化することに挑戦。
結果、クラス内の行数はかなり増えてしまうけどreleaseモードでは成功。
debugモードでは時間表示が正しくなく、プログラムを終了させると「ヒープが壊れていることが原因として考えられます。」のようなエラーメッセージ。
省5
219: SGGK ◆6pZCoAtaxk 2011/04/17(日)01:48 ID:mWz5D8BJ(2/2) AAS
そういえば以前にもdebugモードでダメでreleaseモードではOKというのは、
releaseモードではチェックがされていないだけなので、バグが無いという意味ではないとこのスレで教わったのを思い出す。
まだ、この前UPしたバージョンにちょっと書き足しただけなんだから、
どこかに内容的な間違いがあるはずと思い良く見てみると1か所あったので直してコンパイルしてみたら直った!
これがなんでヒープ壊れる事につながっていたのかは結局わからずだけど、
とりあえずすっきり。(寝)
220: SGGK ◆6pZCoAtaxk 2011/04/17(日)23:21 ID:VrjRr7OP(1) AAS
昨日は起きていたのがいつもより遅かったので書けなかったけど、
昨日の間違いというのは、メインループ内のゲーム処理関数の最初の行に書いた2行の順序が逆だったこと。
(間違い)
m_Time.countGameTime();
if(m_Time.m_GameTimeState==CONTINUE){m_Time.displayGameTime();}
(正解)
if(m_Time.m_GameTimeState==CONTINUE){m_Time.displayGameTime();}
省11
221(1): 179 2011/04/18(月)02:43 ID:OTLjhXG7(1/2) AAS
AA省
222(1): 179 2011/04/18(月)02:55 ID:OTLjhXG7(2/2) AAS
AA省
223: SGGK ◆6pZCoAtaxk 2011/04/18(月)23:13 ID:kLP7Gc7/(1) AAS
>>221,222
ループが最速で到達した場合というのは想定してなかったので勉強になりました。
ありがとうございました。
今日は次の目標を考えて終了。
次の目標は、前半、ハーフタイム、後半、試合結果表示の4つの状態遷移実装。
224(1): SGGK ◆6pZCoAtaxk 2011/04/19(火)22:59 ID:Y5+hNJcp(1) AAS
状態遷移は以下のような感じで実装。SGGK_019のソースの頃に比べれば短くなった感じ。
でも、これに選手の前半後半の攻撃方向入れ替えや得点表示などを組み込むとなると混乱しそうな予感。
switch (m_MatchState) {
case FIRST_HALF:
if(m_Time.m_TotalGameTime >= FIRST_HALF_GAME_TIME){
m_MatchState=HALF_TIME;
m_Time.resetGameTime();
省23
225: SGGK ◆6pZCoAtaxk 2011/04/20(水)22:43 ID:rAZcxTJj(1) AAS
でも、もっと良いやり方があるはずなので、
「ゲームプログラム 状態遷移」でネット検索。
以前も挫折したけど、また少しだけ調べてみるつもり。
226: 179@SLG? 2011/04/23(土)00:02 ID:EVcHPUn1(1) AAS
うーん、基地というか資源地ぽいクラスを作ったけど
中身がユニットと変わらない罠・・・
後、マウスの座標をWINDOWSのアイコンの位置から取るようにしたら
なんかバグって座標がずれてたりしたけどなんとか直した。
手間食ったけど、やっとALT+TAB押さないと違うWINDOW行けない仕様から
普通にマウスでいけるようになった(ノ∀`)
227: SGGK ◆6pZCoAtaxk 2011/04/24(日)00:01 ID:rFlUji0A(1) AAS
こちらの進捗は調べたり休んだりを繰り返しながら実質何も進まずな状態が続きそうな予感…(汗
228: SGGK ◆6pZCoAtaxk 2011/04/25(月)00:12 ID:oJBn91bE(1) AAS
>>224でも短くなった方だけど、ゲームのメイン処理の先頭にこれを書くのは
まだ長いような感じがした。それと、ゲームの時間帯の状態を表す定数と時間のリセットの処理を一緒に書くのも
後々わかりにくくなるような気がした。今はたまたま、この定数の切り替わりが起きる条件と時間のリセットが起きる条件が一緒だから
このように書けているだけなので、将来の想定外の変更を考えて分ける事を考えた。
ゲーム時間帯の状態を表す定数を決める関数を>>224の改造で作成。
>>224から時間のリセットの行を削除しただけのもの。
calMatchState()という名前にでもしておく。
省14
229(1): SGGK ◆6pZCoAtaxk 2011/04/29(金)23:24 ID:r0lSNY0W(1) AAS
今、自分に負け気味な感じなのでしばらくダメかもしれない予感…。
いろいろ考えがあり、次は当たり判定をクラスで実装しようとしたけれど、
本当にクラスにした方がいいのか迷う。
当たり判定の関数を持つクラスのオブジェクトを選手やボールのオブジェクトに
メンバとして持たせるつもりだけど、時間が掛かりそうな予感。(理由は1行目)
230(1): 179 ◆SLG//siTD6 2011/05/01(日)01:09 ID:wJ8tL1/e(1) AAS
トリップてすと。
プログラムの方はサボり気味で余りすすんでないけど
とりあえずユニットから弾撃てるようにしてみた。
実験的に実装したんで中身がスカスカだけどw
>>229
当たり判定はどうするか迷うねぇ
こっちも当たり判定はかなりややこしい事になってる・・・w
231(2): SGGK ◆6pZCoAtaxk 2011/05/02(月)00:20 ID:iqr3WKp3(1) AAS
>>230
トリップの文字にSLGが入ってる!
当たり判定のクラスは、当たり判定の範囲を示す四角の情報をメンバ変数に持ち、
そのメンバ変数を取り込んで番号を付けるメンバ関数、
当たり判定をしたいオブジェクトの四角情報を取り込み、その情報を基に判定する関数があればいいかなと考えてるけど、
まだ考えてるだけで実装が進んでない状況。ヘッダファイルだけは書いてみたけど、あまり自信無し。
232: SGGK ◆6pZCoAtaxk 2011/05/08(日)00:12 ID:K9cPT3KQ(1) AAS
試行錯誤した挙句自分には>>231を実装するのは無理と判断…。
これをやりたかった理由は、選手のアニメパターンがジャンプしたりキックしたり変化した時にそれぞれに応じた
当たり判定を呼び出せるようなしくみがこの先必要なんじゃないかと思ったからだけど、とりあえず断念。
その他
今日は、ボールをメタセコイアモデルにしていたのをあえて以前の2Dに戻した。
当たり判定は、選手の足元xz平面上に32x32の矩形があるとし、
ボールも同様に8x8の矩形があるとし、これで書いてみる予定。
省3
233(3): SGGK ◆6pZCoAtaxk 2011/05/08(日)22:55 ID:MKRAe4w3(1) AAS
今日もあまり進まず。
当たり判定クラスの中に作った矩形当たり判定用メンバ関数は最初は、
bool CollisionCheck::isHit(FieldPlayer *, BallData *);//選手とボールの当たり判定
のようなものを考えていたけど、
bool CollisionCheck::isHit(VECTOR,int,int,VECTOR,int,int);//引数:オブジェクト座標、当たり矩形縦、横、オブジェクト座標、当たり矩形縦、横
に変更してみた。1番目の方は選手とボールにしか使えないけど、2番目のようにすれば汎用性が高いのではと考えたのが理由。
ボールをけるボタンを押したときに選手とボールのあたりが真なら、ボールが一定の速度で移動するようにするつもり。
省3
234(2): 2011/05/08(日)23:55 ID:45vHEn5A(1/2) AAS
move += f;
x += move;
物理は基本的にこれ
力fで加速(減速)して、現在地xから速度move分だけ動く
>>233ならf=move/2とか、そんな感じで
235(1): 2011/05/08(日)23:58 ID:45vHEn5A(2/2) AAS
すまん訂正、-moveにしないとダメだなw
f=-move/2
-moveを使うと常に移動方向と逆向きに力がかかる
236(2): 2011/05/09(月)00:20 ID:Q5/CRoYG(1) AAS
F=ma
v+=aΔt
x+=vΔt
だろ
237(1): 2011/05/09(月)01:17 ID:SHBGDval(1) AAS
>>236
教科書を丸写しするとそうだな
それをプログラム用に単純化したのが>>234
238(1): 2011/05/09(月)03:49 ID:FkwWv0YK(1/2) AAS
>>231
ボールとの当たり判定をするなら矩形よりも円(球)の方が自然じゃないでしょうか。
プレイヤー側も球体の集合として定義しておき、
ボール中心とプレイヤー判定球の中心間の距離<ボール半径+プレイヤー判定球の半径
となったら、接触していることになります。
プレイヤー判定球に頭、足、手などの属性をつければ、どこに当たっているかも判定できると思います。
239(1): 2011/05/09(月)03:54 ID:FkwWv0YK(2/2) AAS
>>233
物理的には、
・重力
・跳ね返りによるロス…地面やゴールポストとのバウンドの際、運動エネルギーの一部が消失
・ころがり摩擦抵抗…ボールが着地しているときのみ
・空気抵抗…ボールの高度に関わらず場の空気の流れ(風)との速度差に応じて加速
風が無い環境なら、極端な例だと紙風船を思い切り投げたときのようになります。
省5
240: SGGK ◆6pZCoAtaxk 2011/05/09(月)23:53 ID:7TJ8pACL(1) AAS
>>234〜>>239
多くのアドバイス、ありがとうございます。全部活用していきます。
>>234>>235>>236>>237
なんとなく分かってきました。
昨日考えていた時は、等加速度αのt秒後の位置xの式が物理の本にあったとして、
これをゲームに応用するには、移動を始めた初期位置と初期速度に対してframetime後、2*frametime後、3*frametime後、…n*frametime後の位置を計算しなくてはと思い悩んでいたけど、
毎フレーム単位毎に常にその時の数値が初期値であると考えてframetime後の数値を計算するならば、公式がそのまま使えそうな感じ。
省12
241(1): SGGK ◆6pZCoAtaxk 2011/05/11(水)23:28 ID:dXE++lT+(1) AAS
すぐには進まないけど、当たり判定用関数の実装終了。
宣言と定義しただけで、まだ実際には使っていないので、バグが出るかもしれない。
選手がボールを蹴れるようにする実装を検討中。
>>233で言ってた
>ボールをけるボタンを押したときに選手とボールのあたりが真なら、ボールが一定の速度で移動するようにするつもり。
を実装するにはキック用キーを押した時に選手とボールの座標を取得して当たり判定をして、
当たりなら、例えばボールの状態の変数をセットしてそれに応じてボールの挙動が変化するみたいにすればよさそうだけど、
省7
242(1): SGGK ◆6pZCoAtaxk 2011/05/17(火)22:44 ID:s8XxjuX7(1) AAS
時間の流れが速すぎて生存報告のみな感じ。
ボールを蹴れるようにするにはあれが必要これが必要と考えていたら
何故かソートのプログラムで悩む。
ソートについては名前は聞いたことある位の認識なのでちょっと調べる必要があって時間かかった。
全部調べるのは無理なので最初に見たバブルソートを使う事にした。
これは時間のかかるソートだという事は調べているときに知ったけど、とりあえずこれでやることにした。
選手とボールの距離を計算してその数値が小さいものから順に並べ替えるんだけど、
省11
243(1): 2011/05/17(火)23:03 ID:z1f8XmMA(1) AAS
そんなに難しいことしないで、「選手の情報を格納しているクラス」の”ポインタの配列”をソートすればいいんじゃない?
244(2): 179 ◆SLG//siTD6 2011/05/18(水)12:20 ID:5rb+12nD(1) AAS
難しすぎて理解できないぜ・・・w
というか、最後3行あたりの用途ならソートしなくても
単純に自分よりボールに近い選手の数を数えればいいんじゃ..?
チラ裏:
ここ2週間ほど忙しくてプログラムから離れてたらクソースが読めなくなってしまったんだぜ・・・
誰だこんな汚いソース書いたのは。。
245: SGGK ◆6pZCoAtaxk 2011/05/18(水)23:50 ID:SMykIXyq(1) AAS
>>243
アドバイス、ありがとうございます。
242での説明が不足していたせいもあり、実は自分のプログラムは「選手の情報を格納しているクラス」のオブジェクト22個(選手22人分)を
配列に入れているやり方でなくて、例えば、list<FieldPlayer>m_FieldPlayerList のようにFieldPlayer型のオブジェクトをpush_back関数で次々に入れていけるメンバ、m_FieldPlayerListを定義して、
それらの要素にはイテレータ、list<FieldPlayer>::iterator it;のような命令を書いて、このitを++したり、−−したりする方法でアクセスする感じの実装なので、ポインタでのアクセスが出来なさそうです。
でも、「ポインタの配列をソートする」でネット検索すると、「検索結果ロベールのC++教室 - 第28章 たのしいソート5」というページがヒットしたので、これの1から5までを読んで、実装はまだ理解できないけど考え方がなんとなくわかりました。
これと243氏の”ポインタの配列”をソートするやり方を合わせて
省7
246(1): 179 ◆SLG//siTD6 2011/05/25(水)02:34 ID:XYH4jaxx(1) AAS
チョイ調べたらイテレータからポインターにぶち込めるみたいだったけど
p = &*it みたいな感じで。
>>244 のは、選手数えて保持すればいいんじゃって事・・・w
やってる事は選択ソートとあまり変わらないし、保持したところでアクセスにもループいるから微妙っちゃ微妙。
ポインタ配列ソートならp[7] で7番目にアクセスできるから便利だね
チラ裏:
何をやろうとしてたか忘れたので
省4
247: SGGK ◆6pZCoAtaxk 2011/05/25(水)23:02 ID:WTP3xbuq(1/2) AAS
>>246
ありがとうございます。今思うと自分のソースでも (*it).メンバ関数 のように書いてるところもあり、
*it がオブジェクトのような感じなので、それを考えれば p = &*it でやれそうなのにこれは全然思いつかなかった。
ノートに書いて忘れないようにしておきます。
ソートが今丁度出来たところなので、イテレータへのポインタ方式のソースへの適用は次回かそれ以降のソース改良のときに挑戦してみたいと思います。
ソート書くのに時間が掛かってしまい、途中で作業ペースも落ち気味になる。
ゲームスタート直後は選手とボールの距離が同じデータが複数あるので、
省4
248: SGGK ◆6pZCoAtaxk 2011/05/25(水)23:16 ID:WTP3xbuq(2/2) AAS
次回ソースUPの時に同じソースが残ってる自信がないので、簡単に説明。
d[i]がソート後の距離を指すポインタ配列
例えばd[1]には1番ボールと選手の距離が近い値へのポインタが入っていて、
*d[1]で距離を呼び出して、この距離と同じメンバ変数m_DistanceFromBallを持つ選手のオブジェクトがit++を繰り返して見つかったら、
その選手オブジェクトのソートした場合の順番を保持してるメンバ変数m_NumberFromBallにiを入力するアルゴリズム。
breakが無かったら、4,4,4,4,5,6,7…みたいな感じになるけど、以下のソースのようにbreak入れたら
1,1,1,1,5,6,7…みたいになり直った。
省11
249: SGGK ◆6pZCoAtaxk 2011/05/31(火)23:13 ID:45bt856E(1) AAS
1週間が早すぎるけどやっぱり進まず。(なかなか早く帰れないし、帰り遅いと疲れてしまって…と言い訳。)
選手がボールを蹴るキーを押したときに選手とボールのあたり判定が真ならボールの状態をKICKEDにして、(←ここまでは書けた。コンパイルは通るようになったけど、動かすと問題でるかもしれない。)
ボールの移動関数の方では、ボールの状態がKICKEDになったループの時だけ初速を計算し、状態をMOVINGにして、それ以降は速度0になるまで位置計算を繰り返すにしたいけど、この初速をプログラムのどこで計算するかに迷って時間かかってしまった。
ボールのクラスのメンバ関数でやろうとすると選手のデータを引数にしなければならず面倒に思ったから。
なぜなら初速を変える要因は選手だけでなく地面や壁やゴールバーなどもあるし、そのつどこれらを引数にすると処理が増えて複雑になりそう。
そこでボールデータクラスに初速をメンバ変数として持たせて、選手もボールも扱えるsoccergameクラス内で初速を計算してボールデータのメンバにセットして
ボール関数内ではその初速メンバにアクセスして位置を計算してみるようにしようと考えて今日は終了。
省3
250: 179 ◆SLG//siTD6 2011/06/02(木)04:01 ID:bbIJXBAa(1) AAS
ずるずるでも続いてるならいつか出来上がるさ〜
自分はあきっぽいからずるずる続けられないんだよなぁ
すでにちょっと2Dスクロールアクションみたいなの作ってみたいなとか思ったり。
が、とりあえずSLGをそれっぽく完成させてるまで我慢。
段々コードが荒っぽくなってるけどw
チラ裏:
中立資源地の占領実装した。敵の資源地とかはまだ。
省3
251: SGGK ◆6pZCoAtaxk 2011/06/02(木)23:58 ID:y33r2mcB(1) AAS
1年での完成はやっぱり無理だとしても諦める事だけは無いようにしたいな〜と思ってます。
自分もコードが早くも分かりにくくなってきてるので、危険な状態かもしれない(汗
選手がボールを蹴れる処理を書き終えてコンパイルしてみたが、
コンパイルは通るようになったものの、選手もボールも画面に表示されずで今日は終了。
252(7): 2011/06/07(火)00:00 ID:OJpa3qNa(1) AAS
一気にゲームを完成させるのが難しいなら、要素ごとにマイルストーンを設定するのがいいですよ。
3D見下ろし型サッカーゲームだったら、
1.グラウンドとゴールを描画する。カメラを動かしたいのならその動かし方も決めて調整しておく。
2.ボールを配置し、試験的にマウスでクリックすると蹴ったように動くようにする(物理運動シミュレーション)。
3.ラインを割った状態(スローイン、コーナーキック、ゴールキック、得点)を判定し、復帰処理をつくる。
4.選手をまず1人表示し、動かせるようにする。
5.選手とボールの接触判定をし、マウスクリックの代わりに選手が蹴るようにする。
省4
253(1): SGGK ◆6pZCoAtaxk 2011/06/07(火)23:23 ID:iMg7vpsC(1) AAS
>>252
ありがとうございます。このように全体を先にイメージした方がいろいろ良さそうですね。
今出来てるのは1の一部、4、8の一部ぐらいなので、あまり進んでいない様です。
どのくらい遅れているのかということに気付けるのも大事なので、完成までにやることをイメージしておくことは有効だと思います。
先は長いけれど、ここから頑張ってみます。
ボールを蹴る実装が上手くいかず。
ボール移動関数実行直後にブレーク入れてボールの座標を見ると、(-1.#IND00、-1.#IND00、-1.#IND00)になってた。
省6
254(1): 2011/06/08(水)00:39 ID:j4NqkXuU(1) AAS
>>253
>完成までにやることをイメージしておくことは有効だと思います。
全体の把握というか、パーツ毎に分けて作業化するという意味合いが強いと思う
簡単にいうと段階毎に締め切りを設けて、そのスケジュール通りにこなしていけばいつの間にか完成している、という方法
いつか完成すれば(あるいは完成しなくても)いいという人にはあまり効果はない
255: SGGK ◆6pZCoAtaxk 2011/06/09(木)00:10 ID:HLDcGlpq(1) AAS
>>254
自信が無くても締め切りを設けた方が良さそうな気がしてきました。
ありがとうございます。
>>252氏のマイルストーンを参考にして6月23日を目標にしてみます。
256: 179 ◆SLG//siTD6 2011/06/09(木)02:18 ID:n5JLQBEP(1) AAS
たしかに段階的学習スレのお題のはやりやすかった気がする・・・。
あの時は一週間くらいで一段階って自分ルール決めてたなぁ
今でも大体1週間くらいでなんか一つって感じだけど。
チラ裏:次の目標?
資源地とユニットに■マークに色つけて敵と見方分かるようにした。
敵の資源地に攻撃→HP0になったら→中立化→占領で自分の物になるようにした。
次は、弾が当たっても残りHPとか分からないのでそこらへんをなんとか
省1
257(1): SGGK ◆6pZCoAtaxk 2011/06/09(木)23:56 ID:k3OGT/+I(1) AAS
翌日になって確かに23日は厳しすぎかもしれないと思えてきました。
一週間でひとつが丁度良さそうな感じ。
とりあえずは23日目標で頑張ってみて、その結果を見て次の行動を考えてみようと思います。
AIは難しそうですね。
自分も7番でやろうとしてるけど、選手中心半径何ドットにボールが入ったらボールに向かうような処理を書いて
とりあえずAIということにしてみる予定です。
カメラを動かすとフィールド上でマウスが示す座標が変わり、
省4
258(1): 2011/06/10(金)19:38 ID:HbOQx0Jb(1) AAS
期限を守ることよりも確実に仕上げていくことが大事ですよ。
それと、安易に妥協しないことも終盤でのモチベーション維持につながると思います。
1番2番に関係しますが、>>116 は理解できましたか?
259: SGGK ◆6pZCoAtaxk 2011/06/11(土)00:17 ID:TMzi+Wx3(1) AAS
>>258
アドバイス、ありがとうございます。
そうですね。確かにそのような気もしてきました。(>>116の理解は一応大丈夫かなと思ってます。)
もう少し1番を頑張ってみてカメラを動かせるようになってから、>>257をやってみます。
260(4): 2011/06/17(金)23:39 ID:qmzwBamB(1) AAS
イラストだけフリー素材を使うのはスレチかな?
261: 2011/06/18(土)11:32 ID:j8vO9QDT(1) AAS
良いと思うよ
262: SGGK ◆6pZCoAtaxk 2011/06/19(日)00:21 ID:Zcvt1Nsn(1/3) AAS
こ…これは誤爆レスなのでしょうか?
こちらは全然進まずで、マウスでカメラ動かす為の前準備としてマウスのクリックとドラッグの判定をする関数を書こうとしているところ。
263(1): 179 ◆SLG//siTD6 2011/06/19(日)03:44 ID:EkbDCXyb(1) AAS
スレ名が「1人で〜」だから・・・?
いいんじゃないの?
ダメだったら俺もスレチだぜorz
テクスチャは○とか×とかで済ませてるけど、効果音とか無理だしなぁ・・・まだそこまでいってないケド。
チラ裏:
HPバーととかユニットの死亡処理(HP0で消す)とか作った。
次はユニット生産?とか。とりあえずボタン押したら基地からユニット出すように作ろう。。。
省1
264: SGGK ◆6pZCoAtaxk 2011/06/19(日)12:39 ID:Zcvt1Nsn(2/3) AAS
>>263
そう言われてみると、これは参加のレスですね。
昨日はうっかりして気が付きませんでした。ありがとうございます。
>>260
こちらの勘違いすみません。
自分も今使ってるサッカーフィールドはフリー素材。
参加者いつでもお待ちしてます!
265(1): 2011/06/19(日)14:11 ID:lmGZwizg(1/2) AAS
260です。書きっぱで申し訳ないです。
私は恋愛ADVを作ろうとしています。
まだ企画段階で、吉里吉里もインストールしてない状態ですが、修行してがんばります。
イラストだけは描けません。
そういえば、効果音やボイスも1人だと厳しいですね。やろうとしてやれないことはないですが。。。
266(1): 2011/06/19(日)16:19 ID:n6GuNgkN(1/3) AAS
恋愛ADVを作るなら、ゲーム中のどんな要素(画像、テキストや台詞、イベント類…)を
重要視したいかポイントを定めて、まずその部分を徹底的に作りこむといいんじゃないかな?
仮にそれがもしイラストなのだとすれば、
他人の素材を借りて作ったのでは自分で作ったことにはならないので(つまりスレ違いなので)、
ゲームを作りながらでなくてもいいから、普通にイラストの修行をするといいと思う。
267(1): 2011/06/19(日)16:50 ID:n6GuNgkN(2/3) AAS
179氏のSLGに関しては、どのような内容か不明だけれど、
氏の発言を読み返した限りでは実装技術で困っている様子はなさそう。
しかし要素技術から行き当たりばったりにボトムアップで作ろうとしているらしい。
アクションゲーム向きな作り方だと思うけれど、SLGやRPGには不向きだと思う。
コーディングに入る前に、ゲームに登場させる要素
(キャラクター、ユーザインタフェース、状態遷移図、判定式…)の一覧表を作り、
個別の設計図と全体の工程表を作ってから作業するのがいいと思う。
省1
268: 2011/06/19(日)17:47 ID:lmGZwizg(2/2) AAS
>>266
今のところ、一番こだわりたいのは、テキストです。
台詞とト書きだけみたいなテキストだとすごくさびしく感じていたので、
うざったくならない程度に、もうちょっと描写を入れてみたいと思っています。
現在、メインシナリオのプロット中。
がんばる。がんばる。
269(1): 2011/06/19(日)19:54 ID:n6GuNgkN(3/3) AAS
まだプロットが上がっていない段階ではアドバイスにならないかもしれないけれど、
テキストで勝負するなら次の2タイプのいずれかを目指すといいと思う。
(A) テキスト中に巧妙に謎解き要素を含ませたフラグ立て謎解き形式
(B) テキスト自体が文学作品として成立するレベルのデジタルノベル形式
それによって、「こだわる」べき目標が見えてくるかも。
もちろん他のシステムでもいいと思うけれど、たとえば育成系ゲームだと
ゲームパラメータに直接関係しないテキストは追々読み飛ばされてしまうので、
省1
270(1): SGGK ◆6pZCoAtaxk 2011/06/19(日)23:33 ID:Zcvt1Nsn(3/3) AAS
なんだかスレが伸びてる。
>>265
自分は、やる気の出たときに少しずつ続けるような感じでやっています。
お互い気楽にいきましょう。
今日は、マウス3ボタンについてクリックとドラッグの判定できるところまで進んだ。
271(1): 2011/06/20(月)12:39 ID:loZm5s9w(1) AAS
>269
Bの方向を目指して頑張ります。
>270
はい。頑張りましょう!
メインシナリオのプロットが粗方できたのですが、全ルート作っちゃっといたほうがいいでしょうかね。
あんまり長いとダレるので、そこそこの長さに留めてみました。
272(1): SGGK ◆6pZCoAtaxk 2011/06/20(月)23:46 ID:fqQ6mSJs(1) AAS
完成できる事を一度確認して、次から好みで長さを決めるというのもありな様な気がします。
こちらは、ホイール回転によるフィールドの拡大縮小機能の実装がうまくいかない状態…。
273(1): 2011/06/21(火)00:46 ID:fioCutCs(1/2) AAS
最初からあまり風呂敷広げすぎてもってやつですね。
とりあえずメインシナリオのテキスト作ってみて、早々にスクリプトの勉強はじめます。
274(2): 179 ◆SLG//siTD6 2011/06/21(火)03:13 ID:Nb3jaiP+(1) AAS
>>267
画像リンク[png]:gmdev.xrea.jp
今こんな感じSLGってかRTSぽい・・・w
提督の艦隊の宇宙版? ホームワールド?みたな感じにできたらいいなぁと。
ターン製はあんまり好きじゃないんでリアルタイムで。
シカシ、自分でもアクション作るほうが向いてる気はする・・・。
設計図とか書いてないけど・・・やっぱいる?(x`;
省3
275: 2011/06/21(火)04:50 ID:MHP6wZYB(1/3) AAS
>>271
過去に短編小説などを執筆し、他人に読んでもらった上で、
とりあえず作品としては成立しているレベル以上の評価を受けた経験があるなら、
バリエーションルートを含めて考えるのも自由じゃないかな。
そうでないなら、まず、メインシナリオだけに集中したほうがいいと思います。
276(2): 2011/06/21(火)05:07 ID:MHP6wZYB(2/3) AAS
>>272
マウスホイールの回転検出はできてる?
方法はいろいろあるけど、たとえばWM_MOUSEWHEELメッセージを処理する方法があるよ。
3Dゲームでパースペクティブビューを使用しているのであれば、
フィールドを拡大縮小するのではなく、カメラの座標を注視点に接近または離脱させればいい。
なお、その際には視点-注視点間の距離を一定値で増減するのではなく、一定率で乗算、除算してやると良い。
(カメラ位置をE、注視点をFとしたとき、E'= F+(E-F)*k or E'=F+(E-F)/k。 kは1.0前後の定数)
277(1): 2011/06/21(火)05:30 ID:MHP6wZYB(3/3) AAS
>>274
設計図については、他人に見せる必要はないので、しっかりしたものを作る必要はないけれど、
手書きメモ程度のもので良いのでノート上で整理してからコーディングに入ったほうが効率的だと思う。
全体的な工程の順序としては、
1.内部設計(ルール、パラメータ、バランスの調整)
2.各要素の実装
3.ユーザインタフェースの実装
省4
278(1): 260 2011/06/21(火)13:01 ID:fioCutCs(2/2) AAS
とりあえずオープニングにあたるシナリオは出来ているので、
いったん吉里吉里/KAGで組んでみます。
いろいろアドバイスありがとうございますm(__)m
279(1): SGGK ◆6pZCoAtaxk 2011/06/22(水)00:06 ID:TfzO15yA(1) AAS
>>274
既に色々な要素が画面に出てて進んでそうな感じ。期待してます!
>>278
UPお待ちしてます。自分もUPできるように頑張ります!
>>276
自分はDirectXが理解出来なくてDXライブラリで頑張ってます。
回転検出は出来てるようで、昨日はGetMouseWheelRotVol()とSetupCamera_Perspective()を使い、視錐台の視野角を変更して拡大縮小するやり方を試みて悩んでました。(ホイール止めても限界まで拡大してしまう)
省1
280: 260 2011/06/22(水)00:08 ID:TgbTdqkQ(1) AAS
スクリプトいきなりつまずきましたが、なんとかやってます。
演出も考えながらだと、スクリプト組むだけで、相当時間がかかりますね。
くじけず頑張ります。
281(1): 2011/06/22(水)12:00 ID:fBrDYNiX(1/2) AAS
吉里吉里か、あれは扱いが難しいよね
ちなみにデフォだとNスクリプタの方が高機能というのは知ってる?
だからNスクじゃ表現できないようなら吉里吉里に乗り換えるという順番の方が良いと思うけど
282(1): 2011/06/22(水)12:04 ID:9GezxZuR(1/2) AAS
>>281
Nスクはライセンスがめんどい
283(1): 2011/06/22(水)12:11 ID:fBrDYNiX(2/2) AAS
>>282
・無料配布であれば企業/個人の区別や配布方法を問わず無料でお使いいただけます。
・雑誌付録にフリーウェア/シェアウェアとして収録する場合は無料でお使いいただけます。
・商業流通作品の販売の際には、使用料を一作につき40万円いただきます。
・同人流通作品の販売に関しては無料とさせていただきます。
特に作者(高橋直樹)への報告の義務はございません。
まとめると「商業以外なら無料で勝手に使える」
省1
284: 2011/06/22(水)12:28 ID:9GezxZuR(2/2) AAS
>>283
使用条件.txt よく読んでみた
結論:めんどい
285: 260 2011/06/26(日)23:51 ID:xFrZRsWs(1) AAS
吉里吉里やりはじめた状態でNスクに手を出すと、
いろいろごっちゃになりそうなので、とりあえず吉里吉里で進めてみます。
前回の書き込みから、実はあまり進んでいません。
よくわからないところは飛ばして、全体をとりあえず作ってみることにします。
286: SGGK ◆6pZCoAtaxk 2011/06/27(月)23:20 ID:DnwEKUYt(1) AAS
自分もどちらかといえば、全体を先につくってみたい方です。
拡大縮小の件、ホイール回した時のGetMouseWheelRotVol()の値をマウスのメンバ変数に保持して、
その保持した値を今度はカメラの移動関数でループ毎に足していたので、限界まで拡大縮小してしまっていた。
ホイールを回しているときだけ、足すようにしたら、上手く動いた。
次は、ホイールドラッグで画面を上下左右に動かせるようにしたいけど、最近なかなか作業時間が確保できない感じ。
確保できても動くプログラムが書けるかどうかわからないのが悩むところ。
287: SGGK ◆6pZCoAtaxk 2011/06/28(火)23:10 ID:/iwsRyTC(1/2) AAS
ホイールドラッグで画面を上下左右に動かせるようにする方法を考えるところまでで今日は終わり。
残り時間が少ないので、実装を後回しにして次の目標のマウス右ボタンドラッグでの回転の方法を考えてた。
ちなみに参考はメタセコイアの操作方法。右ボタンでぐるぐる回して、どういう法則で回してるのか考えてた。
288: SGGK ◆6pZCoAtaxk 2011/06/28(火)23:20 ID:/iwsRyTC(2/2) AAS
時間無い…と書くのはやめようとなんとなく思った。
もっとこう楽しくやるイメージでいかねば…(汗w
回す法則もなんとなく見えてきた感じ。
289(1): 179 ◆SLG//siTD6 2011/06/29(水)01:42 ID:bFO62WPj(1) AAS
こっちは全体ってかとりあえず実行出来るもの(最初なら真っ黒のウインドウ表示)作って後はひたすら追加ってな感じかなぁ
やっぱ、動いてる物あると分かりやすいし。
そして良く分からんところはコピペでいいんだy(ぇ 初期化とか物理式とか・・・
>>277
なんというか、まさに1を練ってないせいで詰まった、みたいな?w
生産用のウインドウ作ってボタン押したら自分の基地にユニット出すってのはできたんだけど
1 SLGみたいに 生産→プール→編成(グループ?)→出撃 にするべきか
省2
290(1): 2011/06/29(水)03:32 ID:HlRn2WRH(1) AAS
>>289
1の実装
class unit; //ユニット
vector<unit*> pool_list; //プール
class group{ //編成(グループ)
vector<unit*> group_list;
};
省6
291(1): SGGK ◆6pZCoAtaxk 2011/06/29(水)23:51 ID:pI8KOKmf(1) AAS
今思えば自分の場合、全体を先に作りたいと言っていたのは、自分自身未知の作業なので作れる自信が無かった為、
作れそうか見極めたいといった目的もあったと思っています。ちなみに全体と言ってるのは、最低限の処理の流れの実装みたいなものです。
全体とか関係なく作れる場合は、好み優先で進んだ方がモチベーションが続くかも。
ホイールドラッグで画面を上下左右に動かせるようになったけど、
メタセコイアみたいにマウスで画面をつかんで動くような感じになってないので、原因調査中。
292(1): SGGK ◆6pZCoAtaxk 2011/07/02(土)01:37 ID:Yr95b2iZ(1) AAS
なんとか上下左右に動かせるようになった。(今日はたまたまこんな時間)
>291では、画面のフィールドが突然ロケットのような勢いで画面外に出て行ってしまったりして、
もうこれが自分の限界かと思った。
ディスプレイ画面上でマウスの示す位置がaからbまで移動すれば、3D座標系内のフィールド上の投影位置も
AからBに動くとして、そのベクトルABを算出して、カメラの位置ベクトルと注視点ベクトルに−ABしてやればうまくいくのではと思ってた。
これらの計算を始めた時の最初のカメラの位置をずっと初期値としてベクトルABを計算してループすればOKと思っていたのが間違いだったようだ。
毎ループ毎に計算した新しいカメラの位置および注視点ベクトルを次のループでの初期値にするよう書き直したら、
省1
293(1): 179 ◆SLG//siTD6 2011/07/05(火)05:05 ID:oJBQ1HG/(1) AAS
>>290
単純だと・・・よろしいならば実装だ
画像リンク[png]:gmdev.xrea.jp
って、勢いでプールだけ作ったけど、
グループクラス(&編成画面)実装にはやっぱ色々変更しないとだめぽ。。
あ、VECTORとかよくわからんので適当に配列(POOL[X][Y][PAGE])で実装してます(x`;
強引にやりすぎて中身がかなり汚い・・・w
省5
上下前次1-新書関写板覧索設栞歴
あと 194 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s