Unity3Dでゲームを作成する際のワークフローを知りたいですか?
それはあなたのために多くのコードを生成しますか?
私の理解では、ゲームをUnityで記述し、バックエンドでロジックを実行するスクリプトを作成します。Unityを使用してパペットを記述し、スクリプト言語をパペットマスターとして使用するようなものです。
Unity3Dでゲームを作成する際のワークフローを知りたいですか?
それはあなたのために多くのコードを生成しますか?
私の理解では、ゲームをUnityで記述し、バックエンドでロジックを実行するスクリプトを作成します。Unityを使用してパペットを記述し、スクリプト言語をパペットマスターとして使用するようなものです。
回答:
Unity3Dは、ゲームエンジンと(かなり初歩的な)3Dエディターで構成されています。メッシュ、テクスチャ、シェーダー、地形、カメラ、アニメーション、パーティクルシステム、オーディオサンプル、およびビデオゲームで役立つその他の種類のオブジェクトを提供します。これは、PhysXの(エヌビディアが所有する独自の物理エンジン)、およびモノ(共通言語ランタイム、別名.NETのオープンソース実装を)。
どれだけ使用するかはあなた次第です。すべてのデータ構造をUnityオブジェクトとして表現し、Unityのエディターで世界を構築し、物理学をオンにし、最小限のスクリプトでイベントをコースに進めることができます。または、物理エンジンをオフにして、アルゴリズムでワールドを構築し、オブジェクトのすべての動作と物理を明示的にプログラムすることもできます。
動作を完全にMono(C#、JavaScript、またはBooのいずれかの言語を使用)でプログラムするか、別の言語で記述してUnityプロジェクトにリンクするかを選択できます。(ゲームオブジェクトとの実際の統合はMono経由でなければなりませんが、これは必要に応じてかなり薄いレイヤーにすることができます。)
ワークフローは、ゲームエンジンとほぼ同じです。アーティストはモデルやテクスチャ、アニメーションを作成し、オーディオの専門家はサウンドを作成し、プログラマーはシェーダーと動作を作成します。
Unityプログラマーのコミュニティーは、answers.unity3d.comとforum.unity3d.comの両方で非常に役に立ちます。(そして、多分ここでStack Exchangeに?)
試してみるのが最善の方法です。基本バージョンは無料で、「Pro」バージョンの30日間の試用期間があります。
Unity3Dは、「ドラッグアンドドロップ」ゲームエンジンというよりもラッパー/ライブラリです。コードを生成せず、「既製」のスクリプトも付属していません。
たとえば、Unrealにはデフォルトの一人称カメラ、キャラクターコントローラー、衝突検出、AIがあります。
Unity3Dにはそのどれもありません。Unity3Dから得られるものは、ゲームループ、コンポーネントベースのエンティティシステム、包括的な数学ライブラリ、メディアのロード、メッシュの処理、カメラ、イミディエイトモードGUI、シェーダー、レンダリングパイプライン、その他の低レベル機能です。プラス素晴らしいエディタ。高度な機能について心配する必要があります。たとえば、独自の一人称カメラをコーディングする必要があります(デフォルトのカメラを使用していない場合)。ただし、look-atベクトルなどの計算に対処する必要はありません。
Unity3Dは、厳密にはゲームのコードを生成しません(より正確にするために、ゲームを実行するためのコードを生成しますが、ゲームプレイには何も生成しません)
APIを使用してゲームを定義する必要があります。Unity3Dに付属のサンプルを見て、それらのコードを再利用できます。事前に定義されたスクリプトがいくつかありますが、通常はニーズに合わせてカスタマイズする必要があります。
スクリプトを使用してゲームを作成します。動作用のスクリプトを作成し、Unity3Dでレベルを設計し、それらの動作をエンティティ(またはゲームオブジェクト)に割り当てます。非常に柔軟性がありますが、それでもゲームを書くための努力が必要です。3DのFlashと比較します。
Unity3Dの表面は非常に簡単なように見え、ほとんどすべてが事前にビルドされていますが、それは真実ではありません。既に存在するスクリプト(すべてのエンジンに存在し、Unityの悪い点)とプラグインを使用することを無視する場合、それらは間違いなく非常に強力であると説明しますが、Unityはエディターを備えたプログラミングインターフェイスです。
ほとんどのコードは自分で作成します。私は2つの異なるプロジェクトでそれを経験しました。
フラッシュとの類推は非常に正しいですが、私は人形との類推を本当に理解していません。
団結の良い点は次のとおりです。
悪いこと:
私がUnityで気に入らないのは、すべてのハードワークが行われたように感じるため、プログラマーの価値はずっと低いということです。一方、物事を迅速に構築する方法を人々にすばやく教えるのに最適です。
結論として、Unity(またはUnityのようなツール)は、優れたプログラマーに手を差し伸べることはできませんが、小さなゲームスクリプティングを行うことをまだ知っているアーティストにとっては、より適しています。もちろん、フル機能のゲームを作成したり、現実的なIAを追加したり、MMOネットコードを作成したりできますが、大企業はUnityを使用しません。
プログラミングモデルを使用すると、開発ツールの3/4に適したソリューションを提案できるため、「独立系」のゲームメーカーに適合します。ある特定のツールを重視し、アーティストも評価しますが、プログラマーは評価しません(もちろん、団結チームのツールは除きます)。
Unityはプログラマーでない人にとっては良い近道ですが、彼らはビデオゲームはコードの行から来ていること、そして素晴らしいツールだけではすべてができないことを理解する必要があります。ある時点で、低レベルのプログラミングについて何かを知る必要があります。
個人的なプロジェクトを念頭に置いて、私はUnityを使用しません。C#やBooが好きではないからです(Pandaはpythonに適しているので、なぜ商用ソフトウェアに悩むのですか?)。団結、それははるかに印象的です。
大量のコードを生成することにより、衝突検出と回転計算(ライブラリ)に関してあなたの人生を楽にするために使用できる事前に構築された関数を含める場合、そうです、それは絵から多くのコーディングを取り、与えます手元のバージョンを最適化し、すぐに使用できます。主に、すべてのビルドのゲーム開発に必要な機能。
これを言うのは冗長に聞こえるかもしれませんが、私の経験では、Unity3Dがクラッシュしたりビルドしたりするのに忙しくなければ、好きなものを変更して、数学の修士号を持つ人々にクォータニオンベースの数学を任せることで私の生活が楽になりますそして、私が望むものは何でも変更できるほど十分に信頼してくれます。
それはあなたのために何も書かないでしょう、むしろそれが最高であると思う方法であなたを助けて、あなたが望むものを何でも書かせます。
一言で言えば、フレキシブル