マツド・サイエンティスト研究所

番外報告10 ポリゴンで遊ぶ the 7th of September 1999

the 24th of September 1999 update
the 28th of September 1999 update
the 7th of October 1999 update
the 28th of October 1999 update
the 14th of March 2000 update HuManMDL 公式リリース
the 11th of April 2001 ポリゴンエディタ等、オープン・ソース化)
the 7th of October 2001 ポリゴンエディタ更新、CCYR追加

はじめに

 左の絵は、ポリゴンモデルから作成したアニメーションGIFである。
 もちろん、このGIFは単なるアニメーションなので、見る角度を変えたり、動きを変えたりはできない。
 が、現在のパソコンの能力なら、この程度のクオリティなら、リアルタイムでポリゴンで3DのCGを行う事くらいわけも無い。マウスを使って、自由に視点を変えたり、ポーズや動きを変えることも簡単だ。
 ただし、『簡単だ』と言ったのは、あくまでもパソコンのハードウェア・パフォーマンスからの話であり、現実に自由にポリゴンモデルをリアルタイムで動かすには、高価なソフトウェアが必要だったり、高度なプログラミング技術を必要とした。
 だが、それも過去の話だ。
 ここで、オール・フリーのポリゴン・モデルの作成とリアルタイム表示の方法とソフトウェアの提供を行いたい。
 元々、このソフトウエア、研究報告9の姿勢軌道シミュレータの3D表示の為に作ったプログラム群だが、要望が多いので、別出しにして、フリーウェアとして供給する事にした。
 私自身が作ったプログラムだけでは、ポリゴンモデル自体を作る事はできないが、フリー版の六角大王でモデルを作る事が可能である。つまり、オール・フリーで、今流行のポリゴン美少女を作って、動かして、遊ぼぶことも可能なのだ
 なお、残念ながら、今回、供給しているプログラムは、Windows95/98/MeとWindowsNT(4.0以降)だけで使用可能であり、Mac等の環境では使えない。また、Windows95では、Direct3Dのインストールが必要である。

プログラム名

 私がリリースしているソフトウェアは、
  1. HuManMDL.exe
  2. P3DStage.exe
  3. HmanScr.scr
  4. CCYR.exe
の三つである。
 最初の「HuManMDL.exe」は、六角大王で作ったポリゴンモデルに間接位置等の情報を与え、ポーズや動作を自由に設定できる人体モデル・エディタである。
 二番目の「P3DStage.exe」は、六角大王やHuManMDL.exeで作ったデータを複数個同時に表示するプログラムだ。各モデル毎に位置移動や回転を自由に設定できるので、簡単な劇などができる。
 三番目の「HmanScr.scr」は、「HuManMDL.exe」で作ったモデルを表示するスクリーン・セーバーである。
 最後の「CCYR.exe」については実際に動かしてもらえば内容が判るであろう。
 なお、これらのプログラムには、3D表示用DLLが必要である。

動作環境

 Windows95/98/Me/NT/2000の動作する環境
 Windows95の場合、Direct3Dのランタイムがインストールされている必要がある。その他のWindowsの場合、標準的なインストールならば、ディフォルトで、Direct3Dはインストールされている。

ソフトウェアのダウンロード

 以下に、ダウンロードするファイルの一覧を示す。
