ver.5.60の特徴
1) テクスチャをサポート(10命令追加 j3w,j3c,j3dasm)
2) 前後面クリップ位置の変更機能(2命令追加 j3w,j3c,j3dasm)
3) シェーダモデル2.0によるPhongシェーディング
4) 5.51のバグ修正多数
5) グラフィック画面上の文字表示改善
6) ドキュメントの修正
7) テクスチャ関連サンプルの追加
8) DirectX9 を使用。d3dx9.dll をインストールする必要はありません。
9) WindowsXP SP2以降、WindowsVistaでは j3w-5.60単独で動作します。
10) 5.51のバグ修正多数
11) J3W 4.51、6.50と上位互換。
12) 動作中にフラットシェイディングとグーロシェイディングを切り替え可能。
空間内の物体がすべてCPU(コンピュータ)を持っているような世界を 考えて見てください。 地面も車も飛行機もそれぞれ異なるCPUによって コントロールされています。物体の動作はCPUが実行するプログラムによ って決められています。
J3W では、CPU が主役で物体は CPU がプログラムにしたがって生成し ます。CPUが「10秒間で100m前」という命令を実行すると、物体が10秒 間で100m前進します。同時に別の物体の別のCPUが「1秒間で360度回転」 という命令を実行すれば、その物体はそこで1回転します。同様にいくつでも CPUを用意すれば、その数の物体を独立して運動させることができます。
J3W は3次元グラフィックライブラリではありません。物体の形状と動き、 その速さ等を定義したファイルを作成し実行することによって、本キット単 独で自由に3次元ポリゴンアニメーションを構築することが可能です。
オブジェクトファイル(拡張子がJ3D)をソースファイルに使用する言語と 独立させるため、オブジェクトファイルを作成するアセンブラ(j3dasm.exe) とオブジェクトファイルを実行するアプリケーション(j3w.exe)と分けてあ ります。さらにJAVA風の言語コンパイラ(j3c.exe)によってアセンブラの 入力ファイルを作成できます。
まず、解凍されたディレクトリ(フォルダ)の j3w.exe を起動して、NEWボタンを押して ファイルオープンダイアログから flight.j3d を選択して下さい。STARTボタンを押す と簡単なフライトシミュレータが実行されます。
実行が始まるとオートパイロットモードとなっています。MキーとESCキー以 外の入力を受け付けない状態になっています。また視点は空中に固定された 位置にあります。Mキーを押してマニュアルモードに変更するとキー操作で きるようになります。Y, U, H, G, J, N, T キーでカメラの位置が変わります。 Fキーで位置固定の視点に切り替わります。 カーソルキーと K、L キーで方 向転換、S キーでキャノン発射、ESCキーで終了します。 詳細は flight.j3c を参照してください。 また飛行速度は意識的に遅くしてあります。
また、pose.j3dは人体モデルのアニメーションのサンプルです。人体モデル のポーズを作成してアニメーションとして再生させ、ファイルに保存する事 ができます。 pose.j3dを起動して、 2 を押した後、Mを押してください。 サンプルのアニメーションが起動します。 ESCキーで終了します。使用法の 詳細はpose_man.htmlを参照してください。
提供するj3w560.zipは、以下のファイルがパックされています。
j3w.exe | 3次元グラフィック実行ファイル |
j3dasm.exe | アセンブラ ( WIN32コンソールプログラム ) |
j3c.exe | コンパイラ ( WIN32コンソールプログラム ) |
j3cc.bat | コンパイル、アセンブルを連続して実行するバッチファイル |
readme.txt | J3Wの使用法(このファイル) |
history.txt | J3Wの歴史 |
sample.txt | サンプルソースの説明 |
j3dフォルダは 各種サンプルのJ3W用実行形式ファイル。
*.j3d | 各種サンプルの実行形式ファイル |
list*.j3d | j3ctutor.htmlのリストの実行形式ファイル |
list_*.j3d | tutorial.htmlのリストの実行形式ファイル |
tex_*.j3d | texture.htmlのリストの実行形式ファイル |
frame_2.dat | 人体モデルアニメーションのデータ 空手 |
frame_3.dat | 人体モデルアニメーションのデータ 走る人間 |
*.bmp | テクスチャのビットマップファイル |
HTMLフォルダは HTMLで書かれたオンラインドキュメント。
画像ファイルは PNG 形式です。
index.html | J3Wの紹介と総目次 |
tutorial.html | J3Wプログラミング入門 |
j3w_m??.html | J3Wリファレンスマニュアル |
j3ctutor.html | J3Cプログラミング入門 |
j3c_spec.html | J3C言語の詳細 |
j3c_func.html | J3C組み込み関数の解説 |
pose_man.html | 人体アニメーションpose.j3dの使用法 |
j3c_pngフォルダ | j3c_spec.htmlの画像ファイル |
tex_sampleフォルダにはテクスチャサンプルのソースがあります。
tex_*.j3c | テクスチャサンプルのソース |
j3c_scriptフォルダには以下のサンプルのソースフォルダがあります。
flight | フライトシミュレータのソース |
objview | オブジェクトビューアのソース |
test | j3c のテスト用ソース |
lib | 他のサンプルから使用されるライブラリ |
tutorial | j3ctutor.html内のソース |
j3w_scriptフォルダには以下のサンプルのソースフォルダがあります。
pose | 人体アニメーションエディタのソース |
human | 人間が走るアニメーション |
flight | フライトシミュレータのソース |
sample | 簡単なサンプルのソース |
objview | オブジェクトビューアのソース |
lib | 他のサンプルから使用されるライブラリ |
tutorial | tutorial.html内のソース |
blender フォルダにはblender用のエクスポートスクリプトと出力ファイル
を確認するビューアの j3c ソースがあります。
blendview.j3c | blenderが出力するblend.j3cを使うデモ |
j3cExporter.py | blender に組み込むエクスポート用Pythonスクリプト |
WindowsXP SP2以降、WindowsVistaではj3w560.zipを解凍するだけで、他に必要なものはありません。
j3w560.zip のアイコンを右クリックして「すべて展開」
を選択すれば解凍できます。解凍された j3w560フォルダ を適当なところに移動して
ください。後の説明では Cドライブ直下(C:\j3w560)にあるものとして説明しています。
ドラッグアンドドロップでもj3c.exe、j3dasm.exeは使用できますが、 j3cプログラムを作成してコンパイル、アセンブルするにはコンソール(DOSプロンプト) から使うほうがエラーメッセージを確認できます。解凍したフォルダを コマンド 検索パスに追加しておくと便利でしょう。
パスを設定するには、コンピュータのアイコンを右クリックしてプロパティを選びます。
左側の「システムの詳細設定」を選択します。
環境変数のウィンドウの下部の「システム環境変数」ボタンを押します。
システム環境変数リストの Path をクリックして、編集ボタンを押します。 表示されたダイアログで、設定済みのPATH環境変数の後ろにセミコロンに続けて J3Wをインストールしたフォルダ名を ;C:\j3w560 のように入力してOKボタンを 押します。
パスを設定するには、デスクトップの左下のスタートから、次のようにボタン またはタブを選んでいきます。
マイ コンピュータ → プロパティ → 詳細設定 → 環境変数
環境変数のウィンドウの下部にシステム環境変数が表示されます。そのなかの Path をクリックして、編集ボタンを押します。 表示されたダイアログで、設定済みのPATH環境変数の後ろにセミコロンに続けて J3Wをインストールしたフォルダ名を ;C:\j3w560 のように入力してOKボタンを 押します。
アンインストールは、単に解凍したフォルダを削除してください。 レジストリ等は変更していません。
起動するとファイルオープンダイアログが開きます。ここで*.J3D を選択して下さい。 STARTボタンを押すと実行されます。
NEWボタン | 新しくxxx.J3Dファイルを読み込みます。 |
STARTボタン | J3Dファイルを実行/停止します。 |
QUITボタン | J3W を終了します。 |
Full Speed | 高速モード。 |
Flat Shading | フラットシェイディングを指定します。 |
Use Shader | Phongシェイディングを指定します。 |
オブジェクトファイル(xxx.J3D)の保存してあるフォルダーでxxx.j3dを ダブルクリックすると[ファイルを開くアプリケーションの選択]ダイアログボックス が開きます.ここで[ファイルを開くときはいつもこのアプリケーションを使う] チェックボックスをチェック、[その他]ボタンを押して、j3w.exeを選択して、 [開く]ボタンを押すことで *.j3d のダブルクリックで常にj3w.exeが起動します。 ここでSTARTボタンを押すとオブジェクトファイルが実行されます。
xxx.j3dをJ3Wのアイコンにドロップして起動することもできます。 またはフォルダウインドウの表示/オプション/ファイルタイプから 拡張子j3dを追加してj3w.exeを指定することもできます。
実行時にオプションとして FullSpeed を指定すると高速で動作しますが、 CPUの負荷が大きくなります(ver.4.44以前のデフォルト動作)。ver.4.45から デフォルトでは、高速なマシンの場合に発生する無駄な描画を抑制することで CPUの負荷を低くしています。Full SpeedをチェックするとFPS の値が大きく (書き換えが高速)なることが確認できます。
シェーダモデル2.0以降が使用できる環境ではデフォルトで Use Shader はチェック されて起動します。ピクセルごとの Phongシェイディングが行われ、スペキュラー (反射)がきれいに表示されます。シェーダモデル2.0が使えない場合はDirectXの 固定機能が使われ、Use Shader は無効になります。
メモ帳などのエディターで作成し, j3cのソースならば拡張子をj3cとし て保存します。J3DASMのソースの場合は拡張子は j3s とします。 (拡張子はそれぞれなんでも可能ですが, 一応上記の規則とします.) ソースファイルの内容に関しては、サンプルファイル、または、 htmlフォルダのドキュメントを参考にしてください。
list2.j3cというソースファイルをコンパイルして実行するまでを解説します。 コマンドライン(DOSプロンプト)から
>j3c list2.j3c
のように実行するか、j3c.exe のアイコンに list2.j3cのアイコンを ドラッグアンドドロップするとDOSウインドウが開き、list2.j3cと 同じフォルダ に list2.j3m が生成されます。さらに
>j3dasm list2.j3m
のように実行するか、list2.j3mのアイコンを、j3dasm.exeのアイコン にドラッグアンドドロップすると list2.j3d が生成されます。 j3w.exeのNEWボタンから指定するか、j3w.exeのアイコンに list2.j3d のアイコン をドラッグアンドドロップし、STARTボタンで実行されます。
コンパイルとアセンブル、j3w の実行まで行ないたい場合は
>j3cc -r list2.j3c
とすると j3w list2.j3d の実行まで自動的に行われます。 j3cの
ソースを直接実行できるような環境となります。j3cc で -r を指定しない
場合はコンパイルとアセンブルまで行われ、j3w は実行されません。
j3cのソースに構文エラーがある場合、またj3dasmのアセンブリソースに エラーがある場合は、エラーを見つけた段階でターミナル画面(DOS画面)に エラーを表示してスクリプトは終了します。
あるいは j3cc.bat にlist2.j3cのアイコンをドラッグアンドドロップ するとエラーがなければ、ターミナル画面(DOS画面)が開いてアセンブル まで終了します。
マイコンピュータを開いて、ソースファイルが保存してあるフォルダ でたとえばsource.j3sをダブルクリックすると [ファイルを開くアプリケーションの選択]ダイアログボックスが 開きます。 ここで[ファイルを開くときはいつもこのアプリケーションを使う] チェックボックスをチェック、[その他]ボタンを押して、この場合 j3dasmを選択して、[開く]ボタンを押すことで定義ファイル(*.j3s) のダブルクリックで常にj3dasmが起動して、オブジェクトファイル (*.j3d)が生成されます。 生成後にDOSウィンドウは閉じる必要が あります(設定に依存)。 xxx.j3sをj3dasm.exeのアイコンにドロップしてアセンブルすること もできます。
以前のバージョンを使用されていた方はフォルダウインドウのメニ ューの表示/オプション/ファイルタイプでj3sとj3dについて 編集/編集から本バージョンのj3w.exeとj3dasm.exeを指定してください。
j3c.exe, j3dasm.exe は Win32 のコンソールプログラムです。MS-DOS 用のプログラムではありません。ドラッグアンドドロップでコンパイル、 アセンブルすることは可能ですが、エラーがあってもウィンドウが閉じ てしまって、エラーメッセージを読むことが出来ません。コマンドライン から実行するか、j3cc.batへのショートカットにドラッグアンドドロップ して下さい。
blender (https://www.blender3d.org/)は3Dのモデリング、レンダリング、 アニメーションが可能なフリー(オープンソース)の高機能3Dグラフィックツール ですが、Python を使って 3D データを好きなフォーマットに変換して出力する こともできます。blenderのメッシュをJ3Cのソースコードに変換し、j3wを実行 する J3C Exporterを同梱しています。blender 2.48a で動作 確認しました。 j3w を展開したフォルダが、例えば C:\j3w560 の場合、 環境変数 J3WBLEND を 「C:\j3w560\blender」 と設定します。 環境変数 J3WBLEND は J3Cのソースコードの出力先を指定します。 直接 j3w を実行する場合は blendview.j3c が存在するパスである必要があります。 J3C Exporter 内でも指定できますが、何度も実行する場合は面倒なので J3WBLEND を j3w を展開したフォルダ直下の blender に設定しておいてください。
マイ コンピュータ/プロパティ/詳細設定/環境変数/ユーザー環境変数/新規
から以下のように環境変数J3WBLENDを追加しておくと便利です。
変数名(N): | J3WBLEND |
変数値(V): | C:\j3w560\blender |
また、C:\j3w560/blender/j3cExporter.py を blender のスクリプトがおいてあるフォルダ (私の場合C:\blender-2.48a-windows/.blender/scripts) に コピーしてください。
または blender を起動して、最上部のメインメニューの下端を下方向にドラッグ するとボタンが現れます。右端の「File Paths」ボタンを押して左から2番目下の Python: に C:\j3w560/blender を設定します。 Pythonのパスを設定したすぐ右側のボタン (マウスポインタをボタンにおいて しばらくすると「Re-evaluate scripts registration in menus」と表示されます) をクリックします。この場合は blender 付属のスクリプトがメニューから選べなく なります。
メニューのFile/Exportから 「J3C code (.j3c)」を選択するとダイアログが表示 されます。Factor スライダ(クリックで数値入力、左右にドラッグで数値変更)で オブジェクトの拡大率が変更できます。各座標軸の最大最小値とサイズが表示されます。 滑らかな(面と面の角度の差が小さい)物体は、サイズを1000以上にしてください。 サイズが大きいほど滑らかに表示されます。
Distance スライダで視点の位置を指定します。Distance の値をサイズの 2倍程度 に設定して「Run J3W」ボタンをクリックすると モデルデータが blend.j3c に 出力され、blendview.j3c とともにコンパイル、アセンブルされて blendview.j3d が j3w により起動されます。個々のオブジェクトは Head回転していますが、 出力時の設定(Bank,Pitch,Headボタン)で回転方向を変更できます。起動された blendview.j3d は画面に表示されたキーを入力することにより、さらにリアルタイム に操作できます。
J3Wのバージョン番号は以下の規則とします。
J3W ver.4.xy | Windows95/98/NT/XP/Vistaで動作するもの。 |
J3W ver.5.xy | DirectXで動作するもの。 |
J3W ver.6.xy | Linux + X11R6で動作するもの。 |
J3W ver.7.xy | OpenGL で動作するもの。(未公開) |
x が同じ場合は、ほぼ同等な機能を有するものとします。 y はプラットホーム依存のマイナーバージョン。
2012/08/06 現在公開している j3w のバージョン番号
j3w ver.4.51 | Windows95/98/XPで動作するもの。 |
j3w ver.5.60 | WindowsXP SP2以降 Vistaで動作するDirectX9版。 |
j3w ver.6.51 | Linux + X11R6で動作するもの。 |
このソフトはフリーソフトウェアです。非営利目的であれば, 自由に配布し て頂いてかまいません。
このソフトウェアおよびマニュアル、サンプルファイルの著作権は私 (水谷 純, [email protected])が保有しています。 本ソフトウェアによって生じた損害について著作者は責任を負いません。 また, 著作者はバージョンアップの義務を負いません。
付属のサンプルファイル(*.j3c,*.j3s,*.j3i)は, 自由に使用, 改造して配 布して頂いてかまいません。
本ソフトウェアに関して、著作者にはいかなる種類のサポートの義務はあり ません。
すべてにお答えできると限りませんが、対応できる限り、質問などのメール に返答させて頂いております。 最新情報は https://www.mztn.org/を参考にしてください。 バグ報告も歓迎いたします。
Linux Japanに連載 (9回) した J3W の解説記事本文の PDF と記事中の リストのアーカイブを https://www.mztn.org/lj_code/index.html に置いています。記事全文がPDFでダウンロードできます。
水谷 純([email protected])