[HOME] [J3Wの紹介]

サンプルファイル解説

3次元ポリゴンアニメーションキット
(5/16/99)
Copyright (c) Jun Mizutani 1996-1999

J3Wに同梱されているサンプルファイルの簡単な紹介です. プログラムの詳細は *.j3c, *.J3S 中に詳細なコメントがありますので 参照してください. *.J3Dファイルはアセンブル済み実行用ファイルです. *.J3Iはインクルードファイルです.

【注】Unix版ではファイル名はすべて小文字にしています.

サンプルソースは自由に使用して頂いてかまいません. 面白いものができたら公開して頂けると幸いです.


実行形式オブジェクトファイル


flight.j3d フライトシミュレータ
pose.j3d 人体モデルアニメーション
frame_2.dat 人体モデルアニメーションのデータ
frame_3.dat 人体モデルアニメーションのデータ 走る人間
human2.j3d 走る二人の人間のサンプル
color.j3d 色見本
cube.j3d まわる立方体
line.j3d 直線のサンプル
manual2.j3d マニュアルに記載のサンプル
multiprc.j3d マルチプロセスのテスト
testcalc.j3d 計算
hand.j3d 左手がニギニギします.objview.j3sにリンクして作成
falcon.j3d objviewで作成したF-16
ball.j3d objviewで作成した
taco.j3d objviewで作成したタコ
tubo.j3d objview(j3c版)で作成した回る壷

J3Wから実行できます.


J3C のソース j3c_scriptディレクトリ 以下


FLIGHT ディレクトリ

FLIGHT.J3C フライトシミュレータソース mainクラス
FALCON02.J3C main に継承される自機の形状クラス
F_SCENE.J3C 風景を構成するクラス群
AIRSHIP.J3C 飛行船の形状クラス
F_ENEMY.J3C 飛行船を継承した敵機クラス
F_CAMER.J3C 視点クラス
WINDGEN.J3C 風力発電所の形状クラス
F_CANON.J3C 弾のプロセス
F_GLOBAL.J3C グローバルに使用する定数,関数
F_DISP.J3C グラフィック画面への文字出力

j3w_script/flight を J3Cに移植したソース.空間内に存在するすべての 物体はクラスのインスタンスとして存在している.j3w_script/flightより 改造が楽と思います.

LIB ディレクトリ

EMPTY.J3C 何もしない空のクラス
SSOLID.J3C 単純な形状を生成 library
ZSOLID.J3C Z軸方向に伸びる形状生成 library
XSOLID.J3C X軸方向に伸びる形状生成 library
KEY.J3C キーコード名定義 library
COLOR.J3C 色名の定義 library
EYE.J3C 視点クラス
ESCKEY.J3C ESCキー終了チェッククラス
REVOLUTN.J3C 回転体生成クラス
FPS_POS.J3C 表示速度計算クラス

flight, objview中で継承されているクラス定義,ライブラリ定義など. クラス定義は継承,再定義してカスタマイズして使用します.

OBJVIEW ディレクトリ

OBJVIEW.J3C オブジェクトビューアメインクラス
MODEL.J3C 形状指定用のクラス
FALCON02.J3C F-16クラス
TACO.J3C スキンと拡大縮小を使用した例(タコクラス)
LHAND.J3C 左手クラス
WEED.J3C 海草クラス
BODY.J3C J3WのPOSEで使用した人体を移植したクラス
TUBO.J3C 回転体で作成した壷クラス

j3w_script/objview と機能的に同等なJ3Cによるプログラム. taco.j3c は複雑なクラス継承と物体の階層構造の例となっています. 表示する物体のクラス定義を model.j3c の modelクラスが継承, カスタマイズすることで種々の物体を表示するアプリケーションが 作成できます.別のアプリケーションで使用する物体のテストに使用 します.

TUTORIAL ディレクトリ

LIST1.J3C 〜 LIST15.J3C j3ctutor.html中のリスト


J3DASM のソース j3w_scriptディレクトリ 以下


POSE ディレクトリ

POSE.J3S 人体モデルアニメーション メイン
BODY_DEF.J3I 人体モデル形状定義
BODYPROC.J3I 人体モデル構造定義
BODY_MOV.J3I 人体モデル動作定義
POSE_KEY.J3I キー入力処理
CM_MEM.J3I フレームデータ管理
POSE_CAM.J3I 視点のプロセス

人体アニメーションの作成と再生を行うアプリケーションです. フレームと呼ぶ「人体の姿勢」を複数作成して,それらの姿勢を滑らかに 補間しながら再生する機能を持っています.

pose.j3dを起動して, 2 を押した後,Mを押してください.

サンプルのアニメーションが起動します. ESCキーで終了します.使用法の 詳細はpose_man.txtを参照してください.

HUMAN ディレクトリ

HUMAN2.J3S 多関節物体のサンプルです.
HITO_MOV.J3I 人間の関節動作定義
HITO_DEF.J3I 人間パーツ形状定義
HITO_STR.J3I 人間の構造定義

走る二人の人間のサンプル.人間はまずいです.動きのおかしいとこ ろがすぐバレます.ロボットにすればよかった. ポリゴンの人間が二人なら当然「格闘もの」ですが,改造はお任せします.

FLIGHT ディレクトリ

