BPSGRの簡単なチュートリアルを含めた動画を作成して、ニコニコ動画の方に投稿しました。
チュートリアル部分だけを抜き出せば、ヘルプになるかもな・・・って思ったり。
これは時間があったらですね。。。
※いろいろコメントを頂けてるので、出来るものは対応とか解析とかして行こうかと思ったりしています^^
2009年6月22日月曜日
2009年6月15日月曜日
JBulletをProcessingから使うライブラリを公開
物理演算エンジンBulletのJava版、JBulletを簡易的にProcessingから使える様にしたライブラリ"BPSGR(jBullet with ProcsSsinG R)"を公開しました。
公開ページはこちらから
Bulletはフリーで高性能な物理演算ライブラリですが、いろいろ設定もしなくてはならず、手軽に使うには非常にハードルが高いものでした。
また、デモなどを動かしても、それから先自分で使いこなすにはなかなか長い道のりです。
ちょっとした物理シミュレーションを簡単にできないかな?と思い、
Bulletライブラリの膨大な機能のうちの、ものすごく初歩的な部分のみですが、非コンパイルのプログラム環境Processingで扱えるようにしました。
また、メタセコイアデータを、頂点データ集合として扱い、物体として登録できる機能も付加しています。
※本ライブラリは、BPSGR.jar, BPSGR_MQO.jarの2つから成ります。
同梱されているファイルのうち、Jbullt.jarは、jbulletのre-distribution、vecmath.jarは、JAVA3Dのre-distributionになります。
また、BPSGR_MQO.jar(メタセコイア関連部分)は、mqoviewer for processing(reco作)を、このライブラリで使用できるように機能拡張したのもので基本的内容は同一です。
各種サンプルも用意しています。
詳しいこのライブラリの使い方に関しては、ドキュメントおよび、製作作品・サンプルプログラムを見てください。
時間があれば、チュートリアルページも作成しようと思っていますが、取り急ぎ公開しました。
公開ページはこちらから
Bulletはフリーで高性能な物理演算ライブラリですが、いろいろ設定もしなくてはならず、手軽に使うには非常にハードルが高いものでした。
また、デモなどを動かしても、それから先自分で使いこなすにはなかなか長い道のりです。
ちょっとした物理シミュレーションを簡単にできないかな?と思い、
Bulletライブラリの膨大な機能のうちの、ものすごく初歩的な部分のみですが、非コンパイルのプログラム環境Processingで扱えるようにしました。
また、メタセコイアデータを、頂点データ集合として扱い、物体として登録できる機能も付加しています。
※本ライブラリは、BPSGR.jar, BPSGR_MQO.jarの2つから成ります。
同梱されているファイルのうち、Jbullt.jarは、jbulletのre-distribution、vecmath.jarは、JAVA3Dのre-distributionになります。
また、BPSGR_MQO.jar(メタセコイア関連部分)は、mqoviewer for processing(reco作)を、このライブラリで使用できるように機能拡張したのもので基本的内容は同一です。
このライブラリでできること。
- ○平面の作成(必ず作成されます)
- ○シミュレーションの結果をProcessingを用いて描画する
- ○球・箱・シリンダー・メタセコイアデータを剛体としてBullet空間への追加
- ○箱の集合体(BoxArray?)の簡単な作成
- ○球・箱・シリンダー・メタセコイアデータのshooting(指定した方向に投げる(撃つ事が可能です))
- ○指定した物体に対して、衝撃(impulse)を与える
- ○光源位置、メタセコデータ以外のオブジェクトの色に関しては、固定実装です(将来は自由にいじれるようにします)
(オブジェクト番号偶数が黄色、奇数がシアンになります)
物理演算ライブラリの一つの重要な機能、拘束(Constrain)については、このバージョンでは未実装です。
(実装検討中)
各種サンプルも用意しています。
詳しいこのライブラリの使い方に関しては、ドキュメントおよび、製作作品・サンプルプログラムを見てください。
時間があれば、チュートリアルページも作成しようと思っていますが、取り急ぎ公開しました。
ラベル:
BPSGR,
Processing,
物理演算
2009年5月15日金曜日
3Dはちゅねにネギを振らせてみた Ver 2
前回サンプルの方にUpをした「3Dはちゅねにネギを振らせてみた Interactive by Processing」に、少々機能を加えたものをUpしました。
追加された機能は下記の通り
音楽に合わせて自動にネギを振るモードの追加
本家動画にほとんど忠実なタイミングでネギを振るモードの追加
視点の追加・カメラ移動のユーザ解放
コードもUpしてありますので、参考にしてください。
こちらから
紹介動画もニコニコ動画の方にUpしてあります。
この紹介動画の中に出てくる、バンドパスフィルタサンプルも
こちらにUpしてあります。
このままでは使いようもありませんが、参考にはなるかなと思います。
追加された機能は下記の通り
音楽に合わせて自動にネギを振るモードの追加
本家動画にほとんど忠実なタイミングでネギを振るモードの追加
視点の追加・カメラ移動のユーザ解放
コードもUpしてありますので、参考にしてください。
こちらから
紹介動画もニコニコ動画の方にUpしてあります。
この紹介動画の中に出てくる、バンドパスフィルタサンプルも
こちらにUpしてあります。
このままでは使いようもありませんが、参考にはなるかなと思います。
ラベル:
MqoViewer,
Processing,
ニコニコ動画
2009年5月1日金曜日
3Dはちゅねのネギ振りInteractive by Processing
メタセコイアローダ for Processing (MQOLoader for Processing)を用いて作った
ニコニコ動画を投稿の方へ投稿しました。
視聴には会員登録(無料)が必要です
単純にマウスクリック1回で、1回ネギを振る仕様なのですが、
せっかく3Dモデルなので、視点変更などモロモロができます。
1曲聞くのに100回以上ネギ振り(マウスクリック)をしなくてはならなく、ちょっと大変なので、自動ネギ振りモードも付けました。。。。
何はともあれ試してみてください。なにげに中毒性があるようです・・・
はちゅねネギ振り動画本家
に準拠?して、曲に合わせて表情などが変わります。
ニコニコ動画を投稿の方へ投稿しました。
視聴には会員登録(無料)が必要です
単純にマウスクリック1回で、1回ネギを振る仕様なのですが、
せっかく3Dモデルなので、視点変更などモロモロができます。
1曲聞くのに100回以上ネギ振り(マウスクリック)をしなくてはならなく、ちょっと大変なので、自動ネギ振りモードも付けました。。。。
何はともあれ試してみてください。なにげに中毒性があるようです・・・
はちゅねネギ振り動画本家
に準拠?して、曲に合わせて表情などが変わります。
ラベル:
MqoViewer,
Processing,
ニコニコ動画
2009年4月14日火曜日
Processingで3Dはちゅねがネギ振り

