具体的なゲーム名を挙げて、
どのようにクラス設計をすればよいか、
継承・委譲関係はどのようにすればよいか、
使えそうなパターンは何かなど語るのもよし。
自作ゲームの内容とクラス図を書いて
改善案を聞くもよし。
設計に関して困ったことを質問するもよし。
関数の具体的な実装内容やゲーム内容に関しては他スレに譲る。
大いに語れ。
前スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1155209226/
テンプレ追加事項あったらよろすく
探検
ゲームにおけるデータ構造・クラス設計・パターン2
■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
2008/05/23(金) 21:10:59ID:8M1gqhPX519516
2009/07/15(水) 22:46:53ID:1c2msACv520名前は開発中のものです。
2009/07/15(水) 22:57:45ID:cL81hhcG こんな面白い難読化もなかなかないな
521名前は開発中のものです。
2009/07/15(水) 23:01:47ID:3ppQI3l+ >>519
> net frameworkを使ってます。
.NET Framework を勝手に先頭のドットを省略したり、勝手に小文字に変えたりするなよ・・
> ScreenMangerはスクリーンマネージャという意味で、シーン全体を管理してます
それならMangerではなくManagerだろ。
> GraphicsWarpperは単なるラッパーです。
それなら、WarpperではなくWrapperだろ。
小学校は夏休みなのか・・
せめて中学生になってからにしてくれ
> net frameworkを使ってます。
.NET Framework を勝手に先頭のドットを省略したり、勝手に小文字に変えたりするなよ・・
> ScreenMangerはスクリーンマネージャという意味で、シーン全体を管理してます
それならMangerではなくManagerだろ。
> GraphicsWarpperは単なるラッパーです。
それなら、WarpperではなくWrapperだろ。
小学校は夏休みなのか・・
せめて中学生になってからにしてくれ
522名前は開発中のものです。
2009/07/15(水) 23:14:16ID:1c2msACv >>521
すまん。スペルミスった・・・。
すまん。スペルミスった・・・。
523名前は開発中のものです。
2009/07/16(木) 01:35:23ID:Ac1CnfQd まず日本語と英語を勉強するべきでは?
そうじゃなくても、変数名などを略すのはやめた方がいい、複雑なコードになると対応できない
自分はdeleteHandCardListみたいな長い名前つけたりするけど、困ることは1つもないね
ちなみに件の話に関しては書籍があるよ
GameDeveloperのオンラインゲームの青本
MMORPGを作る赤本もある
2chで説明すると1スレ使っても無理だと思う
そうじゃなくても、変数名などを略すのはやめた方がいい、複雑なコードになると対応できない
自分はdeleteHandCardListみたいな長い名前つけたりするけど、困ることは1つもないね
ちなみに件の話に関しては書籍があるよ
GameDeveloperのオンラインゲームの青本
MMORPGを作る赤本もある
2chで説明すると1スレ使っても無理だと思う
524名前は開発中のものです。
2009/07/16(木) 02:06:03ID:Dq9kBSTx525名前は開発中のものです。
2009/07/16(木) 02:29:30ID:lK28N0n1 質問の内容と関係ない単語にしかつっこめない奴が多くてワラタ
526名前は開発中のものです。
2009/07/16(木) 05:49:13ID:0eDNLm6a 2〜3人で多いのか、寂しい生活してるんだな
527名前は開発中のものです。
2009/07/16(木) 10:25:09ID:irpkCXOF 言われて悔しいならもっと勉強しろよ
528名前は開発中のものです。
2009/08/14(金) 18:57:02ID:qfXJNhjS コミケの影響で最近来なかったここを再び覗くように。変なテンションダァ・・・
>>395
395以前のまとめ
>>404,406-407
シーン遷移考え方
>>408-413,416-425
シーン遷移実装サンプルと問題点。
>>427-433
0からSTGの作成を考える。
根本的な勘違いや非効率的なことがあるのであまり参考にはならない。
>>437-443
オブジェクトと座標管理
>>444-456
オブジェクトと衝突判定と全体効果
>>459-465
デバッグ用処理を考える。(衝突判定表示とか)
>>501-511
DirectXのデバイスの管理とか使い方
>>523
ネットワーク機能参考図書紹介
>>395
395以前のまとめ
>>404,406-407
シーン遷移考え方
>>408-413,416-425
シーン遷移実装サンプルと問題点。
>>427-433
0からSTGの作成を考える。
根本的な勘違いや非効率的なことがあるのであまり参考にはならない。
>>437-443
オブジェクトと座標管理
>>444-456
オブジェクトと衝突判定と全体効果
>>459-465
デバッグ用処理を考える。(衝突判定表示とか)
>>501-511
DirectXのデバイスの管理とか使い方
>>523
ネットワーク機能参考図書紹介
529名前は開発中のものです。
2009/08/14(金) 19:24:51ID:qfXJNhjS STGのビジュアル関連向上に関するメモ。
・・・あんま設計と関係ないな・・・
それっぽい弾の作り方
・コマは2コマは以上用意して、画像の色を通常っぽいのと白っぽいのにする。アニメは4コマあればきれい。
・ケイブっぽい弾を作る場合。1コマ作った後、コピーして1ドットぐらい前後ずらし、形を適当に修正。明るい部分はなるべく中心に近づくよう修正。
・円形の回転する弾の工夫。わざと中心から斜めに1ドットずつずらす。
ちょっと光ったエフェクトとか。
・メイン画像と残像(というか残光)画像を用意。後は適当に残像表示の要領で重ね描画。
・センコロのブーストエフェクト。適当な○画像をブースター付近から扇子状に放射するだけ。それっぽいブーストグラフィックが得られる。
弾やエフェクトはポーズ連打して見てみたりすると、プログラムと画像をうまく考えれば誰でも作れるものが多い・・・気がする。
・・・あんま設計と関係ないな・・・
それっぽい弾の作り方
・コマは2コマは以上用意して、画像の色を通常っぽいのと白っぽいのにする。アニメは4コマあればきれい。
・ケイブっぽい弾を作る場合。1コマ作った後、コピーして1ドットぐらい前後ずらし、形を適当に修正。明るい部分はなるべく中心に近づくよう修正。
・円形の回転する弾の工夫。わざと中心から斜めに1ドットずつずらす。
ちょっと光ったエフェクトとか。
・メイン画像と残像(というか残光)画像を用意。後は適当に残像表示の要領で重ね描画。
・センコロのブーストエフェクト。適当な○画像をブースター付近から扇子状に放射するだけ。それっぽいブーストグラフィックが得られる。
弾やエフェクトはポーズ連打して見てみたりすると、プログラムと画像をうまく考えれば誰でも作れるものが多い・・・気がする。
530名前は開発中のものです。
2009/08/14(金) 22:21:56ID:FZUQWr9u531名前は開発中のものです。
2009/10/05(月) 01:40:33ID:mQYy5BRf シミュレーションやRPGで
経営状況や主人公の内部パラメータと呼ばれる
データ群がごっそりあると思いますが,
そういったものの管理は
実際のゲーム開発でどういった形でなされるものですか?
データクラスを作ってアクセッサで操作を許す?
それとも,すべてグローバル変数で持たせる?
経営状況や主人公の内部パラメータと呼ばれる
データ群がごっそりあると思いますが,
そういったものの管理は
実際のゲーム開発でどういった形でなされるものですか?
データクラスを作ってアクセッサで操作を許す?
それとも,すべてグローバル変数で持たせる?
532名前は開発中のものです。
2009/10/05(月) 04:33:25ID:/TvwIsfE シングルトンクラスのオブジェクトをグローバルに定義する
533名前は開発中のものです。
2009/10/05(月) 07:34:29ID:Rel4l/Gg SQLiteとか使って手抜くってのもあり
534名前は開発中のものです。
2009/10/14(水) 22:12:56ID:TwzkU58s グローバル変数はありえない。データクラス。
ただ、データの表示とかはいつも頭を捻らすなぁ。
ただ、データの表示とかはいつも頭を捻らすなぁ。
535名前は開発中のものです。
2009/10/15(木) 07:50:05ID:P3b4xThD アクセッサ書くのめんどいだろ
536名前は開発中のものです。
2009/10/15(木) 08:41:22ID:OtHf9VTl なんでそんな両極端なの?
537名前は開発中のものです。
2009/10/15(木) 15:54:18ID:byjv3si3 0と1しか無いからな
オタクの頭ん中は
オタクの頭ん中は
538名前は開発中のものです。
2009/10/15(木) 20:13:55ID:P3b4xThD 別に両極端で構いません.
意見を頂けるだけで嬉しいです.
むしろ噛み付くほうが迷惑です.
意見を頂けるだけで嬉しいです.
むしろ噛み付くほうが迷惑です.
539名前は開発中のものです。
2009/10/15(木) 22:16:10ID:r8d5RKMA 使う人がデータを把握できてるなら好きにすればいいんだよ。
質問は実際のゲーム開発だから、面倒でも形式的にやるしかないんじゃない。
質問は実際のゲーム開発だから、面倒でも形式的にやるしかないんじゃない。
540名前は開発中のものです。
2009/10/15(木) 22:18:05ID:2byzEsEE541名前は開発中のものです。
2009/10/15(木) 23:29:40ID:r8d5RKMA 俺は変数に直接アクセスでも分かりにくいと思わないし。
アクセッサ書くのもめんどくさいとは思わない。
アクセッサ書くのもめんどくさいとは思わない。
542536
2009/10/16(金) 00:35:50ID:L+kS7tAJ >>538
悪い、噛み付くとかそういうつもりは無かった。
普通に設計して、グローバルにアクセスする必要があるデータを持ってるクラスだけ
Facade経由でアクセスできれば良いんじゃないかと思っただけ。
グローバル変数はさすがにあり得ない…
悪い、噛み付くとかそういうつもりは無かった。
普通に設計して、グローバルにアクセスする必要があるデータを持ってるクラスだけ
Facade経由でアクセスできれば良いんじゃないかと思っただけ。
グローバル変数はさすがにあり得ない…
543名前は開発中のものです。
2009/10/16(金) 01:18:33ID:MsmDVyev 2chで素直に謝られると逆に困ります.
参考になりました,ありがとうございます.
参考になりました,ありがとうございます.
544名前は開発中のものです。
2009/10/16(金) 01:38:32ID:tEeFyBBH グローバル変数を利用側が直接更新したり参照したりするのはアウトだけど、
スタティックグローバルな変数を、何らかのアクセス関数を通して更新/参照するような設計は普通だと思う。
// gamedata.h
void update();
int get_parameter1();
// gamedata.cpp
static int s_paramter1 = 0;
static int s_paramter2 = 0;
....
void update() { /* 更新 */ }
int get_parameter1() { return s_paramter1; }
唯一しか存在しないゲーム中のデータをどう実装・管理するか、って視点だけで考えれば
スタティックグローバルであろうと、クラスであろうと大差ないと思うけど、
ある時点でのスナップショットを扱う必要がある、みたいな場合、
// gamedata.h
void update(Data* gamedata);
int get_parameter(Data* gamedata);
て感じで、結局データを引数で取る形になるから、クラスで実装して方がいいんじゃないかと思う。
スタティックグローバルな変数を、何らかのアクセス関数を通して更新/参照するような設計は普通だと思う。
// gamedata.h
void update();
int get_parameter1();
// gamedata.cpp
static int s_paramter1 = 0;
static int s_paramter2 = 0;
....
void update() { /* 更新 */ }
int get_parameter1() { return s_paramter1; }
唯一しか存在しないゲーム中のデータをどう実装・管理するか、って視点だけで考えれば
スタティックグローバルであろうと、クラスであろうと大差ないと思うけど、
ある時点でのスナップショットを扱う必要がある、みたいな場合、
// gamedata.h
void update(Data* gamedata);
int get_parameter(Data* gamedata);
て感じで、結局データを引数で取る形になるから、クラスで実装して方がいいんじゃないかと思う。
545名前は開発中のものです。
2009/10/16(金) 06:29:56ID:UJ9WR3Zt 代入の時などに別の処理を入れるんでなければ
変数を直接弄るんでもいいかな・・・。
変数を直接弄るんでもいいかな・・・。
546名前は開発中のものです。
2009/10/16(金) 11:40:43ID:/PDPq+0/ 入力値の正当性をチェックしたり、同時に変更しなければならないパラメータが1つじゃなかったり、
そういう可能性を考慮すると、関数を経由させたほうが便利。
そういう可能性を考慮すると、関数を経由させたほうが便利。
547名前は開発中のものです。
2009/10/16(金) 20:07:25ID:eJ9LLkd5 アクセッサ経由だとバグっぽい動きも引っ掛けやすいが、
そうでないと大変そうだな。デバッグ一件で1時間とか悩みたくないし。
そうでないと大変そうだな。デバッグ一件で1時間とか悩みたくないし。
548名前は開発中のものです。
2009/10/18(日) 12:51:59ID:Yr/zm5ey >546
確かに使い方を間違えるってのはよく起こる
確かに使い方を間違えるってのはよく起こる
549名前は開発中のものです。
2009/10/25(日) 23:29:18ID:tIk7fQwv Compositeをゲームのシーン管理に使うのってどうやるんですか?
次に来るシーンを各クラスに設定しておいたりとか・・?
次に来るシーンを各クラスに設定しておいたりとか・・?
550名前は開発中のものです。
2009/10/25(日) 23:57:46ID:6R6DoQXi 何を聞いてるかがちょいと分からないけど
Gems5巻にいいのが載ってたと思うよ。
とりあえず Google [スタックベースのシーン管理 gems]。
Gems5巻にいいのが載ってたと思うよ。
とりあえず Google [スタックベースのシーン管理 gems]。
551名前は開発中のものです。
2009/10/26(月) 00:08:52ID:PLlfj58P というか前スレの260あたりか。Compositeかどうかも微妙だな。スマソ
552名前は開発中のものです。
2009/11/16(月) 14:29:49ID:FF5xAAX0553名前は開発中のものです。
2009/12/13(日) 15:40:07ID:Pf4hrG82 よく読んでないけどEmptyProject風に
void Create(LPDIRECT3DDEVICE9 lpD3DDEV)
{
jiki = new Jiki();
jiki->Create(lpD3DDEV);
}
void Draw(LPDIRECT3DDEVICE9 lpD3DDEV)
{
jiki->Draw(lpD3DDEV);
}
って風にやったら問題あるの?
void Create(LPDIRECT3DDEVICE9 lpD3DDEV)
{
jiki = new Jiki();
jiki->Create(lpD3DDEV);
}
void Draw(LPDIRECT3DDEVICE9 lpD3DDEV)
{
jiki->Draw(lpD3DDEV);
}
って風にやったら問題あるの?
554名前は開発中のものです。
2009/12/14(月) 01:36:46ID:etpwNEHL deviceの作成は一箇所のクラスでシングルトン
device呼び出しが長くなるが、面倒なら#define
俺はこんな感じ
無知なんだけど、デバイスて何個も必要になることあんの?
device呼び出しが長くなるが、面倒なら#define
俺はこんな感じ
無知なんだけど、デバイスて何個も必要になることあんの?
555名前は開発中のものです。
2009/12/14(月) 01:57:52ID:ViaP5WDz デバイスが複数あったら複数必要なんじゃね。
556名前は開発中のものです。
2009/12/14(月) 03:13:37ID:etpwNEHL その複数てのがさ、動的に管理しないといけないものなら複数個保持するクラスにすればいいし
そうでないなら同じようなクラスを用意するかな
便利だからグローバルにしてるわけだし
仕方ないとおもってる
必要な関数ごとにデバイス渡すとか面倒すぎる
まあ、何十個もデバイスがいるわけじゃないからできる荒い方法ではあるんだけどな
そうでないなら同じようなクラスを用意するかな
便利だからグローバルにしてるわけだし
仕方ないとおもってる
必要な関数ごとにデバイス渡すとか面倒すぎる
まあ、何十個もデバイスがいるわけじゃないからできる荒い方法ではあるんだけどな
557名前は開発中のものです。
2009/12/14(月) 11:05:57ID:QE4kvqHr ボンバーマンを拡張して繋がれてるコントローラの数だけ
プレイヤーが増えるとかいった仕様にしたいなら
コントローラのデバイスは動的に管理した方がいいと思う。
プレイヤーが増えるとかいった仕様にしたいなら
コントローラのデバイスは動的に管理した方がいいと思う。
558名前は開発中のものです。
2009/12/14(月) 14:08:44ID:lLcah1pB プレイヤが一人でも全てのコントローラで操作できるようにしているが
(左右同時に押された場合は後からの入力を優先)
コントローラが壊れて常に右側に入力があるみたいな状態になるとうざったそうだな
(左右同時に押された場合は後からの入力を優先)
コントローラが壊れて常に右側に入力があるみたいな状態になるとうざったそうだな
559名前は開発中のものです。
2009/12/14(月) 15:35:13ID:ViaP5WDz 壊れたコントローラーはサポートしなくてもいいと思うよw
560名前は開発中のものです。
2009/12/21(月) 22:25:25ID:F5CW/HFF sharedptrみたいなの実装したいのですが、
それらしいことがのってる
more effective c++と、Accelarated C++
のどちらの本が役立ちそうでしょうか?
boostソース読めってのは無しでお願いします。
それらしいことがのってる
more effective c++と、Accelarated C++
のどちらの本が役立ちそうでしょうか?
boostソース読めってのは無しでお願いします。
561名前は開発中のものです。
2009/12/21(月) 23:10:45ID:yYVJ9W7O >>560
「スマートポインタ」でググれば解説もサンプルも見つかるよ。
「スマートポインタ」でググれば解説もサンプルも見つかるよ。
562名前は開発中のものです。
2009/12/22(火) 01:26:27ID:Q5u6VebD >>560
なんで boost::shared_ptr 使わないの?
なんで boost::shared_ptr 使わないの?
563501
2009/12/30(水) 05:37:23ID:CHdRD74o >>552
描画スクリプトっぽく進めてる。>>510 の言うとおりの方法。
>各オブジェクトには描画スクリプトみたいのを作らせておいて、draw()がそれを解釈して描画とか?
描画スクリプトみたいなのを作るほうがプログラム構造は単純になった。
>>511に書いたやり方は結局デバイスアクセス処理が分散していて大して煩雑さは改善されなかった。
簡単な2Dゲームだと描画は大部分が画像描画コマンドだけで構成されてた。思ってたより単純。
あとは少ないながらもカメラ位置変更コマンドと文字列描画コマンドも使った。
コマンド構造体を配列に突っ込んでカウンタを+1とかしてコマンド列(描画スクリプトみたいの)を作ってる。
あと画像描画コマンドでは描画すべき画像は番号で指定してる。番号に対応する画像を用意するのは解釈側の責任。
デバイスデータの引き回しはなるべく避けたかったので。
デバイスを関数間で無闇に引き回さなくても済むようになったので気が楽だし、
メモリデータの変更だけで描画内容が変わるのもおもしろい。
やって良かったと思ってる。
描画スクリプトっぽく進めてる。>>510 の言うとおりの方法。
>各オブジェクトには描画スクリプトみたいのを作らせておいて、draw()がそれを解釈して描画とか?
描画スクリプトみたいなのを作るほうがプログラム構造は単純になった。
>>511に書いたやり方は結局デバイスアクセス処理が分散していて大して煩雑さは改善されなかった。
簡単な2Dゲームだと描画は大部分が画像描画コマンドだけで構成されてた。思ってたより単純。
あとは少ないながらもカメラ位置変更コマンドと文字列描画コマンドも使った。
コマンド構造体を配列に突っ込んでカウンタを+1とかしてコマンド列(描画スクリプトみたいの)を作ってる。
あと画像描画コマンドでは描画すべき画像は番号で指定してる。番号に対応する画像を用意するのは解釈側の責任。
デバイスデータの引き回しはなるべく避けたかったので。
デバイスを関数間で無闇に引き回さなくても済むようになったので気が楽だし、
メモリデータの変更だけで描画内容が変わるのもおもしろい。
やって良かったと思ってる。
564501
2009/12/30(水) 22:40:42ID:CHdRD74o >>563を読み返したらちょっと違うところがあったので訂正。引用したこの文。
>各オブジェクトには描画スクリプトみたいのを作らせておいて、draw()がそれを解釈して描画とか?
自分の場合、描画スクリプトを作るのは「各オブジェクト」というより「各シーン管理オブジェクト」になった。
つまり
シーン管理オブジェクトが自身の所有する各オブジェクトの情報をアクセサ経由で読み取って
描画スクリプトみたいなものを組み立てる。
たくさんある細かい各オブジェクトに描画スクリプト的なものを作成させるのは責任というか依存性が散らばりすぎて複雑になる。
だから数の少ない管理オブジェクトがconst修飾済みの読み取り専用オブジェクトから得た情報だけを元に描画スクリプト的なものを組み立ててる。
>各オブジェクトには描画スクリプトみたいのを作らせておいて、draw()がそれを解釈して描画とか?
自分の場合、描画スクリプトを作るのは「各オブジェクト」というより「各シーン管理オブジェクト」になった。
つまり
シーン管理オブジェクトが自身の所有する各オブジェクトの情報をアクセサ経由で読み取って
描画スクリプトみたいなものを組み立てる。
たくさんある細かい各オブジェクトに描画スクリプト的なものを作成させるのは責任というか依存性が散らばりすぎて複雑になる。
だから数の少ない管理オブジェクトがconst修飾済みの読み取り専用オブジェクトから得た情報だけを元に描画スクリプト的なものを組み立ててる。
565名前は開発中のものです。
2009/12/31(木) 08:32:52ID:QBEbvaiT sqliteを組み込んで、画像やモデルを相互変換可能な名前/IDで管理するとか夢が広がるわな
内部で使うのは番号(ID)だとしても、人間にとっては名前の方が分かりやすいし
内部で使うのは番号(ID)だとしても、人間にとっては名前の方が分かりやすいし
566名前は開発中のものです。
2009/12/31(木) 15:10:35ID:wXwu3da7 >>565
Google App Engine+Flash(Flex)でノベルもどき作ってるけど、まさにそれやってるわ。
GaeなんでsqliteじゃなくてGoogle Big Table使ってるけどね。
スクリプトはForthベースの俺々スクリプトだけど、
SilverlightだとPythonやRubyエンジンが使えるので、
次作るときはそっち使おうかなと思ってる。
Google App Engine+Flash(Flex)でノベルもどき作ってるけど、まさにそれやってるわ。
GaeなんでsqliteじゃなくてGoogle Big Table使ってるけどね。
スクリプトはForthベースの俺々スクリプトだけど、
SilverlightだとPythonやRubyエンジンが使えるので、
次作るときはそっち使おうかなと思ってる。
567名前は開発中のものです。
2010/01/04(月) 06:09:33ID:JxRYn/a0 おおー、ゲームのバックエンドサーバーにもGAE使う時代かw
たしか、mixiアプリのモバイルゲームでGAE使った事例があったな。
3000万PV/月をかなり安価で乗りきれるとか
Togetter(トゥギャッター) - まとめ「100万PV/日のmixiアプリモバイルをGoogle App Engineで実装した@gclue_akira氏に直撃インタビュー」
http://togetter.com/li/494
すれ違いの話題になるが、昨今のネットが絡むゲームの場合バックエンドの技術も必要だけど、
そういう話題を扱ったスレってないものかな
この板にネットゲームの開発時代が少ないみたいだから、需要はないのかもだけど
まーGAEならWebProg板のAppengineスレ行けばいいしな
たしか、mixiアプリのモバイルゲームでGAE使った事例があったな。
3000万PV/月をかなり安価で乗りきれるとか
Togetter(トゥギャッター) - まとめ「100万PV/日のmixiアプリモバイルをGoogle App Engineで実装した@gclue_akira氏に直撃インタビュー」
http://togetter.com/li/494
すれ違いの話題になるが、昨今のネットが絡むゲームの場合バックエンドの技術も必要だけど、
そういう話題を扱ったスレってないものかな
この板にネットゲームの開発時代が少ないみたいだから、需要はないのかもだけど
まーGAEならWebProg板のAppengineスレ行けばいいしな
568名前は開発中のものです。
2010/01/04(月) 06:10:39ID:JxRYn/a0 x 開発時代
o 開発自体
o 開発自体
569名前は開発中のものです。
2010/04/20(火) 00:42:02ID:pYU4LjYZ 前スレの最後のほうに出てた描画の話題って結局どうなりました?(928ぐらい)
570名前は開発中のものです。
2010/05/11(火) 16:43:34ID:mK0DmPV5571名前は開発中のものです。
2010/09/20(月) 21:23:17ID:Qy1aznUB アクションゲーム作ってるんですが
どういう風にクラス分けすればいいか悩んでます
MAPクラス
Playerクラス
GameFrameクラスの3つがあって
mainループで
switch(MODE)
{
case TITLE:~~~~;break;
case MENU:~~~~;break;
case STAGE01:~~~~;break;
case STAGE02:~~~~;break;
.
.
.
}
みたいなことをしています。
各Stageに行くたびに、ステージ前処理と、ステージ後処理をしたいです
というとコンストラクタとデストラクタ……つまりはクラスを使えばいいんじゃないか?
という感じなのですが
Playerクラスの持っている情報と、操作関連を上手く融合させたり
Mapクラスの持っている情報と、Playerクラスを上手く組み合わせたりが出来ません……
こういう部分はどういう風にデザインするのがいいのでしょうか
どういう風にクラス分けすればいいか悩んでます
MAPクラス
Playerクラス
GameFrameクラスの3つがあって
mainループで
switch(MODE)
{
case TITLE:~~~~;break;
case MENU:~~~~;break;
case STAGE01:~~~~;break;
case STAGE02:~~~~;break;
.
.
.
}
みたいなことをしています。
各Stageに行くたびに、ステージ前処理と、ステージ後処理をしたいです
というとコンストラクタとデストラクタ……つまりはクラスを使えばいいんじゃないか?
という感じなのですが
Playerクラスの持っている情報と、操作関連を上手く融合させたり
Mapクラスの持っている情報と、Playerクラスを上手く組み合わせたりが出来ません……
こういう部分はどういう風にデザインするのがいいのでしょうか
572名前は開発中のものです。
2010/09/21(火) 03:43:33ID:l4LB0P7i STAGE01とSTAGE02を分ける必要は無いだろ。
ファミコンの「ドラえもん」みたいな、1面と2面で全く違うゲームになるなら別だけど。
ファミコンの「ドラえもん」みたいな、1面と2面で全く違うゲームになるなら別だけど。
573名前は開発中のものです。
2010/09/23(木) 17:38:03ID:g80tUxgW まずそのswitch文をなんとかしよう。
TitleクラスとMenuクラスとStageクラスを追加するとか。
その上で、StageをPlayerとMapのメディエータとして実装する、というのはどうだ?
TitleクラスとMenuクラスとStageクラスを追加するとか。
その上で、StageをPlayerとMapのメディエータとして実装する、というのはどうだ?
574名前は開発中のものです。
2010/12/04(土) 11:15:23ID:bbisnDl0575名前は開発中のものです。
2010/12/04(土) 14:39:29ID:t6Qi73J8576名前は開発中のものです。
2011/02/02(水) 03:54:28ID:uhRk4Rqb 保守
577名前は開発中のものです。
2011/05/20(金) 08:10:28.28ID:PnmAmJ/W 良スレ保守
578名前は開発中のものです。
2011/08/02(火) 05:21:50.11ID:jrRNxlOf Android開発でのパフォーマンスTips
http://labs.techfirm.co.jp/android/cho/1283
http://labs.techfirm.co.jp/android/cho/1293
オブジェクト生成は避ける
インターフェースは使わない
スタティックメソッドを使う
クラス内部でgetter/setterは使わない
foreachループは気をつける
携帯端末だとオブジェクト指向をある程度捨ててパフォーマンスを稼ぐって形が
求められるみたい
こういう環境のゲームは、どういうデータ構造・クラス設計を採用すべきかってのも
気になるな
http://labs.techfirm.co.jp/android/cho/1283
http://labs.techfirm.co.jp/android/cho/1293
オブジェクト生成は避ける
インターフェースは使わない
スタティックメソッドを使う
クラス内部でgetter/setterは使わない
foreachループは気をつける
携帯端末だとオブジェクト指向をある程度捨ててパフォーマンスを稼ぐって形が
求められるみたい
こういう環境のゲームは、どういうデータ構造・クラス設計を採用すべきかってのも
気になるな
579名前は開発中のものです。
2011/08/02(火) 12:43:43.47ID:w6MyIbcF iアプリを思い出すなーw
580名前は開発中のものです。
2011/08/04(木) 13:31:14.84ID:OiYK4POH PS時代のゲーム開発みたいだなw
あの制限ばかりの時代を経験した世代の方が
開発に向いていたりしてw
あの制限ばかりの時代を経験した世代の方が
開発に向いていたりしてw
581名前は開発中のものです。
2011/08/09(火) 01:57:38.36ID:/4Pi5/Qb 処理能力を操作に割かせるためにメモリに読めるだけ読むのかな
582名前は開発中のものです。
2011/08/09(火) 20:19:58.06ID:9GJ5MiVh それやりすぎるとアプリの切り替えをすることが多いスマフォじゃ
面倒が起きやすいんじゃないか
面倒が起きやすいんじゃないか
583名前は開発中のものです。
2011/08/15(月) 07:32:13.82ID:zPArLam8584名前は開発中のものです。
2011/08/21(日) 15:33:02.73ID:IUtyM1fd こないだ色々探したんだけど、糞アフィブログのリンク記事しか見つからなかった
キャッシュとかも見たんだけどさ
キャッシュとかも見たんだけどさ
585名前は開発中のものです。
2011/09/04(日) 02:30:22.85ID:novGGJeq586名前は開発中のものです。
2011/12/29(木) 00:00:54.00ID:hHcZWWbE よさげなスレなのに、あまり話が盛り上がってないな・・・
RPGのクラス設計で、「CharacterがItem(複数)を持っている」
状態を表したい時、
昔の自分は、
class Character {
List<Item> inventory;
}
って書いていたけど、最近の自分は、
class Inventory {
static List<Item> itemList;//全キャラクター分のアイテムを格納
Character character;
public int Count { get { itemListを数えて返す } }
public Item this[int no] { get { itemListのno番目を返す } }
}
class Character {
Inventory inventory;
}
って書くようになった。
どっちの書き方が多数派なのだろう?
RPGのクラス設計で、「CharacterがItem(複数)を持っている」
状態を表したい時、
昔の自分は、
class Character {
List<Item> inventory;
}
って書いていたけど、最近の自分は、
class Inventory {
static List<Item> itemList;//全キャラクター分のアイテムを格納
Character character;
public int Count { get { itemListを数えて返す } }
public Item this[int no] { get { itemListのno番目を返す } }
}
class Character {
Inventory inventory;
}
って書くようになった。
どっちの書き方が多数派なのだろう?
587名前は開発中のものです。
2011/12/29(木) 00:30:31.32ID:8pF0f6jp そこまでいったら、Interface抽出までやるかなー。
588名前は開発中のものです。
2011/12/29(木) 11:43:29.12ID:hHcZWWbE インタフェース抽出・・・
こんな感じ?
interface IGameData<T> {
int Count { get; }
T this[int no] { get; }
void Add(T arg);
void Remove(T arg);
}
(ジェネリックの書き方は適当ですw)
class Inventory : IGameData<Item> {
static List<Item> itemList;//全キャラクター分のアイテムを格納
Character character;
public int Count { get { itemListを数えて返す } }
(ry)
}
こんな感じ?
interface IGameData<T> {
int Count { get; }
T this[int no] { get; }
void Add(T arg);
void Remove(T arg);
}
(ジェネリックの書き方は適当ですw)
class Inventory : IGameData<Item> {
static List<Item> itemList;//全キャラクター分のアイテムを格納
Character character;
public int Count { get { itemListを数えて返す } }
(ry)
}
589名前は開発中のものです。
2011/12/29(木) 15:58:30.64ID:8pF0f6jp たぶんそんな感じー
590名前は開発中のものです。
2012/01/09(月) 19:11:25.37ID:7/HYejXG591名前は開発中のものです。
2012/01/10(火) 01:04:51.32ID:Lc/KjEb7 プログラム自体全くの素人なんで
取り敢えず3D空間上に地面を作ってその上をキャラクタが歩き回れるプログラムを作ったんだけど
地面を生成する際に必ず必要になる地面の各頂点の座標だけで1面につきfloat1つ分で4byte取られるんだよね
そこでふと思ったんだけど
エルダースクロール2ってどうやってそこらへんの情報を扱ってるんだろ
あのゲームのマップの大きさを計算してみたら一辺317Kmもあるみたい
1面を5m四方として扱ってもマップ全体を表すのに16078240000byteも必要
エントロピー圧縮しても1/15位が限界だと思うから約1GB
本当はこれらにさらに木や草の位置、地面のテクスチャの種類なんかが必要なんだよね
それなのにtes2のデータサイズを見ると160MBしかない
何かマップ設計自体が特殊なんだろうか
取り敢えず3D空間上に地面を作ってその上をキャラクタが歩き回れるプログラムを作ったんだけど
地面を生成する際に必ず必要になる地面の各頂点の座標だけで1面につきfloat1つ分で4byte取られるんだよね
そこでふと思ったんだけど
エルダースクロール2ってどうやってそこらへんの情報を扱ってるんだろ
あのゲームのマップの大きさを計算してみたら一辺317Kmもあるみたい
1面を5m四方として扱ってもマップ全体を表すのに16078240000byteも必要
エントロピー圧縮しても1/15位が限界だと思うから約1GB
本当はこれらにさらに木や草の位置、地面のテクスチャの種類なんかが必要なんだよね
それなのにtes2のデータサイズを見ると160MBしかない
何かマップ設計自体が特殊なんだろうか
592名前は開発中のものです。
2012/01/10(火) 01:20:07.70ID:rFVH40vL 常にそのデータをメモリ上に保持しておかなければいかんわけじゃないだろ……
100km先のデータなんて近づいてきたら読めばいいじゃない
100km先のデータなんて近づいてきたら読めばいいじゃない
593名前は開発中のものです。
2012/01/10(火) 02:51:27.11ID:tQJO4ffg floatじゃなくてhalf floatなのかもしれん。これだけで半分になる。
あとは、エントロピー符号化の前に、
曲面補完とか使って圧縮かけてるのかもしれない。
ビットマップで曲線を保持すると解像度分のデータが必要だが、
ベジェ曲線なんかで表せば、上手くいけばハンドル数個分で済む。
FUELなんかはたぶんこういう方法使ってて、川が途中で途切れてたりするところが目立つのはそのためだと思う。
全部俺の勝手な予想だが、いろいろ工夫はしてると思うよ。
あとは、エントロピー符号化の前に、
曲面補完とか使って圧縮かけてるのかもしれない。
ビットマップで曲線を保持すると解像度分のデータが必要だが、
ベジェ曲線なんかで表せば、上手くいけばハンドル数個分で済む。
FUELなんかはたぶんこういう方法使ってて、川が途中で途切れてたりするところが目立つのはそのためだと思う。
全部俺の勝手な予想だが、いろいろ工夫はしてると思うよ。
594名前は開発中のものです。
2012/01/10(火) 20:26:05.97ID:Wi6HPUjx >>590
ん、ごめん。判りにくいな〜と思いつつ手抜きしてしまった。
こんな感じのコーディングを想定していました。
class Inventory : IGameData<Item> {
static List<Item> itemList;
//クラスメンバ
Character character;
//プロパティ
public int Count { get {
int num = 0;
for(int i = 0; i < itemList.Count; i++) num += (itemList[i].Character == this.character)? 1 : 0;
return num;
} }
public Item this[int no] { get {
for(int i = 0; i < itemList.Count; i++) if (itemList[i].Character == this.character) if (--no < 0) return itemList[i];
throw new Exception();//noがオーバーしてたら例外(とかreturn null;とか)
} }
}
class Item { public Character Character; }
class Character { Inventory inventory = new Inventory(this); }
結局、呼び出す側からの見た目は、
class Inventory : List<Item> { }
class Character { Inventory inventory = new Inventory(); }
とあまり変わらないんだけどね・・・
ん、ごめん。判りにくいな〜と思いつつ手抜きしてしまった。
こんな感じのコーディングを想定していました。
class Inventory : IGameData<Item> {
static List<Item> itemList;
//クラスメンバ
Character character;
//プロパティ
public int Count { get {
int num = 0;
for(int i = 0; i < itemList.Count; i++) num += (itemList[i].Character == this.character)? 1 : 0;
return num;
} }
public Item this[int no] { get {
for(int i = 0; i < itemList.Count; i++) if (itemList[i].Character == this.character) if (--no < 0) return itemList[i];
throw new Exception();//noがオーバーしてたら例外(とかreturn null;とか)
} }
}
class Item { public Character Character; }
class Character { Inventory inventory = new Inventory(this); }
結局、呼び出す側からの見た目は、
class Inventory : List<Item> { }
class Character { Inventory inventory = new Inventory(); }
とあまり変わらないんだけどね・・・
595名前は開発中のものです。
2012/01/10(火) 22:24:32.24ID:Lc/KjEb7596名前は開発中のものです。
2012/01/10(火) 23:12:32.40ID:Wi6HPUjx597名前は開発中のものです。
2012/01/10(火) 23:17:34.89ID:Wi6HPUjx 言葉足らずすぎる気がしたので補足w
広い領域を、例えば5キロ平方に区切って、
隣の領域と連続性を保つため外周だけはデータを保持。
その内側の凹凸は動的生成、って意味です。
広い領域を、例えば5キロ平方に区切って、
隣の領域と連続性を保つため外周だけはデータを保持。
その内側の凹凸は動的生成、って意味です。
598名前は開発中のものです。
2012/01/11(水) 01:47:31.95ID:dDo0BLDQ >>596
それ単独では制御が難しいかも。町を作りたいのに平らな地形が得られない、とか。
平らな地形の部分だけ追加データで入れるとかするのかな。
>>595
線→面への拡張は、概念はそんなにフクザツじゃない。
補間方法はベジェじゃなくてもスプラインでもいいけど、単純にXY両方でデータの無いところを補間するだけだと思う。
ただ当然実行時計算量とデータサイズのトレードオフはある。
TES2は分からんけど、TES4と同系統のエンジンのFO3なんかみると、
たまにそういう曲面のエッジが誤差か調整不足かで浮いてるところがマップのところどころにあった気がする。
これは曲面補間かどうかは分からないけども。
SourceEngineなんかも似たような技術が実装されてるし、けっこう昔からある技術なのかな?
Game Programming Gemsとか探したら取り上げられてるかもね。
それ単独では制御が難しいかも。町を作りたいのに平らな地形が得られない、とか。
平らな地形の部分だけ追加データで入れるとかするのかな。
>>595
線→面への拡張は、概念はそんなにフクザツじゃない。
補間方法はベジェじゃなくてもスプラインでもいいけど、単純にXY両方でデータの無いところを補間するだけだと思う。
ただ当然実行時計算量とデータサイズのトレードオフはある。
TES2は分からんけど、TES4と同系統のエンジンのFO3なんかみると、
たまにそういう曲面のエッジが誤差か調整不足かで浮いてるところがマップのところどころにあった気がする。
これは曲面補間かどうかは分からないけども。
SourceEngineなんかも似たような技術が実装されてるし、けっこう昔からある技術なのかな?
Game Programming Gemsとか探したら取り上げられてるかもね。
599名前は開発中のものです。
2012/01/13(金) 08:38:17.24ID:q77afuhx >>598
なるほど、ってことは、
街の地面:整地されてるから、メッシュを大きく平らに
平原とか砂漠とか:メッシュを大きく取って、細かい部分は補間なり動的生成なり
山岳みないな凹凸がある地形:メッシュを細かく
って感じに・・・
(と言っておいてなんですが、メッシュの大きさを変えるのは、プログラムが汚くなりそうw)
なるほど、ってことは、
街の地面:整地されてるから、メッシュを大きく平らに
平原とか砂漠とか:メッシュを大きく取って、細かい部分は補間なり動的生成なり
山岳みないな凹凸がある地形:メッシュを細かく
って感じに・・・
(と言っておいてなんですが、メッシュの大きさを変えるのは、プログラムが汚くなりそうw)
600名前は開発中のものです。
2012/01/13(金) 23:38:29.70ID:sS8+h2Ga >>599
偏った例で恐縮だけど、SourceEngineのディスプレースメントサーフェイスは
分割数は2,4,8とか2の倍数固定でそれほど柔軟ではないし、穴あけれないとか制約はある。
だからその辺はレベルデザイナーのほうで調節する感じ。
ただしスムージングはかけれるから、たぶん補間はしてる。
たぶんゲームエンジンはどれも似たような仕組みは実装してると思うよ。
ディスプレースメントなら頂点4つ(△ポリゴン2つ)+差分テクスチャマップをシェーダーにぶち込んで高速処理、とか
そんなんだと思う。
あくまで予想だけど!
偏った例で恐縮だけど、SourceEngineのディスプレースメントサーフェイスは
分割数は2,4,8とか2の倍数固定でそれほど柔軟ではないし、穴あけれないとか制約はある。
だからその辺はレベルデザイナーのほうで調節する感じ。
ただしスムージングはかけれるから、たぶん補間はしてる。
たぶんゲームエンジンはどれも似たような仕組みは実装してると思うよ。
ディスプレースメントなら頂点4つ(△ポリゴン2つ)+差分テクスチャマップをシェーダーにぶち込んで高速処理、とか
そんなんだと思う。
あくまで予想だけど!
601名前は開発中のものです。
2012/06/10(日) 17:27:25.03ID:m7xNzVPO 特定の条件がなんなのか不明だけど、eventListenerとかgetInputとかで良いんじゃないの
設計としてはおかしくはない
設計としてはおかしくはない
602名前は開発中のものです。
2012/06/10(日) 17:28:33.69ID:m7xNzVPO 誤爆失礼
603名前は開発中のものです。
2012/10/13(土) 15:00:59.36ID:PbMUmxTV 保守
604名前は開発中のものです。
2014/08/05(火) 01:15:42.94ID:6YHbcuwm タイル形式の箱庭データ配置ってどう思う?
メモリーが少なかった頃の遺物?
高速化のために未だに使う事ってある?
メモリーが少なかった頃の遺物?
高速化のために未だに使う事ってある?
605名前は開発中のものです。
2014/08/05(火) 12:28:28.50ID:mp7VEmF3 良くも悪くもゲームが記号的になるね
606名前は開発中のものです。
2014/08/18(月) 17:56:46.58ID:/xfKqDtl Androidでゲームを作ってるんですが、クライアント・サーバー型のゲームのデータを
データベースで管理しようとすると武器の名前とかいらないと思って、端折りまくってたら
武器のIDだけのテーブルになってしまいました。(パラメータはクライアントで持ってます)
ここまでくるとテーブルとして参照するだけcpuの無駄だと思い、
テーブルを消していくと他のテーブルと全く関わり合いのないテーブルが出てきます。
(例えば武器を売った時にいくらお金が手に入るか?とか)
そうすると何か自分の考えてる構造に不安を覚えるのですが、これは正しいのでしょうか?
「データベースの外とリレーション貼ってる」って考えれば自分を納得させられるような気もしないんですが・・
データベースで管理しようとすると武器の名前とかいらないと思って、端折りまくってたら
武器のIDだけのテーブルになってしまいました。(パラメータはクライアントで持ってます)
ここまでくるとテーブルとして参照するだけcpuの無駄だと思い、
テーブルを消していくと他のテーブルと全く関わり合いのないテーブルが出てきます。
(例えば武器を売った時にいくらお金が手に入るか?とか)
そうすると何か自分の考えてる構造に不安を覚えるのですが、これは正しいのでしょうか?
「データベースの外とリレーション貼ってる」って考えれば自分を納得させられるような気もしないんですが・・
607名前は開発中のものです。
2014/08/18(月) 18:09:33.31ID:/xfKqDtl 砂漠とか海の3D空間で遠景を表現するのってどうすればいいですか?
地平線とスカイドーム(スカイボックス?)の切れ目が不自然になって、
ちょっとでもカメラのY座標を高くすると地面の切れ目もはっきり目立ちます。
fogは遠くのオブジェクトも見たいのであまりしたくありません。
http://livedoor.blogimg.jp/terashima999/imgs/1/3/1321e840.jpg
http://yoda.dip.jp/Diary/200707/20070711_AC6_1.jpg
↑こういうの
地平線とスカイドーム(スカイボックス?)の切れ目が不自然になって、
ちょっとでもカメラのY座標を高くすると地面の切れ目もはっきり目立ちます。
fogは遠くのオブジェクトも見たいのであまりしたくありません。
http://livedoor.blogimg.jp/terashima999/imgs/1/3/1321e840.jpg
http://yoda.dip.jp/Diary/200707/20070711_AC6_1.jpg
↑こういうの
608名前は開発中のものです。
2014/08/23(土) 15:13:29.78ID:yctiE/PZ >>607
LOD(level of detail)を使って遠くまで描画すればいいと思う。
ちょっと古い記事だけど下記のサイトが参考になるんじゃね?
3Dゲームファンのための「ワンダと巨像」グラフィックス講座
http://game.watch.impress.co.jp/docs/20051207/3dwa.htm
の「■地形のLODシステムと読み込み」の項目
LOD(level of detail)を使って遠くまで描画すればいいと思う。
ちょっと古い記事だけど下記のサイトが参考になるんじゃね?
3Dゲームファンのための「ワンダと巨像」グラフィックス講座
http://game.watch.impress.co.jp/docs/20051207/3dwa.htm
の「■地形のLODシステムと読み込み」の項目
609名前は開発中のものです。
2014/08/23(土) 18:35:40.53ID:w69tOcJ6 なるべく地平線や水平線の近くまで描画したいんでしょ?
自分の場合は
/ ̄ ̄ ̄\
/: :\
/: .: a .: .:\
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
↑↑
b c
a:視点の位置
b:フォグの開始
c:フォグの終了
空は角錐台状につくってaのxy座標に追従
bを遠くにとれば遠くまで描画できるし、
空の天辺がフォグで霞むこともなくなる。
自分の場合は
/ ̄ ̄ ̄\
/: :\
/: .: a .: .:\
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
↑↑
b c
a:視点の位置
b:フォグの開始
c:フォグの終了
空は角錐台状につくってaのxy座標に追従
bを遠くにとれば遠くまで描画できるし、
空の天辺がフォグで霞むこともなくなる。
610名前は開発中のものです。
2014/08/24(日) 14:20:41.69ID:AJZlAWRG >>609
視点のY座標が高くなると、地平線と空の間に描画されない部分が出てきてしまいます・・
視点のY座標が高くなると、地平線と空の間に描画されない部分が出てきてしまいます・・
611名前は開発中のものです。
2014/08/25(月) 00:41:57.10ID:2KTfo870 あぁXZ座標か。兎に角視点の高度はに角錐台は影響されない方向で。
612名前は開発中のものです。
2014/08/26(火) 13:52:23.48ID:qHUiU/pW いや、角錐台は影響されないんですけど、
aが立ってる地面とかは高度上げれば上げるほど離れていくわけじゃないですか
そうすると地面のポリゴンと角錐台がどんどん離れていって
地面のポリゴンの終端があらわになってしまいます。
街を探検するようなゲームなら全く問題ないんですが
海とか航空機とかで「地平線を表現したい」となった時にfogにも頼れず(霞ませたいわけじゃない)どうしたものかと・・・
LODで全力で軽量化しつつ、XZ座標1000000,1000000とかすごい桁のパラメータで遠くに設置してもいいんですが、
カメラのトリム距離もネックになってて、それだけの距離を1.0~0.0に収めると浮動小数点型の誤差?なのか、
遠景のZバッファによる描画が不自然になります
近景用と遠景用で2回判定してもいいんですが(通常ポリゴンとLODポリゴンで分けられたら一石二鳥かも)
なんだか王道から離れていってるようで、他の人がどう対処してるのかなと
aが立ってる地面とかは高度上げれば上げるほど離れていくわけじゃないですか
そうすると地面のポリゴンと角錐台がどんどん離れていって
地面のポリゴンの終端があらわになってしまいます。
街を探検するようなゲームなら全く問題ないんですが
海とか航空機とかで「地平線を表現したい」となった時にfogにも頼れず(霞ませたいわけじゃない)どうしたものかと・・・
LODで全力で軽量化しつつ、XZ座標1000000,1000000とかすごい桁のパラメータで遠くに設置してもいいんですが、
カメラのトリム距離もネックになってて、それだけの距離を1.0~0.0に収めると浮動小数点型の誤差?なのか、
遠景のZバッファによる描画が不自然になります
近景用と遠景用で2回判定してもいいんですが(通常ポリゴンとLODポリゴンで分けられたら一石二鳥かも)
なんだか王道から離れていってるようで、他の人がどう対処してるのかなと
613名前は開発中のものです。
2014/08/26(火) 21:43:36.70ID:HN5WQ9H7 / ̄ ̄ ̄\
/: a :\
/: .: .: .:\
 ̄ ̄ ̄ ̄ ̄←地面が小さいの?
