BPSGRについてはこちらで。
http://reco-memo.blogspot.com/2009/06/jbulletprocessing.html
(こういうの(個人ブログ)って勝手にリンク張ったりして良いもんなのかな。。。?)
recoさんという方が作成されたprocessing用JBullet簡易実装ライブラリ、です。
ごくごく限られた機能しか利用できないという触れ込みですが、あくまでもprocessingIDE上で普通にライブラリを読み込んで使う分には、です。
eclipse上でソースコードの方から読み込めば、そりゃあもうどんなパラメータもメソッドも弄りたい放題増やしたい放題です。
私もちょうどどうやってJBulletをprocessingで動くように対応させたものかと悩みまくっていたところなので、純粋にこのソースがかなり参考になりました。いや、なってます。今、まさに。
しかしeclipseにもだんだん慣れてきたような気がするんだよ。良きかな良きかな。
というかそう、今まさに見てる最中なんです。
ていうか時間がありません。マジで。
デモの準備がじぇんじぇンできてねえの。
もうやばい。死ぬ。パワポも作んないといけないのに。
本番は明日だけど一応今日先生に見せることになってんです。
びゃあ。
あ、どんなデモかってのはひみつ。いづれ言うかも。いや言わないかな。まあ、ひみつ。
一応自分用にメモ。あくまでも自分用。俺の目の前にいるのは常に俺だ。間違っても貴様じゃねえ。
いや、もうそういうのいいから。。。
まずは、processingとprocessing用OpenGLが使える状態になってるプロジェクトっていう前提で。(前回の奴を参照。)
0.BPSGRを落とす。解凍する。
1.プロジェクトにBPSGRライブラリフォルダん中に入ってるsrcをまるまるインポ。
2.プロジェクトトップのsrcディレクトリん中にドラドロして突っ込む。
3.勝手にパッケージごとに分けられるはずだ。これで完了。ね?簡単でしょ?
4.あ!忘れてた。これがみそなんだけど、BPSGRフォルダん中のlibraryん中のjbullet.jarをインポしてビルドパス追加してRefLibに入れる。ここでは他のBPSGR.jarとかは入れる必要ないからね。jbullet.jarだけ、ね。あとjbullet.jarについても、BPSGRライブラリに添付されてるものでないとだめぽ。なにかったら、多分に現行のJBulletとは使ってるバージョンが違うみたいで、新しいjbullet.jarだとなにやらエラーが吐き出されまくる。新しいバージョンでも動くようにするような技量は私にはないので、おとなしく添付のを使うんだぜ。
5.ここまでで動くはず。BPSGR付属のデモをeclipseで動くようにpublic付けたしたりで改編した後実行。ほうらうごいた。めでたしめでたし。
6.で、あとはinitPhysics()の中いじってgravity変えたり、groundShapeが勝手に生成されないように変えたりと好きなようにいじればおk。(作者様勝手にいじってごめんなさい。でも許してくださいこれしか道はなかったんですこうするしかなかったんです。)
あ、一応これも。
AddBox(float mass, Vector3f vec, Vector3f rot, float angle, Vector3f scale)というメソッドがあるんだけど、ここのscaleっていうベクトルがまんまBoxの縦横高さを表すわけなんだけど、例えばこれをあらかじめ外でVector3f scale = new Vector3f(100, 100, 100)みたいにインスタンスを生成しといて、メソッドに引数として渡すとする。一回目はまあ正常にブロックが生成されるんだけど、そのあと同じように続けて同サイズのブロックを生成させようとすると、同じ引数を渡してるはずなのになぜか縦横高さが半分になった状態で生成される。scaleを変えずにそのまま渡しっぱなしにしとくと、繰り返した分だけ半々になっていく。なんでまあ、大きさを変えずに引数を渡したい場合は、Vector3f copyみたいなのを作っといて、copyの方をAddBoxに引数として渡して、呼び出した直後にcopyには最初の状態のscaleをコピーする、ってな小細工がいる。あるいは直接数値を引数として入れとくか。
ここだけなんとかならないか、せっかくなんで後でメソッドの中を見てみよう。。。
0 件のコメント:
コメントを投稿