14

ゲーム プログラマーは、maya や 3d max などの外部 3D モデリング ソフトウェアで作成されたゲーム キャラクターと、c や c++ などのお気に入りのプログラミング言語で作成された実際のゲーム ロジックをどのように結び付けるのだろうかと常に考えていました。

この 2 つのことをどのように組み合わせるのですか?また、キャラクターのモデリングからプログラミングまで、ゲームを構築する実際のプロセスはどのようなものですか?

私が不思議に思うことのいくつかは、キャラクターの動きをコードからプログラムするのですか、それとも 3D モデルからプログラムするのですか?

例を見るのは本当にいいでしょう。

4

13 に答える 13

14

キャラクターの動きなど、ほとんどの情報は実際にはコードの外に格納されています。実際には非常に簡単なプロセスです。

  1. アーティストは Maya などで 3D モデルを作成し、ファイルに保存します。彼らがそれを「Gollum.3D」と呼んだとしましょう。
  2. 現在、「Gollum.3D」には、モデル ポイント、テクスチャ、およびその他すべてを表す多数の数値が含まれています。
  3. 次に、プログラム コードはファイル 'Gollum.3D' を読み取ります。そのすべてのモデル ポイント、テクスチャ、およびすべてを読み取り、多くの計算を行って、モデルを表すすべての数値が与えられた場合に 3D シーンがどのように見えるかを計算します。

ゲーム内のすべてがコードとは別に保存されることになり、ゲームの実行時にコードがコードを読み取ってすべてを結合することが判明しました。私がすべてを言うとき、私はすべてを意味します!すべてのテキスト、ヒット ポイントと武器のダメージ量の統計情報、メニュー画面の画像、さらには人工知能でさえも、スクリプト内のプログラム コードとは別に保存されます。プログラムコードはほとんど何もしません。

ゲームのモッズを作っている人の話を聞いたことがあるかもしれません。改造者は、プログラム コードの外側にあるデータを編集する人々であり、それによってゲームが自分に合った方法に変更されます。彼らは、基本的にゲームに関するすべてのこと (いくつかのコアなものを除く) がプログラムのコードに書き込まれていないという事実を利用しているだけです。

于 2009-01-31T08:47:55.227 に答える
6

お気に入りの答えとは異なり、アニメーションを持つキャラクターを持つことを参照すると、これは実際には非常に大きなタスクであると思い切って言います.

最終的には、スクリプトと構成ファイルを介して関連付けられた (つまり、データ駆動型の) 機能のほとんどを有効にすることになりますが、そのようなシステムを構築するプロセスは単純ではありません。

通常、次のことを行う外部モデラーから始めます。 1. スキン モデルを構築します。2. 骨格を構築し、ウェイトなどに従ってスキンに取り付けます。 3. 必要に応じて、すべてのテクスチャとマテリアルを適用します。4. エンジンにエクスポートします。

これで、このキャラクター スケルトンまたは類似のキャラクター スケルトン用のアニメーション バンクの構築を開始できます (通常、スケルトンが十分に近い場合やモジュール化されている場合)。一部のアニメーションには部分的な階層のみが含まれます (アニメーションの一部のみをブレンドできるようにするため - たとえば、上半身が別のアニメーションまたは逆運動学を使用できる間に下半身が実行されている場合、実行中に敵を撃つことは、その良い例です)。

いよいよコード部分に入ります。アニメーションをスケルトンに関連付けて正しくレンダリングするシステムを構築する必要があります。また、このシステムは、アニメーションと IK をブレンドできる必要があり (たとえば、立っている状態から走っている状態に切り替える)、いくつかのアニメーションと部分的なアニメーションを組み合わせることができる必要があります。たとえば、歩く (全身アニメーション)、誰かを見る (IK)上半身の場合)、手を振る (部分的なアニメーションを使用した IK) と呼吸 (部分的なアニメーション) を同時に行うと、4 つの異なる部分的または完全なブレンドが組み合わされます。

インポーターをビルドする必要があり、アクションとアクションのアニメーションにも違いがあるという事実については言及しませんでした。アクションには、複数のアニメーションを組み合わせたり、ランダムに選択したりできます。それらは、データ マッピング ファイルを介して関連付けられます。