公開しているメタセコイアローダfor Processingを用いて、”3Dモデルのはちゅねミクがネギを振る”プログラムを作ってみました。
こちらへ
単純にマウスクリックで1回ネギをふるのですが、
ただ振るだけではつまらないので、ネギ振りの定番曲、IevanPolkka(miku) by Otomania(http://www.otomania.net/)に合わせてネギを振れるようにしました。
曲はネギを振り続けると流れますが、振るのをやめると曲も止まります。
ネギの1スイングが終わる頃にマウスをクリックすると続けてもう1回振ることができます。
目安としては、ネギが再下点から上昇する頃に入力するとうまく行きます。
毎回クリックは面倒だという方のために、オートモードも用意してあります。
3Dモデルならではの視点変更や回転などいろいろ機能をいれてあります。
ソースコードも公開していますので、参考にして頂ければと思います。
----------------
モデルデータ '三次元CG@七葉'http://nanoha.kirara.st/3dcg/
モデル作成:ズサさん, モーションデータ:4169さん
ラベル:
MqoViewer,
Processing
MqoView for Processing Ver0.4 リリース
ZIP圧縮されたMQO形式のデータ読み込みに対応をしました
ダウンロードはこちらから
今回の対応により、
HttpZipContentProvider, LocalZipContentProviderのクラスが追加になります。
HttpZipContentProviderは、コンストラクタを呼び出した時に、指定されたZIPファイルをメモリ上に展開します。以降の書庫内のファイルへのアクセスは、このメモリ上の展開データを読み込んで処理をします。このため、展開済のZIPファイルへのアクセス時に新たな通信は発生しません。
同じ書庫で別のモデルにアクセスする場合は、メンバ関数、changeEntry(string Filename)を使います。
新たにコンストラクタを呼び出しても良いのですが、呼び出し時にネット上のZIPファイルにアクセスするため、毎回通信が発生してしまうため、せっかくZIP圧縮しても無駄な通信が多く発生してしまいます。
※テクスチャデータ等は同じZipファイルに含めてください
このライブラリ(MQOLoader.jar)を用いて、複数のデータをメモリに読み込んでおいて、
適切なタイミングでモデルデータを描画すると、パラパラ漫画風アニメーションを行うことが可能です。
このとき、多くのモデルデータをサーバから読み込む必要があり、通信環境によっては非常に時間がかかってしまいます。これを少しでも緩和させるために、ZIPファイルの読み込みに対応しました。
MQO拡張子等が受け入れられないサーバー等は、ZIPファイルで固めてやることで簡単にUploadもできるようになります。
~2009/4/15追記
コンパイル環境を間違えていて、一部環境で動作しませんでしたので、正しくコンパイルをしなおし、バージョンを0.4aにしました。ご迷惑をおかけしました
ダウンロードはこちらから
今回の対応により、
HttpZipContentProvider, LocalZipContentProviderのクラスが追加になります。
HttpZipContentProviderは、コンストラクタを呼び出した時に、指定されたZIPファイルをメモリ上に展開します。以降の書庫内のファイルへのアクセスは、このメモリ上の展開データを読み込んで処理をします。このため、展開済のZIPファイルへのアクセス時に新たな通信は発生しません。
同じ書庫で別のモデルにアクセスする場合は、メンバ関数、changeEntry(string Filename)を使います。
新たにコンストラクタを呼び出しても良いのですが、呼び出し時にネット上のZIPファイルにアクセスするため、毎回通信が発生してしまうため、せっかくZIP圧縮しても無駄な通信が多く発生してしまいます。
※テクスチャデータ等は同じZipファイルに含めてください
このライブラリ(MQOLoader.jar)を用いて、複数のデータをメモリに読み込んでおいて、
適切なタイミングでモデルデータを描画すると、パラパラ漫画風アニメーションを行うことが可能です。
このとき、多くのモデルデータをサーバから読み込む必要があり、通信環境によっては非常に時間がかかってしまいます。これを少しでも緩和させるために、ZIPファイルの読み込みに対応しました。
MQO拡張子等が受け入れられないサーバー等は、ZIPファイルで固めてやることで簡単にUploadもできるようになります。
~2009/4/15追記
コンパイル環境を間違えていて、一部環境で動作しませんでしたので、正しくコンパイルをしなおし、バージョンを0.4aにしました。ご迷惑をおかけしました
ラベル:
MqoViewer,
Processing
2009年3月9日月曜日
MqoView for Processing Ver0.3 リリース
MqoView for Processing Ver0.3をリリースしました。
前回のリリースで、Processingは左手座標系であるため、その対応をした事を書きましたが、
NyARToolkit for Processing等、一部のツールはProcessing上でも右手座標系を採用しています。
このため、NyARToolkit for Processingで3Dモデルを描画する際に、これまでのMqoView for Processingを使用すると、左右が逆になったりテクスチャがおかしくなったりします。
これは、本ライブラリが左手系描画をしているのに、座標系が右手系であるのが主因です。
これでは、せっかくのMQOViewer(というかローダー)も宝の持ち腐れになってしまいますので、左手系・右手系の両方で描画ができるようにアップデートしました。
モデルのロードは、createGLModelPs関数で行いますが、この関数の引数を1つ追加しました。
最後の引数をtrueにする事で、左手系での読み込み、falseで右手系での読み込みとなります。引数は省略できません。
また、本来ブラリは、本質的には、NyARToolkitとは(コードはいろいろ利用させて頂いてますが、機能的にはという意味では)関係がないので、混乱を避けるためにjarファイル名を変更しました。(NyARMQO.jar→MQOLoader.jar)
DLはこちらから。
前回のリリースで、Processingは左手座標系であるため、その対応をした事を書きましたが、
NyARToolkit for Processing等、一部のツールはProcessing上でも右手座標系を採用しています。
このため、NyARToolkit for Processingで3Dモデルを描画する際に、これまでのMqoView for Processingを使用すると、左右が逆になったりテクスチャがおかしくなったりします。
これは、本ライブラリが左手系描画をしているのに、座標系が右手系であるのが主因です。
これでは、せっかくのMQOViewer(というかローダー)も宝の持ち腐れになってしまいますので、左手系・右手系の両方で描画ができるようにアップデートしました。
モデルのロードは、createGLModelPs関数で行いますが、この関数の引数を1つ追加しました。
最後の引数をtrueにする事で、左手系での読み込み、falseで右手系での読み込みとなります。引数は省略できません。
また、本来ブラリは、本質的には、NyARToolkitとは(コードはいろいろ利用させて頂いてますが、機能的にはという意味では)関係がないので、混乱を避けるためにjarファイル名を変更しました。(NyARMQO.jar→MQOLoader.jar)
例:
model_data = KGLModelData.createGLModelPs(this, gl,null,this.content_provider,0.015f, KGLExtensionCheck.IsExtensionSupported(gl,"GL_ARB_vertex_buffer_object"),true) ;
DLはこちらから。
ラベル:
MqoViewer,
Processing
2009年2月11日水曜日
MqoView for Processing Ver0.2 リリース~Processingは左手座標~
先日公開したMqoView for Processing ですが、大変なバグ(仕様漏れ?)がありました。
OpenGLやメタセコイアは、いわゆる右手系の座標なのですが、Processingは左手系を採用しています。
MqoView for Processingは、これまで座標変換などをしてなかったため、古いバージョンでは、鏡に映ったようなモデルが表示されてしまってました。左右対称なモデルばかりで確認していたので、気がつくのが遅れました。
修正版(ver0.2)を先ほどUpしました。非常にお恥ずかしい限りですorz......
DLはこちらから。
OpenGLやメタセコイアは、いわゆる右手系の座標なのですが、Processingは左手系を採用しています。
MqoView for Processingは、これまで座標変換などをしてなかったため、古いバージョンでは、鏡に映ったようなモデルが表示されてしまってました。左右対称なモデルばかりで確認していたので、気がつくのが遅れました。
修正版(ver0.2)を先ほどUpしました。非常にお恥ずかしい限りですorz......
DLはこちらから。
ラベル:
MqoViewer,
Processing
2009年2月8日日曜日
Processing: IDEからアプリ実行時のメモリ確保量の変更
Processing実行時に、OutOfMemoryが出る時の対処。
Processingはデフォルトでは、初期目盛りは64M。
作成アプリケーションで多量のメモリを消費する場合、ヒープメモリが不足する場合もあります。
このような場合、Processing設定値を変更する事で対応可能な場合があります。
この設定値はIDEからは設定できず、下記のファイルを変更する必要があります。<追記>メモリ確保の最大値変更はIDEのPreferenceの中から可能です。初期起動時のメモリは下記ファイルからのみの変更できます。
※Processing 1.0.1の場合のセッティングなので、Verが変わるとまた状況が変わるかもしれません。
preferences.txt変更時は、Processingを再起動する必要あります
Processingはアプリケーション(IDE)終了時に、その時の設定をpreferences.txtに上書きするため、
preferences.txtの変更は、必ずProcessingアプリケーションが立ち上がってない状態で行いましょう。
この対処方法は、IDEから実行の場合です。
JRE等を利用する場合は、実行オプションなどでヒープメモリ量を指定するようにしてください。
Processingはデフォルトでは、初期目盛りは64M。
作成アプリケーションで多量のメモリを消費する場合、ヒープメモリが不足する場合もあります。
このような場合、Processing設定値を変更する事で対応可能な場合があります。
/Document and Settings/[User Name]/Application Data/Processing/preferences.txt
(メモリに関係ある項目のみ抜粋)
run.options.memory.maximum=1024
←メモリ最大サイズ(自分のPCのメモリとの相談。初期値は256)
run.options.memory.initial=256
←プログラム実行時に最初に確保されるメモリ(初期値64)
run.options.memory=true
←最大値指定の設定の有効・無効の指定(初期値は、無効)
※Processing 1.0.1の場合のセッティングなので、Verが変わるとまた状況が変わるかもしれません。
preferences.txt変更時は、Processingを再起動する必要あります
Processingはアプリケーション(IDE)終了時に、その時の設定をpreferences.txtに上書きするため、
preferences.txtの変更は、必ずProcessingアプリケーションが立ち上がってない状態で行いましょう。
この対処方法は、IDEから実行の場合です。
JRE等を利用する場合は、実行オプションなどでヒープメモリ量を指定するようにしてください。
ラベル:
Processing
2009年2月7日土曜日
MQOViewer for Processingの動作サンプルコード公開
MQOViewer for Processingの動作サンプルを公開しました。
Processing上でものすごく簡単にMQODataが表示できることが見てもらえると思います。
近日中に動画(パラパラマンガ)サンプルもUpします
サンプルプログラムを同梱して、Ver1.0cとしました。
こちらより
Processing上でものすごく簡単にMQODataが表示できることが見てもらえると思います。
近日中に動画(パラパラマンガ)サンプルもUpします
サンプルプログラムを同梱して、Ver1.0cとしました。
こちらより
ラベル:
MqoViewer,
Processing
2009年2月2日月曜日
Processingライブラリのコンパイラ
Mqoviewerライブラリ生成時に使用したコンパイラがJRE6であったため、Mac等で動作しないことがわかりました。
Processingのリファレンスちゃんと読んでなかったです。
Jre1.5(Java 1.5)でコンパイルしなおして、Ver0.1bとして公開し直しました。
こちらから
Processingのリファレンスちゃんと読んでなかったです。
Jre1.5(Java 1.5)でコンパイルしなおして、Ver0.1bとして公開し直しました。
こちらから
ラベル:
MqoViewer,
Processing
2009年1月31日土曜日
Processing上でメタセコイアデータの表示
NyARToolkit for Pro55ingでいろいろ実験をしていたのですが、
やはりメタセコデータがの表示がしたいと思い、NyARToolkitのサンプルプログラムのNyMqoViewerを元にライブラリを作成してみました。
このライブラリは、A虎氏作成のNyARToolkit(ARToolKit Class Library for Java)の動作サンプルプログラムであるNyARMqoViewerをベースにProcessing上で動作できるようにしたものです。
このライブラリと、同じくA虎氏作成のNyAR4psg(NyARToolkit for proce55ing)を組み合わせることで、Processing環境上でもメタセコイア形式のデータを表示できるようになります。
NyARToolkitのページはこちら
NyARMqoViewer
読み込めないデータがたまにある等、いろいろ問題がありますがまずは公開したいと思います。
このブログではZIPファイルをUploadできない関係でファイルをこちらに置いていますが、
更新等の情報に関しては、こちらで更新していきたいと思います。
ドキュメンテーションはなかなか時間がなくて追いつかないので、
詳しくはサンプルプログラムの方をを見てください。
やはりメタセコデータがの表示がしたいと思い、NyARToolkitのサンプルプログラムのNyMqoViewerを元にライブラリを作成してみました。
このライブラリは、A虎氏作成のNyARToolkit(ARToolKit Class Library for Java)の動作サンプルプログラムであるNyARMqoViewerをベースにProcessing上で動作できるようにしたものです。
このライブラリと、同じくA虎氏作成のNyAR4psg(NyARToolkit for proce55ing)を組み合わせることで、Processing環境上でもメタセコイア形式のデータを表示できるようになります。
NyARToolkitのページはこちら
NyARMqoViewer
読み込めないデータがたまにある等、いろいろ問題がありますがまずは公開したいと思います。
Processing上でメタセコイア形式データを表示するライブラリ
このブログではZIPファイルをUploadできない関係でファイルをこちらに置いていますが、
更新等の情報に関しては、こちらで更新していきたいと思います。
ドキュメンテーションはなかなか時間がなくて追いつかないので、
詳しくはサンプルプログラムの方をを見てください。
ラベル:
ARToolkit,
MqoViewer,
Processing
2009年1月26日月曜日
ProcessingとARToolKit
最近、Processingを使う機会を得ました。
私自身はプログラム経験が長いのですが、非常に直観的なインターフェイスで非常に面白く、ライブラリも充実しているので非常に面白いと感じました。
それとは全然別件ですが、ニコニコ動画に、ARToolKitを用いた動画が多数投稿されています。
面白いけど自分には手に届かないなぁ・・・と思っていました。
使い古しのVisual C++を持ち出してARToolkit本家を使って、なんとなく遊んでいたのですが、
ARToolkitをProcessing対応させてくれた方が現れました。
NyARToolkit for proce55ingのページはこちら
このライブラリはARToolkitのJava対応版からの派生
NyARToolkitのページはこちら
これらを用いて何か面白い事が出来ないかなと模索中です。
私自身はプログラム経験が長いのですが、非常に直観的なインターフェイスで非常に面白く、ライブラリも充実しているので非常に面白いと感じました。
それとは全然別件ですが、ニコニコ動画に、ARToolKitを用いた動画が多数投稿されています。
面白いけど自分には手に届かないなぁ・・・と思っていました。
使い古しのVisual C++を持ち出してARToolkit本家を使って、なんとなく遊んでいたのですが、
ARToolkitをProcessing対応させてくれた方が現れました。
NyARToolkit for proce55ingのページはこちら
このライブラリはARToolkitのJava対応版からの派生
NyARToolkitのページはこちら
これらを用いて何か面白い事が出来ないかなと模索中です。
ラベル:
ARToolkit,
Processing
登録:
投稿 (Atom)