3D-CG Programing Techinics

(1997/05/02)

 3D-CGプログラミングテクニックを語る!なんて、大それたことは考えてい ません。大体、私自身が初心者みたいなもんですから。あくまで私の経験から開 発に有効と思われる部分を、紹介していこうと。まあ経験則なんで、偏ってると ころもあるかもしれません。

  1. 開発までの経緯
  2. Windowsプログラミングに必要なモノ

ホームページに戻る


1.開発までの経緯

 

1993/12
  バーチャファイターと初めて遭遇したのはこの頃。人間の動きのリアリティ、大変な衝撃でした(技の実用性は別として)。 しかしそのときは一人のゲーマーでしかなかったのです。

1994/5
 アスキー社から ポリゴンモデリングツクール 発売。 3DCGに多少の興味を持っていた私は早速購入。 苦労して人体のポリゴンモデルを造りアニメーションさせると、 DX2-50MHzのマシンでもなかなかの描画速度であることを確認。 パソコンでもリアルタイム3DCGはできるんだと判断しました。 これより自分で人間の階層構造を作って思い通りに動かしてみたい という欲求も強くなった。 けれど、そんなソフトや開発のための情報など皆無にひとしかった。
 当時、 大学研究のテーマとして 「人間とロボットの協調動作を解析する」 を専攻していて、 もし人間の3次元的な動きを3DCGでプレゼンテーションできたら インパクトがあるだろうな、 と思っていました。 というのも工学系の研究発表の時間のうち、イメージづくりに半分、 自分の研究内容についてその半分、成果 についてはそのまた半分と教官から教わりました。 つまりプレゼンでは、どれだけ効果的に「相手のイメージづくりをたすけるか」 が最も重要なのです。その点3DCGの与える仮想現実感は、 有効なプレゼン手法だと気づきました。

1994/10
 ComputerFan 10月号で、 98用3DCGシステムAPEX (日向野保夫作)の特集が組まれる。 3DCG格闘デモ「ベンチファイター」、 高速3DCGシューティング「Death-Wing」には度肝を抜かされました。 そしてAPEXを利用しただけで、 98マシンでもこんなことができるんだ!と。 その当時訳あって大学の研究活動は抑えめだったので、 開発に取り組む時間も十分にありました。 約3週間後、NIFTY-Serveにて初めて、 人体モデルの3DCGアニメータHUMAN を発表することができました。

1995
 HUMANが公開されると、 今までに無い新しいソフトということで予想以上に反響があり、 バージョンアップを繰り返す意欲にもつながりました。 それから2体の人体モデルを並べたTWIMAN、 7軸ロボットを動かすPUMAN へと開発は続いていきます。
MY SOFTS for APEX

