title A23 ChangeLog

2008,06/26
========================================

Action3Dクラスに文字列を引数にとるコンストラクタと
URLオブジェクトを引数にとるコンストラクタを追加しま
した。「new Action3D("x-res:///test.a3");」という
感じでオブジェクトが生成できるようになったので、
オブジェクト指向の初心者にとってわかりやすい形で
プログラムを書けるようになったと思います。


2008,03/27-2
========================================

パッケージ名をjp.sourceforge.acerola3d...に変更しました。
互換性を無視したわけですが、基本的にimport文の書き換えだけで
対応できるはずです。そしてどさくさにまぎれてA3Arc,A3Image,Action3D,
VRMLのコンストラクタとupdateメソッドの引数からisEnableBehaviorと
labelとballoonの項目を削除しました。この項目はA3InitDataやA3UpdateDataの
デフォルトデータとして設定すれば同じ効果があるので、そちらで代用してもらうことになります。

2008,03/27
========================================

ActionBehaviorなどを大改造した．いまさらだけど，
シーングラフを操作するコードを全てBehaviorに移した．
動作が安定するのを期待したい(まだチェックしてない)．

CATALOG.XMLのa3要素で指定できるscaleやoffsetや
rotationを反映させる実装が，いい加減なものだったので
直した．ただ，そのいい加減な実装に従って既存のAcerola3D
ファイルが作られていたので，変更しないといけない．
結果的に互換性の無い変更となってしまっている．
具体的には各Boneのパーツの大きさがa3要素のscaleの影響を
受けるように変更されている．

CATALOG.XMLのp要素にscaleやoffsetやrotationが付けれる
ようになった．たぶん大丈夫だと思うけど要チェック．

2008,03/13
========================================

lg3d対応のための変更一応完了。A3Spaceを作る案は
廃止。使用方法は今までと変らない。ただ今のところ、
ピッキング関係はlg3dや既存のJava3Dに組込む場合には
使えないということであきらめた。どう変更したかというと、
A3Behaviorのカメラ制御部分をCameraBehaviorに
分離。A3BehaviorをA3Objectの一つ一つに付けるように
変更した。そして、A3BehaviorとCameraBehavior
の同期を取るための内部的な工夫を加えた。

2008,03/11
========================================

lg3d対応を強化しようと考えたら、いろいろ改善点が
見えてきた。今、いじっている途中。A3Canvasの処理の
一部を分割してA3Spaceというクラスを作った。A3Spaceは
既存のJava3DプログラムのシーングラフにAcerola3Dを
組込むためのBranchGroupのサブクラス。

これに付随してBehaviorも整理中。まだ問題が山積みなので、
TODOに少し書いておく。

2008,02/21
========================================

Project Looking Glass(lg3d)に対応させようと
あがいてみる．lg3d-coreに多少修正が必要だが
一応動くようになった．(サウンドはダメ？)

2008,01/20
========================================

フリーズを検査するためのコードをexamples
の中に置いた．検査するべし．

2008,01/16
========================================

Macでは，Switchノードの下にSoundノードを
ぶら下げてスイッチすると例外が発生して止る．
以下は関連してそうなページなのだが良くわからない．

* <http://archives.devshed.com/forums/java-118/small-fix-code-included-1639078.html>
* <http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4908425>

たしかWindowsでは音じたい鳴らないし，Linuxではまれに
X WindowごとFreezeする．とりあえずSwitchを使わないで，
子ノードをaddChildしたりDetachする実装に変更(戻し)して
みる．結果Linuxでは変化なし．WindowsやMacで動作確認するべし．

2008,01/15
========================================

ナビゲーションのWalkとFlyの違いを理解して
いなかった．修正してFlyモードの実装を加えた．
ナビゲーションのためのControllerはほぼ
完成した．

2008,01/11
========================================

ナビゲーションでスレッドが使えるように
拡張して，WalkControllerをスレッドを使って
実装しなおしました．

2008,01/07
========================================

また幾つかAPIを追加しました。でも追加なので、
以前のプログラムの変更は必要ないはず。また、
ナビゲーションモードをA3Boardから移植。
flyモード以外はほぼ動作する状態になった。

2008,01/04
========================================

Action3Dに現在のアクションナンバーとアクション名
返すAPIを追加しました。

2008,01/01
========================================

A3Canvasでバックグラウンドに指定されている
A3Objectはピッキングされないようにしました。
ヘッドライトのオン・オフの機能を追加しました。
それと、昨日の実験の戻し忘れがあったので戻しました。

2007,12/31
========================================