ソルトウェア名 ダウンリンク場所 作者 大きさ 備考
六角大王 Vector Software Pack 古島氏 森田氏 231k ポリゴン・エディタ
DirectXランタイム マイクロソフト Microsoft   Windows 95に必要
3D表示用DLL msl3dl12.lzh 野田篤司 102,400 必須
同 ソース mdl12src.lzh 野田篤司 90,112  
3D表示用DLL msl3dl09.lzh 野田篤司 196,017 旧版
人体モデル・エディタ hmanmdl7.lzh 野田篤司 536,576 DLL 付き
同 ソース hmnm7src.lzh 野田篤司 98,304  
プニ系天使 nt027.lzh ねことむ 188,713 女の子のポリゴンデータ
定義ファイル n27p3d.lzh 野田篤司 1,508 上記の定義ファイル
NT036.LZH [そーす] ねことむ 154,920 メイドさん
定義ファイル n36p3d.lzh 野田篤司 1,919 上記の定義ファイル
P3D Stage p3stg004.lzh 野田篤司 65,238 複数モデル同時表示
同 ソース p3st4src.lzh 野田篤司 48,421  
スクリーンセーバー hmnscr3.lzh 野田篤司 61,440 HumanMDL スクリーンセーバー
同 ソース hscr3src.lzh 野田篤司 45,056  
RokToX rktox009.lzh 野田篤司 209,755 六角データのビュア
Xファイル変換
CCYR ccyr1.lzh 野田篤司 531,191 DLL 付き
同 ソース ccyr1src.lzh 野田篤司 73,728  
 必ずしも、上記のファイルが全て必要な訳ではない。巨大なファイルも多いから、以降の説明を読んで、必要なファイルのみをダウンロードすれば良いであろう。
 なお、「プニ系天使」のポリゴンデータについては、作者である「ねことむ」さんの了承を得て、ここに転載している。

とりあえず、ポリゴンモデルを動かしてみよう

HuManMDL インストール編

 Windows 98 以降の場合、標準的なインストールをしているならば、Direct3がインストールされているはずなので、そのまま使える。
 ポーズ動作エディタhmanmdl7.lzh を本ホームページからダウンロードし、解凍するだけでインストールは終了する。

 Windows95の場合は、先に Direct3D のランタイムをインストールする必要がある。このランタイムはマイクロソフトのホームページからダウンロードできるが、上記のように巨大なファイルであり、各種のゲームCD-ROMや雑誌付録のCD-ROMに入っている場合が多いので、その方が得策であろう。なお、Direct3Dに付いてはVer3.0以降については動作確認しているが、現状はVer7.0であり、無理に古いバージョンを探す必要はなく、最新バージョンをインストールしても問題無いと思う。

HuManMDL 実行編

 HUMANMDL.EXEを実行すると、立方体が表示されるウィンドウとコントロール・ウィンドウが表示される。ここで、コントロール・ウィンドウにあるフォルダーを開いたスピードボタンを押し、「start.p3d」を開くと、このページの最初にある男の子のポリゴンが表示されるだろう。さらに、「動く」と書いたチェックボックスをチェックすると動き始めるだろう。リスト・ボックスは最初「歩く(ハーイ)」となっているが、その他に色々と動作を選ぶ事が可能だ。また、表示ウィンドウ上で、マウスの左または右のボタンを押したまま動かすと、表示が大きくなったり小さくなったり、角度が変わったりする。
 可愛い女の子を表示させたければ、「lpg.p3d」を開くと良い。

HuManMDL 応用編・・・可愛い女の子のモデル

 HuManMDL V0.07 から、標準で可愛い女の子のポリゴンデータ LPG がサンプルとして付いて来る。また、 CCYR は BCC と言う女の子ポリゴンが付いている。
 他の可愛い女の子のポリゴンデータを使いたい場合は、「ねことむ」さんの作った「プニ系天使」と「メイドさん」を使えるようにしておいたので、これを使うと楽しい。
 「プニ系天使」は、Niftyに公開されているのだが、インターネットからでは拾いにくいので、作者本人に了承を得て、本ホームページからダウンロードできるようにしておいた。ポリゴンデータだけでなく、定義ファイルもダウンロードして、同じディレクトリに解凍しておく必要がある。「nt027.p3d」をロードすると、動かす事が可能である。なお、サリュート出版局の「六角大王チュートリアルブック2」の付録CD-ROMにもポリゴンデータは載っている。
 「メイドさん」は、「ねことむ」さんのホームページ[そーす]にポリゴンデータ(NT036.LZH)がある他、「六角大王チュートリアルブック2」にも載っている。これと定義ファイルを同じディレクトリに解凍する。なお、[そーす]にあるデータと「六角大王チュートリアルブック2」にあるデータは微妙に異なる。[そーす]からデータをダウンロードした場合は「Nt036N.p3d」をロードし、「六角大王チュートリアルブック2」にあるデータを使う場合には「Nt036B.p3d」を使う。

 また、Humanmdl普及委員会の本部N支部M支部萬8地球店(暫定版) ウッシャ!!げげげー PEACH PIT等に、直ぐ使えるデータが有るので、これを使うのも良い。