FLIGHT.J3S フライトシミュレータソース main
WINDGEN.J3I 風力発電所のイメージ
FL_DISP.J3I グラフィック画面への文字出力
FL_CAMER.J3I 視点
FL_ENEMY.J3I 飛行船の運動
FL_SCENE.J3I 風景
FLIT_KEY.J3I 入力キー処理インクルードファイル
FALCON02.J3I 自機の形状定義
AIRSHIP. J3I 飛行船の形状定義
FL_CANON.J3I 弾のプロセス
FL_MOVE. J3I 自機の操縦

自機がF-16ファルコンであるフライトシミュレータ風プログラムです. 風力発電所と視点に多関節オブジェクトを利用しています.

実行が始まるとオートパイロットモードとなっています.MキーとESCキー以 外の入力を受け付けない状態になっています.また視点は空中に固定された 位置にあります.Mキーを押してマニュアルモードに変更するとキー操作で きるようになります.カメラの位置の変更も可能です.

Fキーで位置固定の視点に切り替わります. カーソルキーとK,Lキーで方 向転換,Sキーでキャノン発射,ESCキーで終了します. 詳細は FLIGHT.J3S とFL_xx.J3Iを参照してください.また飛行速度は意識的に遅くしてあります. FLIGHT.J3SとFL_xx.J3Iを改造することによって自由にカスタマイズできます.

フライトシミュレータ風というのは,重力加速度などの物理モデルがまった くインプリメントされていないので,単なる空間移動プログラムになってい るためです.はじめは敵もF-16で実際の速度に近いものにしましたが,せっ かくモデリングしたにもかかわらず一瞬で通り過ぎてしまい,まったくつま らないものになってしまいました.

このサンプルでは撃墜の対象が飛行船という,非常に卑怯なシミュレータで す.撃墜した場合,自機の速度が得点に加算されます. 操作法はテキストウインドウに簡単に表示されます.

FLIGHT.J3Sを改造してまともフライトシミュレータにして下さい.

スクリーンに表示される座標は航空力学で用いられる座標系(本キットで使 用している座標系)で,通常3次元グラフィックで用いる奥行きがZ座標と は異なりますから注意して下さい.

SAMPLE ディレクトリ

LINE.J3S 2角形(直線のこと)のデモ
CUBE.J3S 回転,移動する立方体を表示するサンプルです.
3次元物体を表示する最も基本的な部分のみで構成されています. 本キットで使用している座標系は,通常3次元グラフィックで用いる奥行きがZ座標の座標系とは異なりますから注意して下さい.
COLOR.J3S 色見本です.左上から色番号0から15まで裏は16から31です.色番号0は色が再定義されています.
MANUAL2.J3S マニュアルに記載のソースとオブジェクトファイルの関係を示すファイル.
MULTIPRC.J3S 複数のプロセスがそれぞれ勝手に文字出力するテキストモードのサンプル.
TESTCALC.J3S ”計算もできます”というテキストモードのサンプル.

OBJVIEW ディレクトリ

OBJVIEW.J3S オブジェクトビューアソース
OBJ_KEY.J3I 入力キー処理インクルードファイル
DESIGN.J3I 形状定義ファイルのインクルード用
D_HAND.J3I DESIGN.J3Iをリネーム
LHAND.J3I 左手の形状定義
D_FALC02.J3I DESIGN.J3Iをリネーム
FALCON02.J3I F-16の形状定義
D_BALL.J3I DESIGN.J3Iをリネーム
BALL.J3I 回転体の形状定義
TACO.J3I スキンと拡大縮小を使用した例(タコと昆布)
D_TACO.J3I TACO.J3I用のDESIGN.J3Iをリネーム

物体の形状を確認するためのビューア.物体を回転させて見るというのでは なくキー操作による命令を受けて物体が自分で回転移動します.ラジコンの 感覚です.

形状定義したファイルをDESIGN.J3Iにインクルードして,以下のように実行.

      >J3DASM OBJVIEW.J3S
      >J3W OBJVIEW.J3D

BALL.J3D, HAND.J3DはDESIGN.J3Iに設定してアセンブルした後にOBJVIEW.J3D をリネームしたものです.

視点は原点にあります.物体の位置を調節して中心から20mの位置にある ため,大きな物体は最初に移動しないとみえないので注意してください. OBJVIEW.J3S の改造は簡単でしょう.

LIB ディレクトリ

DEFCOLOR.J3I 色名の宣言
KEY_TAB.J3I 汎用キー処理テーブル設定
ESCAPE.J3I ESCキーで終了
REVOLUTN.J3I 回転体の生成
ACT_KEY0.J3I 入力キー処理のテンプレート
LIB00002.J3I 汎用ライブラリ 3角柱〜8角柱などの形状定義用
LIB0002Z.J3I 汎用ライブラリ 3角柱〜8角柱などの形状定義用(Z軸)

他のサンプルファイルから %../LIB/LIB00002.J3I% の様にインクルード されているライブラリ群.

TUTORIAL ディレクトリ

LIST1.J3S 〜 LIST13.J3S TUTORIAL.TXT中のリスト

【注】 多くのファイルに分割されているソースが多いですが,別に分割しないで 1本のファイルでもかまいません(誤解されて雑誌に紹介されたことがあるので).

水谷 純(mizutani.jun@nifty.ne.jp)