Unity3D、どのくらいのコードを書きますか?[閉まっている]


16

Unity3Dでゲームを作成する際のワークフローを知りたいですか?

それはあなたのために多くのコードを生成しますか?

私の理解では、ゲームをUnityで記述し、バックエンドでロジックを実行するスクリプトを作成します。Unityを使用してパペットを記述し、スクリプト言語をパペットマスターとして使用するようなものです。



2
この質問をUnityAnswersに投稿してください。より団結中心であるため、あなたは、はるかに優れた応答を取得します
ジョー・パーソン

回答:


18

Unity3Dは、ゲームエンジンと(かなり初歩的な)3Dエディターで構成されています。メッシュ、テクスチャ、シェーダー、地形、カメラ、アニメーション、パーティクルシステム、オーディオサンプル、およびビデオゲームで役立つその他の種類のオブジェクトを提供します。これは、PhysXの(エヌビディアが所有する独自の物理エンジン)、およびモノ(共通言語ランタイム、別名.NETのオープンソース実装を)。

どれだけ使用するかはあなた次第です。すべてのデータ構造をUnityオブジェクトとして表現し、Unityのエディターで世界を構築し、物理学をオンにし、最小限のスクリプトでイベントをコースに進めることができます。または、物理エンジンをオフにして、アルゴリズムでワールドを構築し、オブジェクトのすべての動作と物理を明示的にプログラムすることもできます。

