Bestな3D 開発プログラミング環境とは… OpenGL , DierctX , Unity ...

 

{{DZ_TITLE}}
ちょっと、3D周りの開発ライブラリだったり環境だった李と考えた場合、OpenGL , DierctX , Unity , Unreal Engine等が簡単に思いつきます。
ただ、何が最適なの?他にも最適な物はないの?と言う事を再度考えてみました。

そもそも3D開発の環境は…? どれがいいの…?

2020-05-08-001.PNG メジャーな3D開発はやっぱりOpenGL、DierctX、 Unity辺りだと思います。
Unituは主にゲームに強いと思うのですが、じゃあ、DirectXやOpenGLはもう必要ないのか?
今回私がやりたいことはどれがベストなのか?
と言う事を改めて考えてみました。

ところで、それ以外の3D開発は…と考えたときCADソフトのマクロを使うと言う事も考えた方が良いかもしれないですね。
OpenSCADなんてプログラムでCADデータを作る専用言語ですし。 2020-05-08-002.PNG

で、どれが良いの? 最初に結論を書くと、何をやりたいのか?など状況によるのかと思います。

ゲーム開発には…

2020-05-08-003-Unity.PNG
https://unity.com/ja
どう考えてもUnityが一番でしょう。
Unityとは2D,3Dのゲームを作るため豊富な機能の設定機能と、C#、JavaScriptでの開発ができる環境です。また、ターゲット デバイスも、Windows、Mac、Linuxに限らずWebBrowswer、Android、iPhone、PlayStation4、Oculus QuestのほかにNitendo Switchにも対応しているとの事です。
AR、VRの時代にもってこいの環境という触れ込みもされています。

他の開発環境で、ここまで広範囲のターゲット デバイスが他にないでしょう。

ただ、ゲームでは強いUnityですが、ゲーム以外だと弱いように思われます。標準機能ではDrad & Dropもできないですし、多分ファイル洗濯ダイアログも出せないですし、なので、ツール等を作る場合アドバンテージが減ってしまうと思います。

2020-05-08-004-UnreadlEngine.PNG
https://www.unrealengine.com/ja/
Unreal Engineは名前とは真逆でめちゃくちゃリアルな映像が得意なゲームエンジンです。
使用言語はC++なのでUnityよりか若干ハードルは上がりますが、多分若干で、そこまで難しい事は求められないかと。
対応しているハードもほぼUnityと似ています。
最近FF VIIがリメイクされていますが、多分Unreal Engineを使っています…。なぜかって?Unreal Engineの公式使途のMovieがFF VIIの動画になっていました。

ただ、こちらもユーティリティを作るには向いていないかもしれません。

ユーティリティ・ツール開発には

2020-05-08-004-OpenGL.PNG 賛否があるかもしれませんがOpenGLは良い環境ではないでしょうか?細かいところに手が届きますし。
対応OSはWindows、Mac、Linux、Android、iOSに対応しています。 MacとiOSに関して言えばApple独自の3D Library以外を非推奨という話もありますが、OpenGLは今も普通に動いています。

OpenGLですが。いろいろ問題点もあり

  • 枯れた技術のわりにまとまった良質な情報が少ない
  • 色々な環境で動くため、探した情報が自分の使えない情報の場合が多々ある
  • GUIを作るツールを自分で選定する必要があり、それ自体も結構ハードルが高い。
    GUIはなかなか良い環境無いですね。Microsoftが一番と思ってしまいます。
  • Unityの様に簡易なライブラリがなく、点、線、面を基本的には自分で定義して書いていくようになります。
  • 使用言語の選定も問題で、C/C++なら完全にいろいろできますが、難しい、Pythonではパフォーマンス点で問題になる部分もあるかもしれませんし、機能面で問題になる可能性があるかもしれません。

2020-05-08-005-DirectX.PNG
DirectXも有力な候補ですが、一番の欠点はWindowsでしか動かない事。Wineとか使えばLinux、Macでも動きますし、そこそこのパフォーマンスを発揮しますが…今更WindowsのためだけにDirectXを学びなおすのは…と思ってしまう気持ちもあります。

ただ、開発は楽で、マイクロソフトが作った整理された環境で開発ができ、情報も一番豊富でしょう。 素早く作りたいときにはお勧めです。

CADデータ作成だったり、特殊なデータ生成系は

2020-05-08-002.PNG
このあたりのCADはすべてFreeですしおすすめです。

  • Brender
    https://www.blender.org/
    GUIが若干とっつきずらいですが、パワフルなCADです。
    プラグインも簡単に作成でき、Scriptモードでは対話操作の内容がScriptで表示されます。言語はPythonです。
  • FreeCAD
    https://www.freecadweb.org/
    もともと、商用のうん十、うん百万円するCATIAというもののクローンです。
    マクロはBlenderと同じくPythonで組みます。
    最初の使い方さえ勉強できればプログラムある程度簡単にできると思います。何せ画面に操作履歴でマクロが表示されているので。
  • OepnSCAD
    https://www.openscad.org/
    プログラムでCADのデータを表現しようと言う試みです。
    初心者でも簡単に構造を組めるように工夫されています。

余談ですが、私もThingiversというサイトにて、OpenSCADを使った作品を公開しています。
いずれもLoginして頂ければOpenSCADが無くてもブラウザでCADデータを作れます。 2020-05-08-007.PNG

  1. 1つは点字のタグを作成するもの、
    CADの知識が無くても簡単に点字のタグが作成できます。
    https://www.thingiverse.com/thing:1427031
  2. もう1つは糸人間の様な物のポーズを簡単に作れるもの。
    https://www.thingiverse.com/thing:1460348

どうでしたでしょうか?

3Dの開発環境で意外と多いですよね。
また、これは一例だけで他にも色々とありますし、当然私がチェックできていないものも多いと思います。

今回私はOpenGLをやらなくてはいけないかも…とちょっと焦っています。 情報量も少なく難易度が少高いですが、まあ、気長に頑張ります。

PythonをPandasを学びたいなら

Python - Pandas徹底解説

外部サイト
↓プログラムを学んでみたい場合、学習コースなどもおすすめです!

おすすめ記事

Linux ( raspberry pi ) USBを文字化けなくmountする(自動も対応)
Linux ( raspberry pi ) USBを文字化けなくmountする(自動も対応)
OBJファイルにPythonでテクスチャ貼りたいですか?
OBJファイルにPythonでテクスチャ貼りたいですか?
URL解析、接続 - Python徹底解説
URL解析、接続 - Python徹底解説
地理情報
地理情報
気象庁 台風位置表 をpython foliumで可視化する
気象庁 台風位置表 をpython foliumで可視化する
Django エラー『TemplateDoesNotExist』対策
Django エラー『TemplateDoesNotExist』対策
Supponsered

Comments

comments powered by Disqus