皆様はじめまして
経緯は省かさせていただけますが友達とゲームを作ることになりました。
そして、アイディアを出し合いゲーム構成を練っていく上で以下の件が候補に挙がりました。
1、ジャンルはホラー
2、ノベルゲーム又は謎解き小説
3、3Dを使い、主人公が動作して話が進む
今はこの内容で作ろうと考えているのですが、案が出たのは去年でした。
受験があったので作業は一時中断。ですが、大学に皆受かったので制作再開しようと
思い3Dの勉強を始めようと思ったのですが・・・
1、DXライブラリ3Dの本家ページが無くなっており、どのライブラリを使えばよいかわかりません。
2、次に、2Dゲームは処理の流れを大まかに作ったことがあるので理解できますが、3次元配列の
あらわし方をどうすればいいのか見当もつきません。
たぶん2次元配列の座標1つ1つに縦軸のZ座標の判定などを入れていけばいいと思うのですが;
一応、物理系なのでベクトル等は理解してます。
問題は配列と3Dが使えるライブラリだけです。
上記のことが勉強できる方法は無いでしょうか?
できればWEB上で勉強できれば一番助かります。
本とにらめっこして勉強は得意でないもので;
理数系で国語が苦手なので誤字脱字、表現のあいまいさがあると思いますがご勘弁ください。
よろしくお願いいたします。
3Dゲーム作成について
Re:3Dゲーム作成について
DXライブラリ3DやDXライブラリは、元は DirectX SDK を簡単に扱えるためのものなので、
DirectX SDK からでも3Dゲームの製作を行なうことは出来ます。
ただし、大変ではありますが。
http://marupeke296.com/GameMain.html
上記のサイトを参考にすると良いと思います。
3Dのポリゴンを表すのは、座標だけでなく、
その色やテクスチャの座標など、一つの頂点に複数の情報があります。
3Dでは、この頂点のリストを用意し、描画させることで3Dポリゴンを表しています。
3次元では、2次元の時のようにマップをチップで表現するのは難しいです。
(3次元のタイルデータを2次元方向に並べるのであれば別ですが)
3Dでは、当たり判定も3次元用のものが必要になります。
その当たり判定についても上記で解説されていますので、ここでは割愛します。
ちなみに、別のトピでも書きましたが、
DXライブラリ3Dの派生ライブラリ「http://sites.google.com/site/siv3dgameengine/Home」が開発中だそうです。
DirectX SDK からでも3Dゲームの製作を行なうことは出来ます。
ただし、大変ではありますが。
http://marupeke296.com/GameMain.html
上記のサイトを参考にすると良いと思います。
3Dのポリゴンを表すのは、座標だけでなく、
その色やテクスチャの座標など、一つの頂点に複数の情報があります。
3Dでは、この頂点のリストを用意し、描画させることで3Dポリゴンを表しています。
3次元では、2次元の時のようにマップをチップで表現するのは難しいです。
(3次元のタイルデータを2次元方向に並べるのであれば別ですが)
3Dでは、当たり判定も3次元用のものが必要になります。
その当たり判定についても上記で解説されていますので、ここでは割愛します。
ちなみに、別のトピでも書きましたが、
DXライブラリ3Dの派生ライブラリ「http://sites.google.com/site/siv3dgameengine/Home」が開発中だそうです。
Re:3Dゲーム作成について
なるほど、確かにDXライブラリ3Dを使うときもDirectX SDKをダウンロードした記憶があります。
でも、SDKは数学で言う公式なのでちょっと大変な部分はありそうですね~^^;
ゲームつくろー!
拝見させていただきましたが、2D、3D共に充実した内容でビックリです。
私もこれから愛用させていただこうと思います。ありがとうございました。
昨日、寝ながら考えていたのですが
1、複数のライブラリを使うことって可能なのでしょうか?
2、アプリケーションからC言語を読み出す方法はあるんでしょうか?
1は2D、3Dを利用してゲームを作るときに2D用・3D用の別々のライブラリを使うとしたら
どうなるのでしょう?
2はアプリケーションからどうしても見てみたいゲームがあるんです。
灯と言うグループ(3人)が作っているROLって3Dゲームなのですがものすごくグラフィック綺麗ですし
自分が見当もつかないアルゴリズムなどが使われていそうなので勉強としてみてみたいのです。それに、
自分がゲームを作るきっかけになったゲームなのでどうしてもって気があるんです。
無理なのでしょうか?
最初の題からは少しそれますが教えていただけると助かります。
でも、SDKは数学で言う公式なのでちょっと大変な部分はありそうですね~^^;
ゲームつくろー!
拝見させていただきましたが、2D、3D共に充実した内容でビックリです。
私もこれから愛用させていただこうと思います。ありがとうございました。
昨日、寝ながら考えていたのですが
1、複数のライブラリを使うことって可能なのでしょうか?
2、アプリケーションからC言語を読み出す方法はあるんでしょうか?
1は2D、3Dを利用してゲームを作るときに2D用・3D用の別々のライブラリを使うとしたら
どうなるのでしょう?
2はアプリケーションからどうしても見てみたいゲームがあるんです。
灯と言うグループ(3人)が作っているROLって3Dゲームなのですがものすごくグラフィック綺麗ですし
自分が見当もつかないアルゴリズムなどが使われていそうなので勉強としてみてみたいのです。それに、
自分がゲームを作るきっかけになったゲームなのでどうしてもって気があるんです。
無理なのでしょうか?
最初の題からは少しそれますが教えていただけると助かります。
Re:3Dゲーム作成について
Kさん
理系ということで同族意識が(ry
>1、複数のライブラリを使うことって可能なのでしょうか?
可能です。が、「DirectXとDXライブラリ」とかは、一筋縄ではいきません。
DXライブラリはDirectX(確か8?)のラッパーに過ぎないので、結局DirectX関連の(同じ)ライブラリが競合することになります。
現に、同時に使おうとして失敗している人を知ってます(笑)
DirectXは2Dも3Dも扱えます。DXライブラリは使いやすく機能の集約・分割をしてるんですね。
逆に言えば、DirectXは難解で面倒です。
>2、アプリケーションからC言語を読み出す方法はあるんでしょうか?
これは原則的に不可能です。C言語ソースと実行可能形式のコードは1対1ではないので・・・
理系ということで同族意識が(ry
>1、複数のライブラリを使うことって可能なのでしょうか?
可能です。が、「DirectXとDXライブラリ」とかは、一筋縄ではいきません。
DXライブラリはDirectX(確か8?)のラッパーに過ぎないので、結局DirectX関連の(同じ)ライブラリが競合することになります。
現に、同時に使おうとして失敗している人を知ってます(笑)
DirectXは2Dも3Dも扱えます。DXライブラリは使いやすく機能の集約・分割をしてるんですね。
逆に言えば、DirectXは難解で面倒です。
>2、アプリケーションからC言語を読み出す方法はあるんでしょうか?
これは原則的に不可能です。C言語ソースと実行可能形式のコードは1対1ではないので・・・
Re:3Dゲーム作成について
>>Kさん
>1、複数のライブラリを使うことって可能なのでしょうか?
これは可能ですが、SCIさんの言うとおりDirectXとDXライブラリは同時に使うことは出来ないです。
>>SCIさん
>現に、同時に使おうとして失敗している人を知ってます(笑)
はい、私もその様な失敗をした一人です(汗
「マクロが再定義されました」…のようなエラーが出てしまい、
デバッグ用の実行ファイルすら生成されませんでした…;;
>1、複数のライブラリを使うことって可能なのでしょうか?
これは可能ですが、SCIさんの言うとおりDirectXとDXライブラリは同時に使うことは出来ないです。
>>SCIさん
>現に、同時に使おうとして失敗している人を知ってます(笑)
はい、私もその様な失敗をした一人です(汗
「マクロが再定義されました」…のようなエラーが出てしまい、
デバッグ用の実行ファイルすら生成されませんでした…;;
Re:3Dゲーム作成について
基本は 2D, 3D の処理を別々のライブラリで使用するというのは、
少なくとも私の知る限りでは対応しているものはないです。
別々のライブラリで双方とも正常に動作させるには、少なくとも
対応 DirectX のバージョンが同一で、
デバイスの共有が出来、(片方で用意したデバイスをもう片方へ渡し、それで動作させる)
かつ描画処理がダブらないものでないといけません。
(そうなると隠蔽すべき箇所が少なくなり、複雑怪奇なものになりそうです)
しかし、元々 3D で表示できるということは、擬似的に 2D で表示することもできます。
(ほとんどのアプリケーションはその方法で 2D ・ 3D の混合表示をしています)
3D 空間の表し方は、ちょうど番組や映画の撮影カメラのように、
空間・カメラ位置・注視点によって表示されています。
3D 空間で 2D 空間を表すには、正射影行列という方法を使って、
スクリーンとぴったり座標を合わせることで、 2D の正確な表示が可能になります。
ただし、「2D の表示」が出来るのであって、 2D の方法で(DXライブラリのように)
表示しているわけではないことに注意してください。
X軸とY軸のみで3D頂点座標を配置しているだけなので。
2. については、C言語とまでは行きませんが、逆アセンブル(リバースエンジニア)により
アセンブラコードを抽出することは可能ですが、これはほとんどのアプリケーションでは
違反行為となります。(個人目的としても禁止しているのがほとんどのはずです)
よって、アプリケーションからコードを読み出すということはまず無理です。
開発者にソースを見せてほしい、と頼めば見せてくれるかもしれませんが、
ほとんどの場合は駄目だろうと思います。
アルゴリズムやエフェクトなどの大部分はネットで調べれば見つかりますが、
確実なものを知りたい場合は、書物を読むといいでしょう。
http://www.amazon.co.jp/%E3%82%B2%E3%83 ... 846&sr=8-1(リンクはAmazon行きです)
上記の本がオススメです。
872ページ(!)にも及ぶゲームプログラムに関するさまざまな技巧が網羅されています。
(私は持ってませんけど…)
少なくとも私の知る限りでは対応しているものはないです。
別々のライブラリで双方とも正常に動作させるには、少なくとも
対応 DirectX のバージョンが同一で、
デバイスの共有が出来、(片方で用意したデバイスをもう片方へ渡し、それで動作させる)
かつ描画処理がダブらないものでないといけません。
(そうなると隠蔽すべき箇所が少なくなり、複雑怪奇なものになりそうです)
しかし、元々 3D で表示できるということは、擬似的に 2D で表示することもできます。
(ほとんどのアプリケーションはその方法で 2D ・ 3D の混合表示をしています)
3D 空間の表し方は、ちょうど番組や映画の撮影カメラのように、
空間・カメラ位置・注視点によって表示されています。
3D 空間で 2D 空間を表すには、正射影行列という方法を使って、
スクリーンとぴったり座標を合わせることで、 2D の正確な表示が可能になります。
ただし、「2D の表示」が出来るのであって、 2D の方法で(DXライブラリのように)
表示しているわけではないことに注意してください。
X軸とY軸のみで3D頂点座標を配置しているだけなので。
2. については、C言語とまでは行きませんが、逆アセンブル(リバースエンジニア)により
アセンブラコードを抽出することは可能ですが、これはほとんどのアプリケーションでは
違反行為となります。(個人目的としても禁止しているのがほとんどのはずです)
よって、アプリケーションからコードを読み出すということはまず無理です。
開発者にソースを見せてほしい、と頼めば見せてくれるかもしれませんが、
ほとんどの場合は駄目だろうと思います。
アルゴリズムやエフェクトなどの大部分はネットで調べれば見つかりますが、
確実なものを知りたい場合は、書物を読むといいでしょう。
http://www.amazon.co.jp/%E3%82%B2%E3%83 ... 846&sr=8-1(リンクはAmazon行きです)
上記の本がオススメです。
872ページ(!)にも及ぶゲームプログラムに関するさまざまな技巧が網羅されています。
(私は持ってませんけど…)
Re:3Dゲーム作成について
なるほど~
DirectXとDXライブラリは同時に使えないのですね~
期待していただけにちょっと残念です。
SCIさんも理系なんですね~
やっぱりC言語は理系が向いているんですかね^^
やっぱりアプリからソース拝見とはいかないんですね・・・
ゲームの知識は自分から学ぶってつくづく痛感しました。
cosmoさん
やっぱり私と同じような考えの人は多いようで;
この掲示板を見つけられてよかったです。
私はまだ実行してないので、被害者ではないですよ~(笑)
御津凪さん
やっぱり基本的にコンパイラはこのHP紹介のMicrosoftのを使っているので
DirectXやDirect SDKなんかを使って作るほうが自由度が高くていいのでしょうかね;
アプリから抽出は禁止ですか~
灯の方にソース見せてほしいとメールを何度か送り、掲示板でも聞きましたが・・・
応答なしで掲示板ではなぜか叩かれました。
>ゲームプログラマになる前に覚えておきたい技術
一度、著書間にあれば見てみようと思います。
皆様、丁寧な回答ありがとうございました。
また疑問が出たときにお世話になると思いますがこれからよろしくお願いします。
DirectXとDXライブラリは同時に使えないのですね~
期待していただけにちょっと残念です。
SCIさんも理系なんですね~
やっぱりC言語は理系が向いているんですかね^^
やっぱりアプリからソース拝見とはいかないんですね・・・
ゲームの知識は自分から学ぶってつくづく痛感しました。
cosmoさん
やっぱり私と同じような考えの人は多いようで;
この掲示板を見つけられてよかったです。
私はまだ実行してないので、被害者ではないですよ~(笑)
御津凪さん
やっぱり基本的にコンパイラはこのHP紹介のMicrosoftのを使っているので
DirectXやDirect SDKなんかを使って作るほうが自由度が高くていいのでしょうかね;
アプリから抽出は禁止ですか~
灯の方にソース見せてほしいとメールを何度か送り、掲示板でも聞きましたが・・・
応答なしで掲示板ではなぜか叩かれました。
>ゲームプログラマになる前に覚えておきたい技術
一度、著書間にあれば見てみようと思います。
皆様、丁寧な回答ありがとうございました。
また疑問が出たときにお世話になると思いますがこれからよろしくお願いします。
Re:3Dゲーム作成について
>やっぱりC言語は理系が向いているんですかね^^
「法学部」で、
「暇だから」という理由で、独学勉強し、
C,C++,C#を使いこなせる人を僕は知っています・・・w
「法学部」で、
「暇だから」という理由で、独学勉強し、
C,C++,C#を使いこなせる人を僕は知っています・・・w
Re:3Dゲーム作成について
> 灯の方にソース見せてほしいとメールを何度か送り、掲示板でも聞きましたが・・・
> 応答なしで掲示板ではなぜか叩かれました。
自分が苦労して作り上げたゲームやソフトを、
ソースを改造してグレードアップしたものやチートを入れたものを公開されたりでもしたら、
自分のいままで苦労が報われないどころか、水の泡になりますからね。
ゲームやソフトの場合、上記のことを恐れるため、ソースは非公開が当然のようになっています。
そのため、たとえ勉強の為と思って相談しても駄目なのです。
(そのために叩かれたのだろうと思います)
技術を盗めという言葉もありますが、巷でよく騒がれている情報の漏えいが懸念されるため、
ソースまでも盗むというわけにもいかないのです。
しかし、 zlib, libpng のようにソースを公開し、技術などを提供しているところがあることも忘れてはなりません。
また、GNU系ツールなどはツールの質を向上させるためにソースを公開しているものもあります。
> 応答なしで掲示板ではなぜか叩かれました。
自分が苦労して作り上げたゲームやソフトを、
ソースを改造してグレードアップしたものやチートを入れたものを公開されたりでもしたら、
自分のいままで苦労が報われないどころか、水の泡になりますからね。
ゲームやソフトの場合、上記のことを恐れるため、ソースは非公開が当然のようになっています。
そのため、たとえ勉強の為と思って相談しても駄目なのです。
(そのために叩かれたのだろうと思います)
技術を盗めという言葉もありますが、巷でよく騒がれている情報の漏えいが懸念されるため、
ソースまでも盗むというわけにもいかないのです。
しかし、 zlib, libpng のようにソースを公開し、技術などを提供しているところがあることも忘れてはなりません。
また、GNU系ツールなどはツールの質を向上させるためにソースを公開しているものもあります。