Bullet
Bullet Demo
相変わらずBulletの勉強中。
デモ
HelloWorldは何となく理解できたので、次はデモをビルドしてみる。
BasicExample.cppをビルドしたらApp_BulletExampleBrowser.exeが出来たので実行。

何か色んなデモやサンプルが一気にビルドされたっぽい。
よく分らんが色んな機能が見れて楽しい(小並感)。
文字化けしてたり、一部のデモが動かなかったり(動かし方が分からない?)するけど、だいたいはちゃんと動くし、見れる。
今更ではあるがVersionは2.88である。
まずは眺めてみようと思う。
眺めるって結構大事……だと私は思っています。
眺めるじゃないな。観察って言えばそれっぽいのか。
個人的にはどっちでもいいけど。
ソフトボディ
勉強ではないけど、今日(仕事中に)考えていたこと。
Bulletの(引いてはLightWaveの)ソフトボディって、外側のサーフェイスしか作らないし、外側のポイントでしか計算ができない。
でも実際の柔らかい物体は、当然ながら中身が詰まっている。
ソフトボディが現実的な挙動からちょっと外れているのは、ここが原因なんだろうなぁと、ぼんやり考えていました。
そしてネットで多層ソフトボディという手法を知る。
要するに疑似的に「中身」を作っているんだな、と私は理解しました。
柔らかい物体に指が食い込むとか、そんな挙動を、私はLightWaveで再現してみたい。
デモ
HelloWorldは何となく理解できたので、次はデモをビルドしてみる。
BasicExample.cppをビルドしたらApp_BulletExampleBrowser.exeが出来たので実行。

何か色んなデモやサンプルが一気にビルドされたっぽい。
よく分らんが色んな機能が見れて楽しい(小並感)。
文字化けしてたり、一部のデモが動かなかったり(動かし方が分からない?)するけど、だいたいはちゃんと動くし、見れる。
今更ではあるがVersionは2.88である。
まずは眺めてみようと思う。
眺めるって結構大事……だと私は思っています。
眺めるじゃないな。観察って言えばそれっぽいのか。
個人的にはどっちでもいいけど。
ソフトボディ
勉強ではないけど、今日(仕事中に)考えていたこと。
Bulletの(引いてはLightWaveの)ソフトボディって、外側のサーフェイスしか作らないし、外側のポイントでしか計算ができない。
でも実際の柔らかい物体は、当然ながら中身が詰まっている。
ソフトボディが現実的な挙動からちょっと外れているのは、ここが原因なんだろうなぁと、ぼんやり考えていました。
そしてネットで多層ソフトボディという手法を知る。
要するに疑似的に「中身」を作っているんだな、と私は理解しました。
柔らかい物体に指が食い込むとか、そんな挙動を、私はLightWaveで再現してみたい。
BulletのHelloWorld
LightWave(以下LW)の物理演算機能を勉強しています。
LWの物理演算はBulletを使用している訳で、まずはBulletの中身を調べてみたりします。
HelloWorld?
とりあえず公開されているソースコードをダウンロードしてみる。
クイックスタートやユーザーマニュアルを読んでみて……まぁよく分からんので、とりあえずHelloWorld.cppとかいう、何か最初にやるっぽいやつをビルドしてみる。
HelloWorld.exeとかいう実行ファイルが出来たらしいが、これが何やねんと。
ひとまずコマンドプロンプトから実行してみると、何やら座標らしきものが出力される。
この時点で何となくピンときたので、出力された座標をエクセルに持ってきて、グラフを書いてみる。

明らかに何かが自由落下している感じの座標。
それから少しコードを読み込んで、どうやらこのHelloWorldというコードは、立方体の上に球が落ちてくるという現象の、立方体と球の座標を出力しているらしいことを知る。
立方体の大きさは100、Y方向(鉛直方向)座標位置は-56で固定。
球の大きさは1、Y方向の初期位置は10。
これをLWで再現してみる。
LWでやってみる

※クリックして画像を開くと(多分)動きます。
タイムステップというかフレームレートの関係性がよく分からなかったけど、まぁこういう感じなんでしょう。
この程度ならちゃっちゃと出来ます。
逆に言えば今はこの程度しか出来ないです。
衝突の判定とかのクラスを読み込むの面倒そうだけど、理解しなきゃならんのだろうなぁ……。
※2018/09/10追記
タイムステップについて補足。
後で確認したらHello WorldとLWでちゃんと時間軸が一致していました(当たり前と言えば当たり前)。
Hello Worldでは60fps
LWのデフォルトでは30fps
という差があったので微妙に混乱していました。
LWの物理演算はBulletを使用している訳で、まずはBulletの中身を調べてみたりします。
HelloWorld?
とりあえず公開されているソースコードをダウンロードしてみる。
クイックスタートやユーザーマニュアルを読んでみて……まぁよく分からんので、とりあえずHelloWorld.cppとかいう、何か最初にやるっぽいやつをビルドしてみる。
HelloWorld.exeとかいう実行ファイルが出来たらしいが、これが何やねんと。
ひとまずコマンドプロンプトから実行してみると、何やら座標らしきものが出力される。
この時点で何となくピンときたので、出力された座標をエクセルに持ってきて、グラフを書いてみる。

明らかに何かが自由落下している感じの座標。
それから少しコードを読み込んで、どうやらこのHelloWorldというコードは、立方体の上に球が落ちてくるという現象の、立方体と球の座標を出力しているらしいことを知る。
立方体の大きさは100、Y方向(鉛直方向)座標位置は-56で固定。
球の大きさは1、Y方向の初期位置は10。
これをLWで再現してみる。
LWでやってみる

※クリックして画像を開くと(多分)動きます。
タイムステップというかフレームレートの関係性がよく分からなかったけど、まぁこういう感じなんでしょう。
この程度ならちゃっちゃと出来ます。
逆に言えば今はこの程度しか出来ないです。
衝突の判定とかのクラスを読み込むの面倒そうだけど、理解しなきゃならんのだろうなぁ……。
※2018/09/10追記
タイムステップについて補足。
後で確認したらHello WorldとLWでちゃんと時間軸が一致していました(当たり前と言えば当たり前)。
Hello Worldでは60fps
LWのデフォルトでは30fps
という差があったので微妙に混乱していました。
最新コメント