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.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より 改造が楽と思います.
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.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クラスが継承, カスタマイズすることで種々の物体を表示するアプリケーションが 作成できます.別のアプリケーションで使用する物体のテストに使用 します.
LIST1.J3C 〜 LIST15.J3C j3ctutor.html中のリスト
J3DASM のソース j3w_scriptディレクトリ 以下
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を参照してください.
HUMAN2.J3S | 多関節物体のサンプルです. |
HITO_MOV.J3I | 人間の関節動作定義 |
HITO_DEF.J3I | 人間パーツ形状定義 |
HITO_STR.J3I | 人間の構造定義 |
走る二人の人間のサンプル.人間はまずいです.動きのおかしいとこ ろがすぐバレます.ロボットにすればよかった. ポリゴンの人間が二人なら当然「格闘もの」ですが,改造はお任せします.
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座標と は異なりますから注意して下さい.LINE.J3S | 2角形(直線のこと)のデモ |
CUBE.J3S | 回転,移動する立方体を表示するサンプルです. 3次元物体を表示する最も基本的な部分のみで構成されています. 本キットで使用している座標系は,通常3次元グラフィックで用いる奥行きがZ座標の座標系とは異なりますから注意して下さい. |
COLOR.J3S | 色見本です.左上から色番号0から15まで裏は16から31です.色番号0は色が再定義されています. |
MANUAL2.J3S | マニュアルに記載のソースとオブジェクトファイルの関係を示すファイル. |
MULTIPRC.J3S | 複数のプロセスがそれぞれ勝手に文字出力するテキストモードのサンプル. |
TESTCALC.J3S | ”計算もできます”というテキストモードのサンプル. |
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 の改造は簡単でしょう.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% の様にインクルード されているライブラリ群.
LIST1.J3S 〜 LIST13.J3S TUTORIAL.TXT中のリスト
【注】 多くのファイルに分割されているソースが多いですが,別に分割しないで 1本のファイルでもかまいません(誤解されて雑誌に紹介されたことがあるので).
水谷 純(mizutani.jun@nifty.ne.jp)