1996
 このように、今までの数点のソフトをネット上で発表してきました。 これらは大学の研究の中から要求として生まれた3DCGソフト達でしたが、 残念ながらソフト自体は研究としては成立しませんでした。 とはいえネット上で反響が大きかったので、 学生という割と時間だけは余裕のある身分を利用して、 研究課題と平行して開発を行っていました。 おかげでネット上で活躍するプログラマと知り合いになることができました。 (3D野郎の集団 3DMenに入会する。 現在は名前を改めて、研究集団 UrbanReflection

 現在は、というと既に立派(?)な職業人です。 ソフト開発とはほとんど全く関係ありません。 ではどうしてソフト開発をするのか?
 私はモノをつくるのが好きです。 これからもクリエイティブな仕事をしたい。 絵を描くのも好きだし、イベントは何故か仕切り側にまわされ、 ラジオドラマの脚本なども書いたこともあります。 プログラミングはモノを作り発表し評価されるという 喜びを感じれる趣味かもしれません。 そしてモノを作るということは、 必ず新しい発見や考え方が起きるもので全てが勉強になります。 さらにいいモノを作ろうと試行錯誤することで自分の強みを伸ばしたい。 これって、プログラミングだけでなく、 スポーツほか全てに通じることではないでしょうか?
 今は仕事(生産技術部門=工場設備の導入)に関係ないソフト開発ということもあり、 実効性の無い「勉強のための勉強」に陥る可能性も無いわけではありません。 大学時代のソフト開発が、研究の中から要求されたモノであったように、 これから仕事の中から新しい要求を見いだしていきます。 そして仕事にも役立つようなソフトに昇華できたら、と考えます。

 創造とエンターティメントへの挑戦が始まりました。

1997/1
 研究集団 UrbanReflectionその他多くの方々の協力を得て、 PUMAN Robot-Simulator の開発にとりかかっています。 ロボットアニメータと称していますが、 最終目標は工場全ての製造工程をパソコン上に再現する、 ファクトリー・シミュレータの開発です。 最近では、Tech-Winなどパソコン専門誌にも 紹介されるようになりました。
PUMAN Robot-Simulator for Direct3D
 


2.Windowsプログラミングに必要なモノ

2.1.コンピュータ業界を席巻するMicrosoft。 DirectXとは何か!?そしてDirect3Dとは!?

 ビル・ゲイツ氏の謳う、ゲームマシンとしてのパソコン、 真のインタラクティブメディア(TV電話、TVとDisplayの融合など) の普及のためには、 高速処理・高速大容量通信・高速画像処理・リアルサウンドが必要です。 今のパソコン業界はソフトウェア技術が先行し、 それを追いかけるようにして、 ソフトウェアに対応したドライバをもちつつ 満足いく稼働条件を与えるハードウェアが発売されています。 (例えばWindows95を使うならPentimマシン、はもう常識です)

 つまり逆をいえば、ハードウェアが進化の恩恵を残さず受けるためには、 先行技術としての"Software-Development-Kit"に従った プログラミングを行わねばなりません。
 というわけで、 私がWindowsで3DCGプログラミングをするのに必要なもの、 として挙げるのが、

Microsoft Visual-C++4.0以上
Microsoft DirectX2 SDK以上

 DirectXはWindows95に搭載されたゲーム用APIです。 今までのWindowsAPIと異なりハードウェアに密接した処理を行うことで 高速化を実現しています。 さらにDirectXに対応したアクセラレーションボードも 次々と発売される現状をみると、これからゲームシーンの基軸となる技術 となるはずです。 ゲーム開発キットだからとあなどってはいけません。 コンピュータ関連の最新技術は、最初アミューズメントに応用される ことも多いのです。

 Direct3DDirectX2以降に含まれる機能のひとつで、 3DCG描画をサポートします。 Direct3Dを利用することで、 3Dモデルの高速アニメーションソフト開発が可能になります。 Direct3DにはRetain-Mode(保持モード)Immediate-Mode(直接モード)があって、 本ソフトはRMを利用してプログラミングを行っていますが、 低レベルで3D描画を制御するIMを用いると更に高速化が図られるのでは? と考えられています。 DOSのメモリの制約から逃れたことで、 高精度の移動回転ができるのもWindowsプログラムの利点でしょう。

 Direct3Dは高速描画というだけでなく、 さまざまな描画設定を実現します。テキスチャマッピング、遠近投影、 干渉表現、グーローシェーディング、ライティング効果などなど 挙げればきりがありません。 これら機能の一部をPUMAN 動作時に選択できます。 いろいろとメニューを操作してみてください。
PUMAN Robot-Siimulator for Direct3D
 
 

2.2.プログラマが動き出す97年

 1996年11月。CD-ROM付きパソコン雑誌にて、、、 ついにDirectX3収録される!  技術情報誌として私の購読している Inside-WindowsC MagazineThe-Basicほか Tech-WinなどCD-ROM本に添付されるようになりました。 Microsoftの太っ腹!!

 では、これまでの経緯を簡単に説明します。 DirectX2までは、 Microsoft-Developers-Networkに入会すると定期的に送付される CD-ROMの中に添付されていて、その年会費が7万円以上。 もちろん中には有効な技術情報も多いのですが、まだまだ個人レベルでは 入会に踏みとどまってしまうでしょう。 Internet上からダウンロードも可能なのですが、 80MBものファイルを落とすのに何時間かかることやら。 (大抵、途中で止まってしまうらしい(^_^;)
 実力を評価できるソフトが無い、減価償却の見通しが立たない、 ソフト開発に踏み出せない、ソフトが無い、 といった悪循環に陥っていたのかもしれません。 そんなわけで「DirectXは凄いらしい、 これなら多くのメーカーやプログラマーが面白いソフトを作ってくれるはず!!」 という期待だけ大きくなっていたんですが、 なかなかDirectXなソフトは現れてこなかったんですねえ。
(私の制作したPUMANも作って公開したはいいけれど、 ランタイムモジュールが必要なのでCD-ROM本を購入しインストールする という手間がかかるため、まだまだ反応は薄いのが現状です。 ただいま宣伝活動真っ最中)

 今回のCD-ROM収録により多少事態は好転し、 多くの潜在的なプログラマー達にソフト開発を呼びかけることになりました。 開発の機会を得ることで初めてその実力を評価できるソフトが誕生し、 今以上にユーザーの目に触れることになるでしょう。

 

 

2.3.3Dモデリング

 自作3Dソフトで用いる3Dモデルの制作が結構大変。 Direct3Dは独自の3Dデータ形式X形式 のみ対応していて、他社のモデラのデータ形式を受け付けません。 以下に各社モデラの概要をまとめてみました。

モデラ 形式 概要
SoftImage(Microsoft) X 実売80万円程度。企業用は百数十万円。 バーチャファイターやバーチャロンのモデリングで使用される程の高性能ソフト。 Microsoft製だけあって、当然X形式 を直接出力できる。
3DStudio MAX(Knetics) 3DS 実売価格35万。 プロ仕様の高性能モデラ。 DirectX SDKにコンバータが付属。 ただしコンバータ自体の性能がいま一つらしい。
LightWave(NetTek) LWS 実売16万円。映画・TVで使われるCGでも使われる、 プロ・アマのCGクリエイター御用達ソフトらしい。 恋塚氏制作のコンバータLws2Xで対応可能。
TrueSpace2(Caligari) COB キャンペーン版で実売4万円。TrueSpace/SEは実売15,000円。 インターフェースが親切で、モデルも作りやすい。 かみやん氏制作の UrbanReflectionConverter で対応可能。
PolyEdit(DoGA Project) SUF カンパウェア(\2,000〜)のハイコストパフォーマンスモデラ。 インターフェースとドキュメントが扱いづらいが、 テキスチャやシェーディングのON/OFF、数値入力など、 使い込めば細かいモデリングが可能。 DXF,X形式出力に対応。
六角大王 for Win(S.Furushima,ともNAK) ROK なんとフリーウェア。非常に簡潔なインターフェースで入門者向け。 その扱い安さ故プロでも、六角大王で作ったデータを他のモデラに移して 仕上げを行うほど。ただし面の裏表がなく両面にポリゴンを貼るために、 3Dソフトに移す場合は、前処理が必要。 かみやん氏制作の UrbanReflectionViewerで対応可能。
DXF to X(日向野保夫) DXF フリーのDXFtoXのコンバータ。ソース付き。
EDEN AS VRML 調査不足ですが、 VRML形式からX形式へのコンバータもあるようです。追調査します。

より自分好みの3Dモデルが作成するために、 これからはモデリング技術の習得にかかろうと思います。
モデリング力向上のためいろいろと取り組んでいます。 新しい手法などを載せるページを追加しました。
3D-CG Modeling Technics

 
 

2.4.高速描画をたすけるハードとテクノロジの進化

 これだけ宣伝したいDirect3D!! しかし現状としてその性能に厳しい評価が下るかもしれません。 一番気にかかる点はその「速度」ではないでしょうか? というのも、DirectXに対応したハードが成熟しているとは 言えないからです。強いていえば「発展途上中」です。

などと、書いていたのは1996/11月頃。 しかし1997/4月、とうとうコンピュータ業界に新しい旋風が巻き起こりました。 そのひとつが、 MMXテクノロジPentiumの発表。 もうひとつが 3DCG対応ボード の標準装備タイプのラインナップです。

  1. MMXテクノロジーPentium MMXとはMulti-Media-eXtentionの略、 つまりマルチメディアデータの処理を高速化するCPUのこと。 主に写真のような画像や音声の再生を助ける機能が従来のPentiumに追加され、 内部キャッシュも増えています。 MMX対応のアプリケーションを生成することで、 MMX特有の命令を呼び出します。 Direct3Dによる3D描画もMMX-Pentiumなら幾分高速化されるようです。
    しかし私の注目するのは、MMX-Pentiumの機能と別のところにあります。 この新テクノロジーCPUが一応世に認められ、 さらに消費税アップという追い風もあり、 3月はMMX-Pentiumパソコンが売れまくったそうです。 おかげで高速CPU(133MHz)以上のマシンが普及機の標準レベルとなりました。 CPU処理が高速になればなるだけ、やはり3DCG処理の演算負荷も軽減されるのです。 つまり3DCGソフトの普及を助け、実用のレベルに達しつつあるわけです。

  2. 3DCG対応ボード 3DCG描画を支援する拡張ボードのこと。
    近年の3DCGの活躍はみなさんの知るところでしょう。 勢いのあるゲーム業界に限らず、映画・CM等で頻繁に目にするようになりました。 これは3DCGの普及を意味し、3DCGを個人でも楽しみたいという人々も増えました。 個人で楽しむCGといえばもちろんパソコン。
    Windows用3DCGソフトの高速描画エンジンである、 Direct3D、3DR、RenderWare、OpenGLなどの、 3D描画に特化した処理の一部を3DCG対応ボードに受け持たせることで、 全体の動作を倍以上にあげることが可能です。
    最近では、この3DCG対応ボードが標準装備されたマシンも、 ラインナップに上げられるようになりました。

以下、鋭意制作中!!

参考文献:InsideWindows 3月号

とりあえず転載禁止
Copyright Takashi Horinouchi 1997. All rights reserved.


ホームページに戻る