地面をフォグの終了まで描画すればいいと思うけど…
/: a :\
/: .: .: .:\
 ̄ ̄ ̄ ̄ ̄←地面が小さいの?
地面をフォグの終了まで描画すればいいと思うけど…
614名前は開発中のものです。
2014/08/27(水) 17:08:35.72ID:r0T91QdR ぢめんをちきゅうみたいにまるくするのはどう?
615名前は開発中のものです。
2014/08/28(木) 17:39:54.03ID:bFGeiPpW616名前は開発中のものです。
2014/08/28(木) 21:14:49.09ID:m/S7fPOm 上のは船上だから視点は高くても数十m。水平線は結構近いと思うよ。
下のは数kmとかじゃないかな。建物を縮小というか単純に距離が離れてると思うけど…
それでもフォグを使って描画範囲を制限して、描画対象を削減してる。
下のは数kmとかじゃないかな。建物を縮小というか単純に距離が離れてると思うけど…
それでもフォグを使って描画範囲を制限して、描画対象を削減してる。
617名前は開発中のものです。
2014/08/29(金) 17:47:40.60ID:PQKddMMr >>616
今実際に水平線を描画してみたんですが、遠くの船が空中に浮いてるように見えます
海面の描画外で船を描画するとスカイドームの背景が船底より下に描画されます
海面にかけるフォグ色とスカイドームに貼り付けるテクスチャの水平部分に
同じ色を使っていい感じにごまかせないか試してみたんですが、
海面の上から船底が描画されるのでやっぱり違和感があります
今実際に水平線を描画してみたんですが、遠くの船が空中に浮いてるように見えます
海面の描画外で船を描画するとスカイドームの背景が船底より下に描画されます
海面にかけるフォグ色とスカイドームに貼り付けるテクスチャの水平部分に
同じ色を使っていい感じにごまかせないか試してみたんですが、
海面の上から船底が描画されるのでやっぱり違和感があります
618名前は開発中のものです。
2014/08/29(金) 22:39:55.32ID:Me2CR80H 船を描画するときフォグは無効にしてるの?
船全体がフォグの終了の向こうに出るまでは、フォグを有効にして船を描画。
向こうに出たら描画そのものをスキップしないとダメだと思うよ。
船全体がフォグの終了の向こうに出るまでは、フォグを有効にして船を描画。
向こうに出たら描画そのものをスキップしないとダメだと思うよ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★2 [ニョキニョキ★]
- 日本と中国を結ぶ12航空路線で全便欠航 中国人に最も人気の海外旅行先は日本から韓国に [ぐれ★]
- 米中電話会談、トランプ氏は「米国側は中国にとっての台湾問題の重要性を理解する」 [1ゲットロボ★]
- 【東京・足立の車暴走】赤信号無視か 危険運転致死傷疑いも視野に捜査 逮捕された職業不詳の男性(37)は精神疾患で通院歴も ★3 [ぐれ★]
- 【音楽】「なんでこんなバカが国のトップなの?」 若者に人気のバンド「GEZAN」のマヒトゥ・ザ・ピーポーが高市総理に苦言 [シャチ★]
- 【国際】トランプ氏、来年4月に中国を訪問する招待を受け入れる 習氏も国賓で訪米へ 電話会談 [ぐれ★]
- 【画像】なんか模型屋さんにいかにもお前らが好んでそうなアキバ系のアニメ?のキャラいたけどこれなに?
- VIPでアズールレーン
- 【高市悲報】来年、習近平主席がアメリカに「国賓」として訪米。どうするんだよ高市・・・アメリカも敵に回すのか? [483862913]
- フィフィ「外国人だろうが日本人だろうが反日は要らんのよ、この国に…自分にとって住みやすい国に行け。」 [856698234]
- 【悲報】有名配信者さん、公式大会で小学生の前で奇行して炎上して逆ギレwwwwwwwwwwwwwwwwww [856698234]
- 猟友会ハンター「警察や自衛隊の力を借りてのクマ駆除は大歓迎。肉の加工など 駆除の後についてもしっかりと話を進めてほしい」 [932029429]