HuManMDL 応用編・・・オリジナルなポリゴンで遊ぶ/ポーズや動きを変える

 HumanModelEditorの使い方を詳しく説明されている。
 上は、私がドキュメントを書くのを怠っていたら、三ッ松さんが作ってくれたものだ。。
 私には真似できない丁寧さで、説明しているので、是非、参照してもらいたい。

 なお、Ver 0.04以降ではパーツの自由設定機能が追加されている。
 これを使うと色々なモデルが作れるが、人体を模したモデルの場合、最初の16個のモデルだけは共通にしてもらいたい。そうすれば、「歩く」などの基本的なポーズや動きは再利用できる。
 また、マクロスのように途中のパーツで折れ曲がる様な場合は次のようにする。
 腰(パーツ0)=>胸(パーツ1)=>胸2(パーツ16)=>頭(パーツ2)
この様に胸の途中で折り曲げることもできるし、伸ばした状態なら歩く事もできる。

ポリゴンモデルを複数使ってみよう

P3DStage インストール編

 3D表示用DLL と P3DStage を本ホームページからダウンロードし、解凍したファイルを全て一つのディレクトリに入れる。いっそ、HuManMDLと同一のディレクトリに入れてしまった方が速いかも知れない。

P3DStage 簡単な使い方

 同時に10オブジェクトの表示ができるが、オブジェクトの形式は、P3Dだけではなく、純粋なROK形式やBMPファイルをテクスチャとして貼り付けた平面を使える。
 また、時分割を50まで設定し、各オブジェクトを移動、回転する事ができる。もちろん、動作はスムーズに補完する。デフォルトでは、1分割あたり1秒だが、変更可能だ。(つまり、50秒までと言う事ではない。)
 オブジェクトが、P3Dならば、各分割ごとに「動き」を変えられる。
 コツとしては、最初に使うオブジェクトを全て読み込んで、初期位置に配置する。次に分割数を増やす。こうすると最後のフレームをコピーする。
 さらに、STGと言う拡張子でファイルをセーブできる。

P3DStage 詳細な使い方

 未だ、文書を作っていない。

六角大王用のツール

RokToX.exe フリー版の六角大王ファイルのビュワーに最適

 RokToX.exeは、六角大王のファイルを表示し、Direct3DのXファイルに変換するプログラムである。HuManMDLと似た表示機能を持っており、スムーズ・シェード等にも対応しているが、グループ毎に別オブジェクトにしポーズや動きを付ける機能が無い分、ロード時間が短い。
 RokToX.exe は、オープンソース化以前の古いバージョンの3D表示用DLLが必要なので注意すること。3D表示用DLLrktox009.lzhを本ホームページからダウンロードし、解凍したファイルを全て一つのディレクトリに入れる。

スクリーン・セーバー

HmanScr インストール・設定編

 このスクリーン・セーバー、癖があるので、注意されたい。
 まず、3D表示用DLL をパスの通ったディレクトリにコピーし、HmanScr.scr 本体をWindowsディレクトリにコピーする。
 これで、通常のスクリーン・セーバーを選択するリストボックスの中に「HmanScr」が追加されている。ただし、スクリーン・セーバーを選択したときに小さなWindows内でのデモはできない。フル画面によるデモは可能である。
 リストボックスから、「HmanScr」を選択した後、「設定」ボタンを押すと、「HuManMDL」のような画面が出るので、スクリーン・セーバーが働いたときに使うモデルを指定する。

