■ FAQ
![]() Q: 「ゲーム用ミドルウエア」が外販(またはフリー公開)されているのはナゼですか? A: ゲームの核となる部分(特に3DCG)を一から開発するのは、かなり大変です。ミドルウエアを購入した方が安上がりなのであれば、そのように考えるのも無理ありません。 ![]() Q: 「ゲーム用ミドルウエア」を自社開発している会社があるのはナゼですか? またその会社がミドルウエアを外販しないのは、どうしてですか? A: その会社が開発&販売するゲームアプリに、会社独自の技術を盛り込みたいからです。また自社開発であれば、バグ修正も手早く出来るというメリットもあります。 なお外販しないのは、独自技術を他社に使わせたくないからでしょう。 ![]() Q: RoundEngine は「目的別ゲーム用ミドルウエア」だそうですが、その目的って何ですか? A: 「サブディビジョン・データ活用型 ゲーム用ミドルウエア」と銘打ってるように、3DCGデータ作成者(デザイナー)が作った Catmull-Clark サブディビジョン・データを、ポリゴン化しないでゲームに組み込むのが目的です。 ![]() Q: 「Catmull-Clark をポリゴン化しないでゲームで使う」って、具体的にはどういうこと? A: Catmull-Clark を曲面化するということです。曲面はポリゴンより入力データ量が少なくて済むので、オンラインでも形状データを(ゲームアプリに)サクサク送れます。 ![]() Q: 「入力データ」って何? A: オフラインゲームであれば「ファイルデータ」、オンラインゲームであれば「サーバから送られてくるデータ」、ということになります。入力データ量が少しだと、メディア内のデータ量やネットの通信量が少なくて済むわけです。 特にオンラインの場合、通信量が少ないということはゲームのリアルタイム性を損なわないということ、になります。 ![]() Q: 曲面のメリットって、他には? A: ゲームキャラが遠くから近くに迫ってくる場合を考えてみましょう。遠くにいる時は小さく見えるので、ポリゴン数が少しでも目立ちません。しかし近くまで来ると、多数のポリゴンにしないと、輪郭がカクカクするでしょう。しかし常に多くのポリゴンを使うと、ハードウエアに負荷を掛けるので遅くなります。 そのため同じキャラに対し、「少ないポリゴン数バージョン」と「多数のポリゴン数バージョン」を作り、両方をゲームに入れておくことがあります(LOD という技術)。 しかし LOD を行うとさらに入力データが増えます。曲面を使うと、「ポリゴン変換」時に任意のポリゴン数とすることが出来るので、入力データは1個だけで済みます。 ![]() Q: RoundEngine や ACC で、最近の GPU が必要なわけは? A: すべての処理を CPU で行うのであれば、GPU は必要ありません。しかし GPU を使った方が、処理スピードは速いでしょう。ただしその時は OpenGL (ES) 3 や DirectX 10 以上をサポートした GPU が必要となるので、必然的に最近の GPU となります。 ![]() Q: GPU と使うとナゼ速い? A: プログラムには、超並列処理を使うとものすごく速くなるモノがあります。 RoundEngine や ACC の「ポリゴン変換」は超並列処理のコードにすることが可能で、また GPU は超並列処理用のチップでもあるので、結果として速くなります。 ![]() Q: 「 C++用 DLL」の "BxPccSDK" をソース非公開としているわけは? A: 大人の事情です。 ![]() Q: 「C# ソース」の "BxPcsSDK" を自分で C++ に移植したら、「 C++用 DLL」の "BxPccSDK" のスピードになりますか? A: 「C# ソース」の "BxPcsSDK" に さらに独自の高速化処理を加えたモノが、「 C++用 DLL」の "BxPccSDK" です (プログラム言語も違いますが)。 そのため単純に C++ へ移植しても、おそらく同程度のスピードにはならないでしょう。 |