3DCG の学習には何を使ったらよいか
About
3D の ComputerGraphics(CG/コンピュータグラフィクス) を始めるにあたって、どのような学習・開発環境を選択するのか迷っている、困っている、という話をちょこちょこと聞かされるので少しまとめてみました。何事でも学習するにあたってはモチベーション維持のために目的に合ったものを選ぶのが良いと思います。
ここでは 2D の、いわゆる画像ベースのCGについては言及していません。2D の場合にも画像処理を必要とするものから、単にゲームが出来ればよい、といった需要があるからです。3D と 2D とを混在させると非常に混乱すると思います。
適切な環境を選択する
一問一答から見つける
以降の項目は詳細について書いているので、手っ取り早くどれが良さそうかを判断する材料を一問一答形式でまとめておきます。
- iOS や Android 向けのゲームを作りたい
- ゲームエンジン Unity がおススメです。
- 研究開発分野で利用したい
- OpenGL か DirectX を利用しましょう。
- C や C++ が使えない、C# や Java しか使えないんだけど3Dゲーム作れる…?
- Unity は C# や Javascript で開発できます。
- C や C++ しか使えない、けど OpenGL も DirectX も難しそう
- C# は C++ などに比べて簡単です。ゲーム作りたい、軽く動かしたい、位ならゲームエンジン Unity か XNA がおススメです。
- Java では OpenGL を使うのが良いと思います。
- Mac なんだけど
- 3DCG の深いところから触りたければ OpenGL しか選択肢がありません。でなければ ゲームエンジン Unity を利用しましょう。
- ゲームの組み方を勉強したい。
- ゲームエンジン Unity か、XNA が良いでしょう。
- ゲーム作ろうとしたけど DirectX 難しすぎ
- ゲームエンジン Unity を利用しましょう。
- 3DCGモデルやアニメーションが作りたい
- 予算や意気込みに合わせた制作ソフトを選びましょう。
基礎から全て学びたい
3DCG を扱うプログラムの基礎から全てを学びたい、という場合には、OpenGL か DirectX を利用することになるでしょう。研究開発レベルの 3DCG をあつかうときも、大体この2つの何れかです。
- OpenGL について
- OpenGL は多くの動作環境下でグラフィック全般を扱うための API です。多くの環境下で利用することができます。
- DirectX は Microsoft系の製品でしか動作しませんから、Max系の製品を利用している場合には、必然的に OpenGL を利用することになります。
- 入門資料は多々ありますが、経験的に、基本的には書籍を購入するのが良いような気がします。対応範囲が広いためか Web ではまとまった入門資料が少ない気がします。逆に高度な内容は Web が必要になるでしょう。
- iOS や Android で動くグラフィカルなアプリケーションを作るとき、OpenGL を必要とすることがあるかもしれません。
- 2013年現在の各スマートフォン系OSの開発環境では殆ど考慮することなく開発することができますが、ゲームなどの目的を除いて3DCGを扱う場合などは必要になるでしょう。
- 逆にゲームを目的として 3DCG が必要なときは、ゲームエンジンと呼ばれるものを利用するのが主流です。
- DirectX について
- DirectX はゲームなどの開発のためのAPIです。特にゲーム開発専門のフレームワークという訳ではないので、ゲームの設計から学ぶときには、そのための入門書籍や資料などと合わせての学習が必要となります。
- 主なプログラミング言語は C++ ですが、C# から扱うためのライブラリなども有志によって多数公開されています。しかしながら資料や書籍が最も多いのは C++ と DirectX の組み合わせですから、普段マネージドコード( C# や Java)などを利用してプログラミングしている方にとっては、C++ と DirectX 、両方の学習を並行する必要があるので、多少学習への敷居は高いと思います。
ゲームを作りたい
- Unity や Unreal Engine などのゲームエンジンを利用する。
- ゲームを作ることへの入門としては手早いですが、ベクトルを使った3次元物体の操作など、基本的な数学や3DCGの知識は開発にあたって必要です。
- ある程度ゲームを作ることに慣れ、更に 3DCG やゲームの根本から開発、学習したいときは、次の項目のような内容を考えると良いと思います。
- Unity について
- 2013年10月現在では日本語の資料と書籍が多いのは Unity ですから、入門時のおススメは Unity です。
- Unity は Windows系 でも Mac系 でも開発できます。
- Unity には Android や iOS 向けの出力も用意されています。
- Unreal Engine について
- Unreal Engine を利用して製作された商用タイトルなどが Wikipedia にまとめられています。Unreal Engineを採用したゲームソフト一覧 - Wikipedia
ゲームの基本的な作り方から勉強したい
- XNA や DirectX を利用する。
- XNA も DirectX も Microsoft系 の開発環境ですから、Mac系の方の場合はほかの手段を取る必要があります。
- XNA について
- XNA は2013年10月現在では開発の終了が宣言されていますが、基本的なゲームの組み方、3DCGオブジェクトの操作の仕方を学習するにあたって、非常に便利なフレームワークです。
- 利用するプログラミング言語が C# とマネージド言語(ポインタを使わない言語)なので、プログラミングを学習している途中からでも入りやすいと思います。
- DirectX について
- DirectX はゲームなどの開発のためのAPIです。特にゲーム開発専門のフレームワークという訳ではないので、ゲームの設計から学ぶときには、そのための入門書籍や資料などと合わせての学習が必要となります。
- 主なプログラミング言語は C++ ですが、C# から扱うためのライブラリなども有志によって多数公開されています。しかしながら資料や書籍が最も多いのは C++ と DirectX の組み合わせですから、普段マネージドコード( C# や Java)などを利用してプログラミングしている方にとっては、C++ と DirectX 、両方の学習を並行する必要があるので、多少学習への敷居は高いと思います。
3DCG を作りたい
単純に 3DCG を作りたい、というとき、選択肢は非常に広いです。3DCG を製作するには 3DCG モデリングツールを扱う必要がありますが、これには様々な種類があり、特徴も値段も大きく異なります。とても紹介しきれないのでいくつか代表的な例を挙げておきます。
- Autodesk Maya
- Maya(マヤ) は製品レベルの3DCGモデルやアニメーションを製作するためのソフトウェアです。CG業界で最も有名なソフトウェアの内の1つでしょう。ただし非常に高価です。学生版ないし、一部の機能が制限される低価格版の MayaLT などは比較的安価に手に入るので、プロフェッショナルなCGに触れたいときは、それらの購入を検討するのが良いと思います。
- 類似する製品に Autodesk社 の 3dsMax(単にMax) や SoftImage があります。合わせて参照してみてはどうでしょう。
- Maya(マヤ) は製品レベルの3DCGモデルやアニメーションを製作するためのソフトウェアです。CG業界で最も有名なソフトウェアの内の1つでしょう。ただし非常に高価です。学生版ないし、一部の機能が制限される低価格版の MayaLT などは比較的安価に手に入るので、プロフェッショナルなCGに触れたいときは、それらの購入を検討するのが良いと思います。
- Metasequoia
- Metasequoia(メタセコイア) は国産の3DCGモデリングツールです。国内に3DCGを普及させた(偉大で)代表的なソフトウェアだと思います。資料が多く存在するほか、他のアプリケーションと比較してすっきりしたインターフェースが特徴なので、非常に扱いやすいソフトです。
- 無料版が提供されている他、他のソフトウェアと比較してプロ版が安価に販売されています。
- アニメーションやレンダリングの面では他のアプリケーションに1歩引けをとりますが、ゲームやアプリケーションなどで扱うモデルデータを用意するために利用したりするには十分活用できるソフトウェアです。
- Blender
- Blender(ブレンダ―) は Maya のようにモデリングからアニメーション、レンダリングまでも対応できるソフトウェアで、全機能が無料で提供されています。
- プラグインについても有志によって多数開発されていて、プロフェッショナルな用途で利用することも十分可能なソフトウェアです。
- 日本語の資料や書籍についても十分揃っていますし、完全無料で3DCG製作がしたい、という場合には、これしかない、といったソフトウェアです。
- Sculptris
- Sculptris(スカルプトリス) は粘土のように3DCGをモデリングするためのツールです。
- このようなソフトウェアをスカルプとツールと呼びますが、無料で使えるスカルプとツールでは最も有名なソフトウェアの1つです。
- プロフェッショナル版として ZBrush(ゼットブラシ) というソフトウェアがありますが、PS3のゲームに利用される 3DCG などの製作にも利用されているソフトウェアです。