DLL の新規 機能

madlab3d.dll の新規 機能

 DLL の新規機能は、次の二つがある。  実は、これらの DLL の新規 機能は、私がプログラムしたものではなく、オープンソース化の過程で、モりやまさんが追加したものである。既にオープンソース化の効用が出ているなあ。

プログラムのオープン・ソース化

 HuManMDL 、P3DStage 、HmanScr 及び 3D表示用DLL(madlab3d.dll) のプログラム・コードをオープン・ソースとして、公開する。
 この特徴としては、がある。

プログラムの改修・再配布の条件

BSD ライセンスを参考

 プログラムの改修・再配布等は、基本的に自由であるが、詳細はプログラム・ソースに添付された license.txt を参照してもらいたい。
 この条件は、 BSD ライセンスを参考にしている。大まかに言えば、と言うことだ。

ソースコードの特徴

一般的 C++ コンパイラで構築可能

 ソースコードを見てもらえば、判ると思うが、本プログラムは Win32API しか使っておらず、 MFC や VCL 等は一切使っていない。これは、ごく標準的な C++ コンパイラで構築可能なことを意味する。
 実は以前の HuManMDL のバージョンは、 Borland の C++Builder 1.0J で開発していた。すなわち、そのバージョンの VCL にべったりだったわけである。もし、そのままのプログラムコードを公開しても、既に C++Builder 1.0J は入手不可能であろう。また、最新バージョンの C++Builder 5.0J を使うにしても、微妙に VCL の中身が異なる。
 こう言った事は、 C++Builder だけでなく、 VC++ でも大同小異で起きているはずで、結局、ソフトウェア・メーカーが独自に開発・拡張したライブラリに頼って居ると、メンテナンスが難しく、オープンソースの意味が無くなってしまう。だから、私自身の開発環境を C++Builder 1.0J から C++Builder 5.0J に更新するときに、 VCL の最新バージョンに対応するのではなく、できるだけ純粋な Win32API だけで、構成するようにし、オープンソースに備えた。
 もう一つの大きな要因は Boralnd C++ 5.5J が使用料無料でリリースされたことだ。驚くべきことに C++Builder 5.0J のコンパイル・エンジンである Boralnd C++ 5.5J は、Borlandのホームページから、無料でダウンロードしたり、雑誌の付録CD-ROMに掲載されているのだ。
 Borland C++ がフリーになる以前は、 Windows アプリケーションの開発には高価なコンパイラの購入が不可欠であった。しかし、全くの無料で強力なコンパイラを得られるようになった今、オープンソースのプログラムは、フリーのコンパイラに対応している必要があると思い、 Win32API だけで構成している。

確認しているコンパイラ

 現在、次のコンパイラは次のものである。 それぞれのソースコードには、Borland C++ とC++Builderに対応した「makefile」とVC++に対応した「*.mak」ファイルが添付されている。

Boralnd C++ 5.5J

 Boralnd C++ 5.5Jはフリーであり、以下の入手法がある。
 インストールは、ダウンロードまたはCD-ROMから得たexeファイルを実行して行う。

 次に c:\autoexec.bat の最後に
path "%path%;C:\Borland\Bcc55\bin"
set RESINCDIR=-I"c:\Borland\Bcc55\include"
を追加し、新規に C:\Borland\Bcc55\bin\bcc32.cfg と 言うファイルを作り、内容を
-I"c:\Borland\Bcc55\include" -L"c:\Borland\Bcc55\lib"
とし、さらに新規に C:\Borland\Bcc55\bin\ilink32.cfg と 言うファイルを作り、内容を
-L"c:\Borland\Bcc55\lib;c:\Borland\Bcc55\lib\Psdk"
とする。

 再起動後、Dosプロンプトより、makeできる。