XNA をご覧になることをお勧めします。多くの例、インポーターなどがあり、ライブラリには多くの基本的なものが含まれているため、ゼロから始める必要はありません。人々が言及したように、Blender3D は editor+ に適しているため、ゲーム エンジンのエクスペリエンスだけを求める場合は Torque を使用することもできます。

最後に一言 - もしあなたがそれを試してみるなら、それは公園を散歩するつもりはありませんが、ちょっと - とても楽しく、結果はあなたを誇りに思うでしょう.

于 2009-02-15T06:58:16.017 に答える
5

3D キャラクターの作成と 3D ゲームのプログラミングは、2 つの異なるプロセスです。

通常、3D モデラー (Blender、Maya、3D studio Max など) で 3D キャラクターをスカルプトし、このキャラクターをファイル (.obj、.md2 など) にエクスポートして、コードを 3D ゲームに順番に書き込んでいます。エンジンでのキャラクターのインポートを処理します。

これは非常に難しいように思えますが、3D ゲーム エンジンは、何百万行ものコードを記述したり、車輪を再発明したりすることなく、これらすべてをサポートしています。

たとえば、3D オープン ソース ゲーム エンジンである Ogre3D を考えてみましょう。簡単な例を数分で起動して実行するために、プログラミングの第一人者である必要はありません。彼らのwikiチュートリアルをご覧になることをお勧めします。

たとえば、これは単純なモデルを作成して 3D Studio Max からエクスポートし、それらを Ogre 3D にインポートするための簡単なチュートリアルです。

于 2009-01-31T09:53:53.173 に答える
3

私自身、ゲーム プログラミングの経験はあまりありませんが、XNA フレームワークとリソースは非常に有益であることがわかりました。http://creators.xna.com/en-US/で、たくさんの例とハウツー、そして非常に役立つフォーラムを見つけることができます。

于 2009-01-31T08:41:02.323 に答える
1

Unity3d.com にアクセスすれば、すぐにゲームを作成できます。アニメーションはモデリングソフト Maya などで行いますが、一部はエンジンで行います。Unity は物理学を簡単にし、多かれ少なかれ自分の世界を作成し、オブジェクトがどのように相互作用するかをリンクします。

例 - あなたはカメラを持っています -> UI からカメラを設定して、主人公とカメラが配置されている場所の XYZ 変換を追跡できます。視覚的に行うこともできます。

とても楽しく、想像以上にコードが少ないことを確認してください。もちろん、そこから独自のコードを記述して、独自のゲームプレイを行うことができます。スクリプトを作成し、それをスクリプトを実行するオブジェクトにドラッグすると、簡単に説明できます。

それは私が得ることができるのと同じくらい素人です。乾杯。

于 2010-05-19T18:33:08.240 に答える
1

3D レンダリング エンジンを使用する必要があります。それらの多くは無料で ( Ogre3Dは良いものです)、通常、一般的なモデリング ソフトウェアで作成されたほぼすべてのタイプのメッシュをインポートする機能があります。

于 2009-01-31T10:34:42.407 に答える
0

ゲーム エンジンの作成は複雑な作業です。私の提案は、既存のエンジンの 1 つを使用することです (リストから選択してください: http://www.devmaster.net/engines/ )。

エンジンを選択するときは、次の点を考慮する必要があります。

  • ライセンス(公開したい、予算はあるか、オープンソースか)
  • プログラミング言語/スクリプト (どの言語に最も慣れていますか)
  • ターゲット プラットフォーム (Windows/Linux/Mac/コンソール/電話)
  • パイプライン (3D モデリング ツールからのエクスポーターとエンジンへのインポーター)

あなたの質問は最後の項目に関連しています。3DS や Maya などで作成したアセットを、ファイル形式を気にする必要がない方法でエンジンにインポートできるエンジンを選択する必要があります。これにより、生産性が向上します。あなたはゲームだけに集中しているからです。

于 2009-01-31T10:29:22.853 に答える
0

正確に何を探すべきかについての回答が多すぎることに気づきませんでした。近年、これをいくらか簡単に行う方法について、さらに多くの情報がリリースされていますが、それでもかなり複雑です。

無料

有料

于 2014-08-22T21:10:36.943 に答える