社員技術ブログ

【社員技術ブログ】3D CG (3次元コンピューターグラフィックス) システム開発にてデータを制す

こんにちは。ワイドソフトデザインのY.Mです。

3DCGシステム開発に関してネタが続く限り書きます。
そして、今回は3DCGシステム開発にてキーとなるデータに関するお話です。
結論から申し上げると、データを制すものは3DCGシステム開発を制すのです。

3DCGシステム開発におけるデータとは?

以前の記事にて「3DCGの基になるデータについて」のお話をいたしました。
そこで述べた通りデータと言えどもデータ形式は様々で、
業種業界やソフトにより扱えるものも違い何が何やらよく分からんとお困りのことはないですか?
CGデータの中間形式だけでも、.fbx、.dae、.3ds、.dxf、.obj(.mtl)、.stl、.ply、などなど。
CGデータに限らないと、.txt、.xml、.csv、.jpg、.bmp、.png、.ini、.bat、.pdf、などなど。
それぞれに役割があり上手に使いこなし活用したいものです。

※以前の記事はこちら

https://test-www.widesoft.co.jp/technology/4335

3DCGシステム開発におけるデータの活用

以下に実際に活用している例を挙げていきます。
あくまで私の好みもふんだんに含まれますのであしからず。

①OBJファイル

3Dデータ(形状など)を保持する中間フォーマットの1つです。
主に地形のデータのやり取りで見かけることが多く、
マテリアルデータ(.mtlファイル+.png等画像ファイル)と対になっています。
バイナリデータよりアスキーデータの場合が多く
中身をテキストエディタで確認でき何と言っても扱いやすい形式です。
確認すると分かるのですが、objファイル内にmtlファイル名の記述があるのです。
エクスプローラー上でobjとmtlのファイル名だけをうっかりリネームしてしまうと、
この関連が切れてしまいシステムで正しく扱えないトラブルの原因になります。

②FBXファイル

3Dデータを保持する中間フォーマットの1つです。
形状やらアニメーションやら様々な情報を含む形式のため重宝されています。
とりわけ高性能、高精度なコンテンツ制作にかかせない2大ゲームエンジンの
UnrealEngineやUnityにおいてもこの形式が標準となっています。
一昔前は3ds形式がよく使われていたのが懐かしい。
この形式はバイナリで仕様も非公開のため、扱うにはSDKのライブラリを使う必要があります。
逆に言えば、このSDKさえ使えばソフトによっては不都合な中身を編集できてしまうのです。
大手CADソフトのオリジナル形式を扱うSDKは有償なのが当たり前のところ、
素晴らしいことに無償なのです。

③JPG/PNG/BMPファイル

画像のデータを保持する汎用フォーマットです。
他にも、gif、tifなど様々ありますが、この3つがメジャーではないでしょうか。
3DCGにおけるイメージのテクスチャや凸凹のバンプマップ、法線マップ、
簡易なオブジェクト選択(バックバッファーピック)に使うIDカラーマップ
からシステムメニューのアイコン画像まで、何かと使われています。
ペイントソフト(Photoshop、Gimpなど)を使うと色々な加工ができます。
例えば、GimpにNormalmapのプラグインを入れると
テクスチャ画像から法線マップが簡単につくれてしまうのです。
プログラムでも.NET標準のグラフィックスクラス(Graphics)にて
RGBAを直接編集してレタッチやら画像解析など色々なこともできてしまうのです。

④XMLファイル

文章の見た目や構造を記述するためのマークアップ言語の一種です。
HTMLの方が馴染みがあるかもしれませんが、XMLと同じマークアップ言語のひとつです。
この形式は3DCGに限らずシステム開発のデータ読み書きで役に立ちます。
アプリケーションのプログラム内部データ(クラスのインスタンス)を
そのままファイル出力(シリアライズ(Serialize))できます。
また、その出力したファイルは読み込む(デシリアライズ(Deserialize))と
内部データを復元し再開できる優れものです。
実際の開発でよく使っています。

⑤CSVファイル

テキストデータの形式の一つで、項目をカンマ「,」で区切って列挙したものです。
この形式も3DCGに限らずシステム開発のデータ出力で役に立ちます。
カンマ区切りのテキストデータを出力しさえすれば、
Excelの表形式で確認することができるのが特徴です。
Excelで開けば後はフィルタかけたりなんとでも活用できます。
注意したいのは、カンマを含む文字列はダブルコーテーションで括る必要があることです。
意図せず区切られてしまいますから。「×××,○○○,”カンマ(,)を含む文字列”」

3DCGシステム開発におけるデータの活用まとめ

今回紹介したデータ形式は一部ですが、
このように中身を理解して使いこなせると色々なことができてしまうものです。
よく分からないから知らないで済ませず、1つ1つものにしていくことで
できることも増えていきます。
3DCGシステム開発に限らずシステム開発全般に言えることで、
なんならシステム開発に限らず働く上で必要なことでもあります。
3DCGシステム開発においてはこのデータを自由自在に扱えるとかなりの強みになるのです。
だからこそ、データを制すものは3DCGシステム開発を制すのです。

そんな3DCGシステム開発の世界に興味を持っていただければ幸いです。

関連記事

TOP