ver.4.50からの変更点
1) j3c.exe が動作しなかった(ライブラリの不足)のを修正
2) j3c, j3dasm が日本語を含むパス名でも動作するように修正
空間内の物体がすべて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 を起動してファイル オープンダイアログから 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を参照してください。
提供するj3w451.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のリストの実行形式ファイル |
frame_2.dat | 人体モデルアニメーションのデータ 空手 |
frame_3.dat | 人体モデルアニメーションのデータ 走る人間 |
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の画像ファイル |
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スクリプト |
j3w451.zip をZIPに対応した圧縮解凍ツールでディレクトリ付きで解凍しま す。WindowsXP では j3w451.zip のアイコンを右クリックして「すべて展開」 を選択すれば解凍できます。
ドラッグアンドドロップを使用しないで、コンソール(DOSプロンプト)から 主に使用する場合は、解凍したディレクトリをPATHに追加しておくと便利 でしょう。
パスを設定するには、デスクトップの左下のスタートから、次のようにボタン またはタブを選んでいきます。
マイ コンピュータ → プロパティ → 詳細設定 → 環境変数
環境変数のウィンドウの下部にシステム環境変数が表示されます。そのなかの Path をクリックして、編集ボタンを押します。 表示されたダイアログで、設定済みのPATH環境変数の後ろにセミコロンに続けて J3Wをインストールしたフォルダ名を ;C:\j3w451 のように入力してOKボタンを 押します。
例えば 「スタートボタン/ファイル名を指定して実行」で表示されるダイア ログボックスで sysedit と入力したとき表示される AUTOEXEC.BAT の ウインドウの最終行に以下の行を追加して上書き保存します。
path "%path%; C:\J3W451;"
次回の起動からDOSウィンドウでパスを指定することなく J3W, J3C, J3DASM が実行できます。 上記の例で C:\J3W451 は j3w451.zipを解凍したディレク トリです。異なる場所に解凍した方は対応するディレクトリに変更して下さい。
アンインストールは、単に解凍したディレクトリを削除してください。 レジストリ等は変更していません。
起動するとファイルオープンダイアログが開きます。ここで*.J3D を選択して下さい。 STARTボタンを押すと実行されます。
NEWボタン | 新しくxxx.J3Dファイルを読み込みます。 |
STARTボタン | J3Dファイルを実行します。 |
QUITボタン | J3W を終了します。 |
32bit/16bit/8bit | 実行時の色深度を指定します。 |
Full Speed | 高速モード。 |
オブジェクトファイル(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 の値が大きく (書き換えが高速)なることが確認できます。
メモ帳などのエディターで作成し, 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 の実行まで行ないたい場合(WindowsXP専用)は
>j3cc -r list2.j3c
とすると j3w list2.j3d の実行まで自動的に行われます。 j3cの
ソースを直接実行できるような環境となります。j3cc で -r を指定しない
場合はコンパイルとアセンブルまで行われ、j3w は実行されません。
j3cのソースに構文エラーがある場合、またj3dasmのアセンブリソースに エラーがある場合は、エラーを見つけた段階でターミナル画面(DOS画面)に エラーを表示してスクリプトは終了します。
あるいは j3cc.bat にlist2.j3cのアイコンをドラッグアンドドロップ するとエラーがなければ、ターミナル画面(DOS画面)が開いてアセンブル まで終了します。
Windows95ではマイコンピュータを開いてソースファイルの保存し てあるフォルダーでたとえばsource.j3sをダブルクリックすると [ファイルを開くアプリケーションの選択]ダイアログボックスが 開きます。 ここで[ファイルを開くときはいつもこのアプリケーションを使う] チェックボックスをチェック、[その他]ボタンを押して、この場合 j3dasmを選択して、[開く]ボタンを押すことで定義ファイル(*.j3s) のダブルクリックで常にj3dasmが起動して、オブジェクトファイル (*.j3d)が生成されます。 生成後にDOSウィンドウは閉じる必要が あります(設定に依存)。 xxx.j3sをj3dasm.exeのアイコンにドロップしてアセンブルすること もできます。
以前のバージョンを使用されていた方はフォルダウインドウのメニ ューの表示/オプション/ファイルタイプでj3sとj3dについて 編集/編集から本バージョンのj3w.exeとJ3DASMを指定してください。
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.37a, 2.41, 2.43 で動作 確認しました。
j3w を展開したディレクトリが、例えば C:\j3w451 の場合、 環境変数 J3WBLEND を C:\j3w451\blender と設定します。 環境変数 J3WBLEND は J3Cのソースコードの出力先を指定します。 直接 j3w を実行する場合は blendview.j3c が存在するパスである必要があります。 J3C Exporter 内でも指定できますが、何度も実行する場合は面倒なので J3WBLEND を j3w を展開したディレクトリ直下の blender に設定しておいてください。
マイ コンピュータ/プロパティ/詳細設定/環境変数/ユーザー環境変数/新規
から以下のように環境変数J3WBLENDを追加しておくと便利です。
変数名(N): | J3WBLEND |
変数値(V): | C:\j3w451\blender |
C:\j3w451/blender/j3cExporter.py を blender のスクリプトがおいてあるディレクトリ (私の場合C:\blender-2.43-windows/.blender/scripts) に コピーしてください。
または blender を起動して、最上部のメインメニューの下端を下方向にドラッグ するとボタンが現れます。右端の「File Paths」ボタンを押して左から2番目下の Python: に C:\j3w451/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で動作するもの。 |
J3W ver.5.xy | DirectXで動作するもの。 |
J3W ver.6.xy | Linux + X11R6で動作するもの。 |
J3W ver.7.xy | Linux + X11R6 + Mesa(or OpenGL)で動作するもの。(未公開) |
x が同じ場合は、ほぼ同等な機能を有するものとします。 y はプラットホーム依存のマイナーバージョン。
2008/07/27 現在公開している j3w のバージョン番号
j3w ver.4.51 | Windows95/98/XPで動作するもの。 |
j3w ver.5.51 | WindowsXP SP2以降 Vistaで動作するDirectX9版。 |
j3w ver.6.50 | Linux + X11R6で動作するもの。 |
このソフトはフリーソフトウェアです。非営利目的であれば, 自由に配布し て頂いてかまいません。
このソフトウェアおよびマニュアル、サンプルファイルの著作権は私 (水谷 純, mizutani.jun@nifty.ne.jp)が保有しています。 本ソフトウェアによって生じた損害について著作者は責任を負いません。 また, 著作者はバージョンアップの義務を負いません。
付属のサンプルファイル(*.j3c,*.j3s,*.j3i)は, 自由に使用, 改造して配 布して頂いてかまいません。
他のネット/フォーラムへの転載も原則的にOKですが, 事後でもかまいま せんのでメールにてご連絡ください。
本ソフトウェアに関して、著作者にはいかなる種類のサポートの義務はあり ません。
すべてにお答えできると限りませんが、対応できる限り、質問などのメール に返答させて頂いております。 最新情報は https://www.mztn.org/を参考にしてください。 バグ報告も歓迎いたします。
Linux Japanに連載 (9回) した J3W の解説記事本文の PDF と記事中の リストのアーカイブを https://www.mztn.org/lj_code/index.html に置いています。記事全文がPDFでダウンロードできます。
水谷 純(mizutani.jun@nifty.ne.jp)