JCanvas3dというのが使えるようになっていたので、
試してみたが、たぶん自分のLinuxのX11の環境では
無理っぽい。元に戻したけど、コードの断片を残し
ておく。

それと、A3Object.getScale()メソッドを忘れて
いた。それと、それとA3ObjectのQuatの初期値が
(0.0,0.0,0.0,0.0)だったのを(0.0,0.0,0.0,1.0)に
変更した。

2007,11/02
========================================

examplesの中のサンプルプログラムで使用している
サンプルデータをexamplesディレクトリに追加した．
今まで，自分のノートでしか動かない状態だった
のに気がついていなかった．

ほったらかしだったa2パッケージのバグを一つ
とってみた．サンプルプログラムは動くようになった．

2007,10/22
========================================

やっとAPIの整理ができました．javadocも
a2パッケジをのぞいて書くことができました．
基本的な部分には変更はないですが，マイナーな
APIを一部変更しました．大きな変更ではないのですが，
一応けじめをつけるためにVersionを2に昇格させて，
バグ取りやドキュメントの充実のほうに注力して
ゆくようにしたいと思います．


2007,07/18
========================================

java3d 1.5.1のjoalが正式に出たので，色々整理した．
一応「j3d.audiodevice」というシステムプロパティを
調べてAudioDeviceを初期化するようにしてみた．
でも，java3d 1.5.1 with joalでしか動作確認は
していない．動作確認のためのa3ファイルとサンプル
プログラムも追加した．ヘッドホンで聞いてみると
少し(頭の？)場所がずれているような気がする．

いつの間にかexampleの中のサンプルが，A23.initA23()
が無いと「x-res://…」で例外が発生するようになっていた．
Action3D.loadなどのメソッドの中にA23.initA23()
を置いて例外が発生しないようにしておいた．


2007,07/10
========================================

重い腰をあげてjavadocでAPIが生成されるように，
ソースのコメントを作成しはじめた．不要なAPIが
publicになっているところなど多数あったため，
隠蔽するように変更した箇所がいくつかある．
本当に隠蔽して大丈夫かどうか，他のシステム
に組み込んで確認作業をするべし．

2007,06/20
========================================

読み込みが非常に遅くなっていた原因は，sableccの
バージョンアップであることが判明した．たぶん
使い方が悪いだけで調べれば直るのだと思うのだが，
時間がかかりそうなので，ver3.2からver2.18.2に戻す
ことにします．

2007,05/22
========================================

サウンドの再生ができるようになった．CATALOG.XML
ファイルの<a>要素の中に<s>要素を一つ入れることで，
サウンドの指定をする．属性は今のところ以下のような感じ．

* file:サウンドのファイル名
* loop:ループする(true)しない(false)
* type:PointSound or BackgroundSound
* gain:増幅率？(実数)
* offset:音の場所のオフセットPointSoundの時のみ有効

そろそろCATALOG.XMLのフォーマットの厳密な定義が必要．
今後の課題．

2007,05/20
========================================

APIちょっと変更。A23.initA23()を使わないで済むようにした。
だが、少しテストしてみたところ微妙な点があるようだ。はじめ
A23.initA23()自体を廃止しようと考えたが、残しておくことにして、
大抵の場合はA23.initA23()は必要無い、ということにしておく。
これに従いほぼ全てのサンプルにおいて一行削除。

A23.initA23()が必要な場合と、不必要な場合を明確にしておく
必要がある。今後の課題。

2007,05/19
========================================

大改造後の最初のリリースをversion1.10という
ことで出すことにする．基本的に，APIの変更は無いが，
内部構造は大きく変更されているので，バージョン番号は
6つ飛しにした．よってなにか安定性が必要な場合は
version1.03を使うと良いかも．


2007,05/12
========================================

subversionのコメントを真面目に書いてないので，
changelogを書くようにしてみる．さらにsableccの
java5対応のものがあったので，更新しておいた
(以前のはver2.18.2で，今回のは3.2)．これで，
数十個出てた警告のほとんどが消えたけど，一個だけ
残るみたい．残念．

2007,05/06
========================================

遡ってログ．連休中に大改造した．ただしAPIなどの変更は
基本的にはない．(オイラー角をセットするA3Object.setRot()
メソッドの追加だけはやった)．

変更したのはAction3Dの内部で使われている
クラスの構成などで，その目的はデータのキャッシュの実現と
将来の拡張性の確保．キャッシュは有効に機能してるようだ．
拡張性の確保に関しては以下のような拡張を想定している
(実際の拡張はまだやってない)．

* 音声データを含めるための拡張
* キャラクタの一部のShapをロード後に変更(着せ替えとか)
* モーションデータの汎用化