募集! 改良・メンテナンスに協力してくださる方

『こんな機能が欲しい』と思ったら

 HuManMDL 等を使っていて、『こんな機能が欲しい』とか『この操作はもっと簡単にならないか』とか『ここはバグじゃないか?』等と思ったことがあるだろう。 そんな時は、HumanMDL会議室に書きこむのも一つの方法だ。
 だが、せっかく、ソース・コードが公開されているのだから、プログラムの技能を持つ人は、自分で機能を付加したり、デバッグしてもらいたい。 そうやって、できた派生プログラムは、前述のように、自由に再配布できる。
 できれば、そう言った新規機能やデバッグしたコードを私がメンテナンスしている HuManMDL のメインストリームのソースコードに反映してもらえないだろうか? もちろん、先のライセンスで自由が認められている以上、強制はできない。
でも、あなたの意思でメンテナンスに参加を望まれている方は、是非、私に連絡してください。

求む! ソース・コードを維持管理するためのサーバー等の情報

ソース・コードを維持管理する CVS

 CVS と言うツールを知っているだろうか?
 最近、『オープン・ソース』と言う言葉や『 Linux 』と言った『フリー UNIX 』と言う言葉と共に、 CVS と言うツールの名前を聞くようになった。このツールは、ネットワークを使って、多人数でプログラム・ソースの維持管理をするのに便利なツールで、まさにオープンソースのためにうってつけである。
 最大の問題としては、固定 IP のサーバーが必要なことだ。
 これは、ホームページのためのサーバーやメール・サーバーと同じ事である。だから、一般的なプロバイダがホームページ・サーバーをサービスしているように CVS サーバーを貸すサービスがあっても良さそうなものだが、私が調べた限りでは、 ISDN 等で固定 IP する以外に CVS サーバーを持つ方法は無いようである。

CVS サーバーが欲しいよう

 実は、オープンソースの維持管理のために、ネット上に CVS サーバーを構築している。と言うよりは、他の用途の CVS サーバーにこっそりと間借りをしている状態なのだ。
 このサーバーの最大の問題は、通信回線が細いと言う事だ。現在は、アクセスを制限し、小人数でメンテナンスしているから、通信回線の細さは問題にはなっていない。
 しかし、できれば、誰でも CVS サーバーにアクセスできるようにしたいと思っている。その場合、通信回線の容量が問題になるだろう。
 できれば、 HuManMDL 専用の CVS サーバーを構築したいのだが、元々フリーのオープンソースのためなので、お金をかけることもできない。
 そこで、と言った情報があったら、是非教えて欲しいのだが・・・・

関連リンク

Humanmdl普及委員会(本部)
 ほしさんが作ってくれたHumanmdl普及委員会の本部。中にはBBSや可愛い女の子のデータが有る。
Humanmdl普及委員会(N支部)
 三ッ松さんが作ってくれたHumanmdl普及委員会(M支部)。「競馬」「ゴジラvsモスラ」「蛇」等、笑わせてくれるデータが多数あり。
HumanMDL裏マニュアル
 三ッ松さんが作ってくれたHumanMDLの使い方説明書。
Humanmdl普及委員会(N支部)
 モリヤマさんが作ってくれたHumanmdl普及委員会(M支部)。ロケットガールに出てくる「スキンタイト宇宙服」「ハードシェル宇宙服」「SSAオービター」の他、「アポロ宇宙船」や「バルキリー」のデータがある。HuManMDLやP3DStageの他、駄目シミュレータでも遊べるのがミソ。
HumanMDL会議室
 HuManMDLやP3DStageの為に,モりやまさんが作ってっくれた会議室。質問等どうぞ。
実は以前、ほしさんが作ってくれた会議室が有ったのだが、不調で引っ越し。
- Polygonic Layer Project -
 きちさんが作っているページ。ぽりごん綾波の部屋じゃ、無くなっちゃった。  凄いのがJavaでHuManMDLのデータを表示するRokMillだ!!
