[HOME] [J3Wの紹介] [J3W DirectX9版]

3次元ポリゴンアニメーションキット ver.4.51 Windows版

01/09/2008
Copyright (c) Jun Mizutani 1996 - 2008

j3w451.zip のダウンロードはここから(874KB)。
J3W の DirectX9版は こちらから。
ver.4.50からの変更点
  1) j3c.exe が動作しなかった(ライブラリの不足)のを修正
  2) j3c, j3dasm が日本語を含むパス名でも動作するように修正

【1】はじめに

空間内の物体がすべて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を参照してください。

【2】J3Wの構成

提供する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スクリプト

【3】インストールとアンインストール

j3w451.zip をZIPに対応した圧縮解凍ツールでディレクトリ付きで解凍しま す。WindowsXP では j3w451.zip のアイコンを右クリックして「すべて展開」 を選択すれば解凍できます。


ドラッグアンドドロップを使用しないで、コンソール(DOSプロンプト)から 主に使用する場合は、解凍したディレクトリをPATHに追加しておくと便利 でしょう。

WindowsXP のコマンド検索パスの設定

パスを設定するには、デスクトップの左下のスタートから、次のようにボタン またはタブを選んでいきます。

    マイ コンピュータ → プロパティ → 詳細設定 → 環境変数

環境変数のウィンドウの下部にシステム環境変数が表示されます。そのなかの Path をクリックして、編集ボタンを押します。 表示されたダイアログで、設定済みのPATH環境変数の後ろにセミコロンに続けて J3Wをインストールしたフォルダ名を ;C:\j3w451 のように入力してOKボタンを 押します。

Windows95/98/ME のコマンド検索パスの設定

例えば 「スタートボタン/ファイル名を指定して実行」で表示されるダイア ログボックスで sysedit と入力したとき表示される AUTOEXEC.BAT の ウインドウの最終行に以下の行を追加して上書き保存します。

    path "%path%; C:\J3W451;"

次回の起動からDOSウィンドウでパスを指定することなく J3W, J3C, J3DASM が実行できます。 上記の例で C:\J3W451 は j3w451.zipを解凍したディレク トリです。異なる場所に解凍した方は対応するディレクトリに変更して下さい。

アンインストール

アンインストールは、単に解凍したディレクトリを削除してください。 レジストリ等は変更していません。


【4】使用法

《j3w.exeの使用法》

起動するとファイルオープンダイアログが開きます。ここで*.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ディレクトリのドキュメントを参考にしてください。

《J3Cソースファイルのコンパイル、アセンブル、実行》

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へのショートカットにドラッグアンドドロップ して下さい。

《必要な環境》

【5】blender をモデラーとして使う

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 付属のスクリプトがメニューから選べなく なります。


run_j3w メニューの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 は画面に表示されたキーを入力することにより、さらにリアルタイム に操作できます。


【6】J3Wのバージョン番号

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で動作するもの。

【7】互換性




  • ver.5.60 (DirectX9版)との差

  • 【8】使用条件

    このソフトはフリーソフトウェアです。非営利目的であれば, 自由に配布し て頂いてかまいません。


    このソフトウェアおよびマニュアル、サンプルファイルの著作権は私 (水谷 純, mizutani.jun@nifty.ne.jp)が保有しています。 本ソフトウェアによって生じた損害について著作者は責任を負いません。 また, 著作者はバージョンアップの義務を負いません。


    付属のサンプルファイル(*.j3c,*.j3s,*.j3i)は, 自由に使用, 改造して配 布して頂いてかまいません。


    他のネット/フォーラムへの転載も原則的にOKですが, 事後でもかまいま せんのでメールにてご連絡ください。


    【9】サポート

    本ソフトウェアに関して、著作者にはいかなる種類のサポートの義務はあり ません。


    すべてにお答えできると限りませんが、対応できる限り、質問などのメール に返答させて頂いております。 最新情報は https://www.mztn.org/を参考にしてください。 バグ報告も歓迎いたします。


    Linux Japanに連載 (9回) した J3W の解説記事本文の PDF と記事中の リストのアーカイブを https://www.mztn.org/lj_code/index.html に置いています。記事全文がPDFでダウンロードできます。


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