動作を完全にMono(C#、JavaScript、またはBooのいずれかの言語を使用)でプログラムするか、別の言語で記述してUnityプロジェクトにリンクするかを選択できます。(ゲームオブジェクトとの実際の統合はMono経由でなければなりませんが、これは必要に応じてかなり薄いレイヤーにすることができます。)

ワークフローは、ゲームエンジンとほぼ同じです。アーティストはモデルやテクスチャ、アニメーションを作成し、オーディオの専門家はサウンドを作成し、プログラマーはシェーダーと動作を作成します。

Unityプログラマーのコミュニティーは、answers.unity3d.comforum.unity3d.comの両方で非常に役に立ちます。(そして、多分ここでStack Exchangeに?)

試してみるのが最善の方法です。基本バージョンは無料で、「Pro」バージョンの30日間の試用期間があります。


6

Unity3Dは、「ドラッグアンドドロップ」ゲームエンジンというよりもラッパー/ライブラリです。コードを生成せず、「既製」のスクリプトも付属していません。

たとえば、Unrealにはデフォルトの一人称カメラ、キャラクターコントローラー、衝突検出、AIがあります。

Unity3Dにはそのどれもありません。Unity3Dから得られるものは、ゲームループ、コンポーネントベースのエンティティシステム、包括的な数学ライブラリ、メディアのロード、メッシュの処理、カメラ、イミディエイトモードGUI、シェーダー、レンダリングパイプライン、その他の低レベル機能です。プラス素晴らしいエディタ。高度な機能について心配する必要があります。たとえば、独自の一人称カメラをコーディングする必要があります(デフォルトのカメラを使用していない場合)。ただし、look-atベクトルなどの計算に対処する必要はありません。

Unity3Dは、厳密にはゲームのコードを生成しません(より正確にするために、ゲームを実行するためのコードを生成しますが、ゲームプレイには何も生成しません)

APIを使用してゲームを定義する必要があります。Unity3Dに付属のサンプルを見て、それらのコードを再利用できます。事前に定義されたスクリプトがいくつかありますが、通常はニーズに合わせてカスタマイズする必要があります。

スクリプトを使用してゲームを作成します。動作用のスクリプトを作成し、Unity3Dでレベルを設計し、それらの動作をエンティティ(またはゲームオブジェクト)に割り当てます。非常に柔軟性がありますが、それでもゲームを書くための努力が必要です。3DのFlashと比較します。


1
この文は誤りです。「Unrealにはデフォルトの一人称カメラ、キャラクターコントローラー、衝突検出、AIがあります。Unity3Dにはこれらはありません」
-jcurrie33

8
実際、Unityにはこれらすべての機能のコンポーネントが組み込まれており、さらに多くのダウンロード可能なプラグインが含まれています。特定の機能を取得するにはカスタマイズとコーディングが必要ですが、これらのコンポーネントを組み合わせることで完全に機能するようになります。機能的な銃から始めるわけではないので、Unrealほど肉付けはされていませんが、個人的にはUnityでゲーム(FPS以外)を入手する方が簡単だと思います。ただし、これの多くはセマンティクスです-実際にプログラムを実行して何かを実行する必要があります。
jcurrie33

1
おそらく、他のゲームエンジンにはUnity3Dよりも密接に結合されたサブシステムがあると言う方が良いでしょう。新しいUnity3Dプロジェクトを開始し、どのアセットもインポートしない場合、白紙の状態になります。良いことだと思うもの。おそらくこれは、デフォルトのサブシステムがないと思う理由についての私の見解を少し歪めたのでしょう。ただ、彼らが私がしなければならないプロジェクトに適していないというだけです。そして、これはUnity3Dの良いところの1つです。必要に応じて、デフォルトのものを省略して独自のコードを作成するのは簡単です。
-Extrakun

3

Unity3Dの表面は非常に簡単なように見え、ほとんどすべてが事前にビルドされていますが、それは真実ではありません。既に存在するスクリプト(すべてのエンジンに存在し、Unityの悪い点)とプラグインを使用することを無視する場合、それらは間違いなく非常に強力であると説明しますが、Unityはエディターを備えたプログラミングインターフェイスです。

ほとんどのコードは自分で作成します。私は2つの異なるプロジェクトでそれを経験しました。


2

フラッシュとの類推は非常に正しいですが、私は人形との類推を本当に理解していません。

団結の良い点は次のとおりです。

  • クロスプラットフォーム:それは非常に大きなプラスです。より大きな理由があります。
  • 高品質のエンジンと実装。Unityゲームオブジェクトなどを使用します。
  • シンプルなゲームをゼロから簡単に作成できるため、プロトタイプを作成する上でプラスになります。

悪いこと:

  • C ++またはCとリンクできないため、プロジェクトはUnityでのみ動作する可能性があります。C#を使用すると、XNAで機能すると主張するかもしれませんが、C ++は良かったでしょう。この発言では、ベテランの専門家や独学者が使用するツールではないことを意味します。アプリケーションを完全に制御することはできませんが、これはUnityでできないことがあるという意味ではありません。一方、優れたアイデアと才能のあるアーティストがいるチームは、経験豊富なプログラマを必要とせずに素晴らしいことを行うことができます。
  • それは全く新しいので、明らかにこのツールがどこへ導くのか誰も知らない。

私がUnityで気に入らないのは、すべてのハードワークが行われたように感じるため、プログラマーの価値はずっと低いということです。一方、物事を迅速に構築する方法を人々にすばやく教えるのに最適です。

結論として、Unity(またはUnityのようなツール)は、優れたプログラマーに手を差し伸べることはできませんが、小さなゲームスクリプティングを行うことをまだ知っているアーティストにとっては、より適しています。もちろん、フル機能のゲームを作成したり、現実的なIAを追加したり、MMOネットコードを作成したりできますが、大企業はUnityを使用しません。

プログラミングモデルを使用すると、開発ツールの3/4に適したソリューションを提案できるため、「独立系」のゲームメーカーに適合します。ある特定のツールを重視し、アーティストも評価しますが、プログラマーは評価しません(もちろん、団結チームのツールは除きます)。

Unityはプログラマーでない人にとっては良い近道ですが、彼らはビデオゲームはコードの行から来ていること、そして素晴らしいツールだけではすべてができないことを理解する必要があります。ある時点で、低レベルのプログラミングについて何かを知る必要があります。

個人的なプロジェクトを念頭に置いて、私はUnityを使用しません。C#やBooが好きではないからです(Pandaはpythonに適しているので、なぜ商用ソフトウェアに悩むのですか?)。団結、それははるかに印象的です。


1
自分のコメント:C ++でプログラムすることができますプロのプラグインなので、理論的には、それはまた、C ++エンジンだ...もあります
jokoon

1

Unityではスクリプトを作成する必要がありますが、すべての定型文はありません。典型的なOpenGLゲームでは、狂ったようにマトリックスとカメラを初期化する必要があります。Unityでは、何かの動作を伝えるスクリプトを作成し、それをオブジェクトに添付して動作させます。


1

大量のコードを生成することにより、衝突検出と回転計算(ライブラリ)に関してあなたの人生を楽にするために使用できる事前に構築された関数を含める場合、そうです、それは絵から多くのコーディングを取り、与えます手元のバージョンを最適化し、すぐに使用できます。主に、すべてのビルドのゲーム開発に必要な機能。

これを言うのは冗長に聞こえるかもしれませんが、私の経験では、Unity3Dがクラッシュしたりビルドしたりするのに忙しくなければ、好きなものを変更して、数学の修士号を持つ人々にクォータニオンベースの数学を任せることで私の生活が楽になりますそして、私が望むものは何でも変更できるほど十分に信頼してくれます。

それはあなたのために何も書かないでしょう、むしろそれが最高であると思う方法であなたを助けて、あなたが望むものを何でも書かせます。

一言で言えば、フレキシブル

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.