萬8地球店(暫定版)
 イラストレーターの撫荒武吉さんが作っているページ。
 キャミィと、ずべ子ちゃんのデータあり。見て驚け!!
ウッシャ!!げげげー
 可愛い女の子のデータがある。
PEACH PIT
 ここにも可愛い女の子のデータがある。

著作権・使用条件・改修・転載等の条件

ソフトウェア種別

 フリーソフトウェア

著作権

 本プログラム及び文書は 野田篤司 が著作権を有する。
 「プニ系天使」に関しては、「ねことむ」さんが著作権を有する。

使用条件

 使用料はフリーである。
 HuManMDL,RokToXと3D表示用DLLは再配布・転載も自由である。
 但し、このプログラムの使用により発生した問題やプログラムの出力結果については、使用者の責任において対処し、作者の責任は問わないこと。
 また、これらのプログラムで生成したデータ(ポーズや動きのデータや出力画像)の著作権は、データの作成者に属するものであり、配布等は全て著作権の保持者による。
 なお、HuManMDLに付属するサンプルデータのハッピーボーイのデータは、野田篤司が著作権を保持するものであるが、自由に加工・再配布しても良いものとする。具体的には、ハッピーボーイに付属する動きのデータ(歩くなど)を自作のポリゴン・モデルに添付して、配布する事が、これにあたる。このような場合、著作権保持者である私=野田篤司に断る事無く、自由に再配布可能である。

転載

 HuManMDL,RokToXと3D表示用DLLは再配布・転載も自由である。
 P3DStageは、暫定バージョンであり、再配布・転載を禁止する。
 但し、将来、正式公開バージョンでは、再配布・転載を許可する予定である。

開発環境

 Windows 98SE
 C++Builder 5.0J 等

サポート

 サポートは、以下のホームページ及びeMailにて行う。
  本ホームページ: http://village.infoweb.ne.jp/~anoda/
 但し、暫定公開時点では、理論的・技術的な記述は、本ホームページには、ほとんど無く、事実上、ほしさんが作ってくれたHumanmdl普及委員会のHumanMDL会議室で議論が行われている。

その他

 暫定バージョンであり、バグが残っている可能性がある。
 おかしな挙動をした場合は、下記メールアドレスに連絡して欲しい。
 特に、ハングアップ等クリティカルなバグを発見した場合は、使用環境などを含めて、速やかに連絡して欲しい。
 不明瞭な点が有れば、下記のメールアドレスにて問い合わせて欲しい。

履歴

 1999. 9. 7 HuManMDL.exe V0.03  最初のリリース(暫定公開)
 1999. 9.24 P3DStage.exe V0.01  最初のリリース(暫定公開)
 1999. 9.28 P3DStage.exe V0.02  移動・回転・セーブ機能の追加
 1999.10. 7 P3DStage.exe V0.03  補間アルゴリズムの変更・バグフィックス
 1999.10.28 HuManMDL.exe V0.04  モデルの自由設定
 2000. 3.14 HuManMDL.exe V0.05  公式リリース
 2000. 3.14 RokToX.exe V0.09  追加
 2001. 4.11 HuManMDL.exe V0.06  オープンソース化
 2001. 4.11 P3DStage.exe V0.04  オープンソース化
 2001. 4.11 hmnscr.lzh V0.02  オープンソース化
 2001.10. 7 HuManMDL.exe V0.07  改修
 2001.10. 7 HManSCR.scr V0.03  改修
 2001.10. 7 MadLab3D.dll V0.12  改修
 2001.10. 7 CCYR.exe   V0.01  最初のリリース

 本研究に対する御意見、御感想、御指摘等、ございましたら、メールで送っていただければ大歓迎です。


Copyright (C) 1998-2001 野田篤司