3Dアクションゲームの設計
■ このスレッドは過去ログ倉庫に格納されています
00011
04/08/19 06:47ID:/FRosK6Wゲーム制作経験もまだ浅く、3Dのゲーム制作が始めての為なかなか良い設計が思い浮かびません。
そこで皆さんのお知恵を借りつつ、
これから3Dアクションゲームをつくる人の参考になったらな〜、なんて考えてます。
皆さんよろしくお願いします。
■使用言語
C++
■プラットフォーム
DirectX9.0
Microsoft Visual Studio.NET
0007名前は開発中のものです。
04/08/20 00:04ID:IIpb1eyWこれまであんまり間合いを考慮したプログラムはなかった。
技が決まる時の距離を計算して それをダメージに繁栄させれば
いいと思う。
俺もそういうプログラムを組もうとしているところ。
アクション系RPGだけど 君がやったほうが面白いことになると思う。
0008名前は開発中のものです。
04/08/20 00:12ID:IIpb1eyWその基準値を元にゲームに反映していくとより
よりリアルなゲームになっていくと思う。
力もいつも同じではなくて スタミナ値により
減少が早い人 遅い人を決めていくと面白くなるはず。
どうもこれまでのプログラマーは
そういう格闘技には興味がないのと3D化に忙しかったと言う側面があったので
傍目から見るとそれはないだろうというプログラムを
組んでいたように思える。
00091
04/08/21 14:58ID:tEHqIcjJ俺もスクリプトやった事ね orz
>>7
間合いって言うのは俺も考えてる、リアル思考でもないんではちょっと切り口が違うけど
『蝶のように舞い、蜂の様に挿す』スタイルがゲームで出来たら面白そうだとか思った。
0010名前は開発中のものです。
04/08/22 08:31ID:34iArWBvでもかなり初期の部分かな?
ところでCG部分やCGの動き(アニメ)部分はどうしているの?
Xファイルを自分で作ったりしているの?
また人に頼むとかしているの?
自分でも一応作れるけど しょぼい3Dしか作れないのが悩み。
またそれにあまり時間をかけたくはないしね。
00111
04/08/23 03:57ID:mdjmxZ9J3Dの方はXファイルを使わずXSIフォーマットっていう
頭悪いフォーマットを解析して表示してるよ。
0012名前は開発中のものです。
04/08/25 10:01ID:ZkR0yCXI0013名前は開発中のものです。
04/08/25 21:40ID:zbS3DhhP俺はこれを使うことにするぜ!!
まあ2年後ぐらいに・・
0014名前は開発中のものです。
04/08/25 23:20ID:aEHR2nps実際に必要なのはイベントエディタやマップエディタなどのツールなどであって、
ツールが優秀であれば別にスクリプトという形は必要ない。
スクリプトだけあっても大して効率化は計れない。
0015名前は開発中のものです。
04/08/26 00:53ID:ulmMUTP0こっちの方は未だに2Dの絵にこだわる人が多くて嫌になる。
俺としては使いまわしでいいから見るのに耐える3Dを探しているところ。
それを少し変形させて使うつもり。
問題は動きの部分?
ビデオのモーションキャプチャーと連携させて動くのが
無料であればいいんだけど。
やはりそういうのも自分で開発すべきなのかな?
それとも こつこつ3次元の中でモーション部分を組み立てるべきなのか?
0016名前は開発中のものです。
04/08/26 01:07ID:ulmMUTP0走ったり 飛んだり パンチを出したり キックをしたりなどの
サンプルアニメを1000動作くらい入れているとこっちもあまり動かずに
済んだのにと思う。しかもあの3dはどう見てもあまりカッコよくないから
使う気にはあまりなれない。
基本形を作ってくれれば こっちも数値を入れ替えて
いろいろアニメを変化させることできるのにと思う。
0017名前は開発中のものです。
04/08/26 02:07ID:MK54UGgWそもそも、移動→攻撃で、なんで関数ポインタがでてくるんだ?
3Dアクションって、キャラがポリゴンになって、
それに伴って、当たり判定も3D化しなきゃならないってだけでほ。
2Dの場合、表示するCGを切り替えるだけで、移動→攻撃になるけど、
ポリゴンの場合、キャラクタを構成してるポリゴンオブジェクトの、
最終的な、3DMATRIX(回転角度だけ)を、パターンごとに定義しておいて、
ある動作から、別の動作に移るときは、
3DMATRIX(回転角度だけ)を、増減するだけでいいんじゃないの?
0018名前は開発中のものです。
04/08/26 02:26ID:V/ySXPA+0019名前は開発中のものです。
04/08/26 03:03ID:MK54UGgW1に付き合って言ったことぐらいも分からないの?
0020名前は開発中のものです。
04/08/26 03:19ID:ZddnH+Miスキニング等のアニメーションを勉強した方が良いよ。
スゲー頭悪い発言。
0021名前は開発中のものです。
04/08/26 03:51ID:/Vew0L+C0022名前は開発中のものです。
04/08/26 05:54ID:o+aMKbJnうpロダorftp鯖は準備する必要があるけど
人体モデルの基本ボーン構造を決めて、それを使ってモーションを作ってもらう
で、その基本ボーンを元にスキンを作ってもらう
みたいな感じで
使用ソフトもしくはファイル形式を決めないといけないね
あとスキン&モーション着せ替えビューアみたいのも必要かな
分業化できるような体制を作って頼めば一人がたくさん作る必要もないから受けくれやすいかな
0023名前は開発中のものです。
04/08/26 05:58ID:o+aMKbJnうーんなんともいえないな
C++使うんだから継承とコンポジションをうまく使っていくのがいいんだが
例えば表示と操作に焦点を当ててみると
----------------------------------------------
class Character //表示関係の機能を持つクラス
clas CharacterControl //動作を取得するクラス
class InputControl : CharacterControl //入力操作クラス
class AutoControl : CharacterControl //自動操作クラス
class PlayerCharacter : Character// 自分で操作するキャラクタのクラス
{CharacterControl mControl}
class EnemyCharactor : Character//敵キャラクタのクラス
{AutoControl mControl}
----------------------------------------------
CharacterControlは抽象クラスでもいいと思う
CharacterControlで定義された関数を呼ぶようにしておいて
InputControl AutoControl でオーバーライドするなり仮想関数の実体をもたせればいいとか
さらにEnemyCharactorを継承させて色々なタイプの敵キャラクタを作るみたいな
0024名前は開発中のものです。
04/08/26 06:47ID:MK54UGgW単に、状況ごとにオブジェクト化するだけじゃねーか。
わざわざ名前つけるほどのものでもない。
そんで、関数ポインタを用いるっていってた意味が分かった。
状況ごとの処理を、関数ごとにわけてあるから、
その分岐で、関数ポインタを使って、処理速度を上げるなり、
管理を楽にするという意味ね。
それは3Dにする上での課題ではないな。
0025名前は開発中のものです。
04/08/26 07:13ID:MK54UGgWたとえば、普通に立っている状態から、パンチをする場合、
ポリゴンキャラの動きは、17の方法で行なうとして、
そこで、stateパターンを使う必要性が見つからない。
パンチのモーションに入って、しばらくして、キャラの拳に、当たり判定を設定する方法をとると、
当たり判定が生じる直前までのポーズにしてから、
その後に、当たり判定が生じているパンチの最後のポーズにもってく形をとる。
パンチボタンを押したら、現在の状態→パンチポーズ1→パンチポーズ2 という流れ。
この、パンチポーズ1からパンチポーズ2の間の動きで、拳に当たり判定がある。
全てのポーズをクラス化して、そのサブクラスに、当たり判定クラスを作る形になる。
当たり判定は球で行なうとして、ポーズごとに、当たり判定用の球の数は異なる。
一番問題なのは、トランスフォーム済みのこの球のワールド座標を算出することだと思うが。
MatrixMultiplyを繰り返して算出すると、処理に負担がかかる
0026名前は開発中のものです。
04/08/26 07:29ID:GWEpquVX>3Dの方はXファイルを使わずXSIフォーマットっていう
XSIもってんのか。金持ちだな。
0027名前は開発中のものです。
04/08/26 08:44ID:6stnwMIuそれは違うと思うな。
ゲームを作るのには、まず何は無くともスクリプトが必要!
しかし実際にスクリプト言語を使えとか組み込めと言ってる訳じゃない、
ゲームエンジンを設計をする上で、スクリプト言語の使用を想定すると
それが設計の指標になり有用だからだ。UnrealScriptなどとても参考になる。
0028名前は開発中のものです。
04/08/26 08:47ID:dDIA6lWM>stateパターンって、
>単に、状況ごとにオブジェクト化するだけじゃねーか。
>わざわざ名前つけるほどのものでもない。
デザパタは設計の仕方に名前を付けることに最大の価値がある。
アルゴリズムには大抵名前が付いている。
「ここはデータを分割してそれぞれをソーティングし、最後に1つにあわせるソート方法でここは並び替える」
と言うより、ただ単に「ここはクイックソートする」と言った方がいいだろう。
名前を持つ事で、概念を簡単に相手に伝えられ、共有できる。
>>25
Stateパターンは、例えばよくある組方だと
switch(state_){
case NORMAL: ... break;
case ATTACKED: ... break;
...
}
とこんな感じのswitch文をあちこちに置くことになり、
状態が増えると、switch文の保守が困難になる。
Stateパターンを用いるとそれが改善される。
0029名前は開発中のものです。
04/08/26 09:24ID:nsm3nwx9>ゲームを作るのには、まず何は無くともスクリプトが必要!
スクリプトなどなくてもゲームは作れる。
こういう勘違いがいるから、突然何の脈略もなく、
初っぱなにスクリプトと叫ぶ馬鹿が発生する。
0030名前は開発中のものです。
04/08/26 10:07ID:6stnwMIuそれを言ったら、文字セットだけでもゲームは作れるぞ。
それに必ずスクリプトを使えとは言っていないだろ、
他に良い言葉がなかったから、そう言っているだけで
あえて言うならスクリプト指向というのかな、
エンジンを設計するのに、過去のゲームのスクリプトを参考にしたり
スクリプトの仕様から考えていく方が有効だと言っている。
あくまでスクリプトといっても、HSPとか簡単ゲーム作成環境のことではなくて
例えば ttp://www.kjps.net/user/nis/articles/agopl.pdf のようなもの。
0031名前は開発中のものです。
04/08/26 10:17ID:J4YfLQe6>>16
>スキニング等のアニメーションを勉強した方が良いよ。
>スゲー頭悪い発言。
何を持って頭が悪いと言っているわけ?
最近の3Dツールだと簡単にアニメが作成できるとでも言いたいわけ?
0032名前は開発中のものです。
04/08/26 10:38ID:dk39ZaB120とは別人だが、tinyさんのXファイルを実際に開いたことあるかね?
ジャンプから何から全部入ってるぞ。
パターン替えの改造なら、あの内容(SkinnedMeshサンプルな)を理解すれば、
10分コースだが?
0033名前は開発中のものです。
04/08/26 11:03ID:J4YfLQe6サンクス。俺 よく見ていなかった。
0034名前は開発中のものです。
04/08/26 11:07ID:CmtrqTYy高くてもモデリングツールには金をかけた方がいい。
0035名前は開発中のものです。
04/08/26 20:19ID:MK54UGgW用語など作らなくてもゲームは作れる。
こういう勘違いがいるから、突然何の脈略もなく、
初っぱなに用語を叫ぶ馬鹿が発生する。
0036名前は開発中のものです。
04/08/26 20:24ID:Ke4QUxk9後で設計を見直すときのことも考えるのがちゃんとした設計だよ
0037名前は開発中のものです。
04/08/26 20:28ID:pXh3kcNAじゃあお前はどんな用語も使わず、毎回回りくどく説明しとけやボケが
0038名前は開発中のものです。
04/08/27 01:39ID:A0/gmcko確かに CGである程度見せなければ 商品としては著しく価値が落ちるかもね。
0039名前は開発中のものです。
04/08/27 19:00ID:hk+hK4H+ジャンプなんかのアクションを駆使してステージクリアしていくタイプなのかな?
それとも格ゲーなのかな?
00401
04/08/27 20:18ID:zYWXjtsz何回か質問のあったゲームのタイプは3Dマリオだったりゼルダだったりの
飛んだり跳ねたりするアクションゲームです。
>>23 ああ、それカッコイイ。参考にさせてもらいますw
>>27 某オタゲー専に通ってて、学校の備品がXSIだったですよ。
解析くそめんどかった(;´ё`)
3Dゲーム当たり判定とかの計算がクソ大変そうね。
数学ヘタレな俺
0042名前は開発中のものです。
04/08/28 03:44ID:FytZcdAaそして少しづつ高度なものにしていけばいいと思う。
今は3Dのモデル集めに時間をかけている所。
>32
そんなにアニメ入っている?
4つのアニメが入っているやつしか見つからなかった。
0043名前は開発中のものです。
04/08/28 03:50ID:FytZcdAaプログラムはもちろんのこと 3D集め キャラ作り モーション
ムービー作り 音楽集め 効果音 音声入力 ストーリー作り。
時間かかるね。できればプログラムとストーリー以外はやりたくはないね。
0044名前は開発中のものです。
04/08/28 04:04ID:FytZcdAa有限要素法とかを使って 計算するやつ。
簡単な放射物の落下などはあんまり頭を使う必要はないはずだし
適当な式いれても 見た目に違和感はないよ。
0045名前は開発中のものです。
04/08/30 14:17ID:QJEE0Jh8君、プログラマ向きじゃないね。
少なくとも、チーム作業は無理。
>>40
取り敢えずは、AI、アクション管理、コリジョン管理の設計と、
クラス構築の方針(1キャラ1クラスにするか?とか)
を決めるのがいいかと。
個人的には、それそれにオーサリングツールを用意するのがいいかと。
で、おそらく、AI、アクション(ステートね)、コリジョンには、
因果関係が生まれると思う。
なので、アクションに命名規則を付けたりすればいいかも。
AIスクリプトツール、アクション定義、コリジョン編集で、同じ名前(例えばRLpunch002等)を使う。と。
RLpunch002時のAI、RLpunch002のアクション定義、RLpunch002時のコリジョン状態、みたいな。
0046名前は開発中のものです。
04/08/31 17:04ID:xieCU++w0047名前は開発中のものです。
04/09/03 23:03ID:s4Q0DRcfモデラーは開発に手をだすプログラマーさんが多いから価格は暴落してる。
金はモーション編集ソフトに注ぎ込んで、国産のモデラーを使えば良いかも。
0048名前は開発中のものです。
05/02/09 22:24:39ID:kgj02UQ/有限要素法とかって、最高に計算量が多いのが何とも。
重…
0049名前は開発中のものです。
2005/09/04(日) 09:03:16ID:w94X/T4v0050名前は開発中のものです。
2006/07/12(水) 22:11:34ID:mik3ZIpS0051名前は開発中のものです。
2007/04/02(月) 18:17:49ID:0q+4yudy0052名前は開発中のものです。
2007/04/11(水) 12:09:40ID:JsIZ/tqT0053名前は開発中のものです。
2007/04/11(水) 16:08:36ID:cj+V4Vv10054名前は開発中のものです。
2009/03/08(日) 12:14:55ID:lUOcnlf/0055名前は開発中のものです。
2009/05/20(水) 21:07:28ID:QkqF4pAx0056名前は開発中のものです。
2009/05/21(木) 15:48:21ID:8XIxGH760057名前は開発中のものです。
2009/05/26(火) 12:03:55ID:Et/YpWLT0058名前は開発中のものです。
2009/07/02(木) 16:51:46ID:Uc9yDljO0059名前は開発中のものです。
2009/07/02(木) 21:48:48ID:qsvI9May同人
0060名前は開発中のものです。
2009/08/10(月) 22:29:45ID:MKST8+qJなるほど、灯か
>>1の作りたいゲームって、こういうイメージでいいのかな?

もう作れた?
0062名前は開発中のものです。
2015/01/25(日) 19:22:33.98ID:TCsdeOZC■ このスレッドは過去ログ倉庫に格納されています