Shade3D 公式

Bullet プラグインお披露目


#21

傾斜版のスティックが動いてたのでサンプルは傾斜版を転がってくるオブジェを適当に打ち返すサンプルだと思ったので書かせてもらいました

あ、私のほうでもそうだったのでやっぱり駆動型剛体も機能する場合としない場合があるっぽいのかも知れません?


#22

とりあえずボーンだけでですが4階層分のボーンを作って適当に剛体設定かけたら動きました

これはMASAさんのPOSETOOLのボーン使わないと正常に動作しないのですかね?
バネと重さ設定してシュミレートすると上向いちゃいます


#23

MASAさんのPOSETOOLのボーン使わないと正常に動作しないのですかね?
バネと重さ設定してシュミレートすると上向いちゃいます

その挙動が確かに出ます!
そうか!要素マークだけじゃなく、他に入ってないプラグインが挙動に関係してるっぽいです!


#24

箱型のメッシュを作ってボーンをバインドしたオブジェクトにBullet組み込んだら形状がおかしくなりました適当に作ったものですが添付しておきます。

bullet_test.shd (31.0 KB)

う~ん下向きのボーンを作ってグルグルと移動するキーフレーム打ってやってみたのですが上向いちゃいますねやっぱり、そしてボーンも4階層設定なんですが先頭から2階層分だけシュミレートかかってる感じがします、セッティングの仕方が良く解って無いのかもしれませんが、これも添付しておきます。

bullet_test2.shd (33.6 KB)


#25

色々動作チェック有り難うございます。
添付のシーンチェックしますので、しばし時間を。
ちなみに、シミュレーションの計算は、上位ジョイントからしています。
結果、現時点は、剛体もブラウザ上でその順にして置く必要があります。
後、特に私の「代替えボーン」で無くても動きます。

それと、ジョイントにバネ設定すると、普通のジョイントとは、かなり異なる挙動になるとか
どこかに書いてあったような。
Bulletの場合、普通の使い方までは、結構情報があるのですが、パラメータの設定などの詳細部分
などは、Bulletのサイトにも情報がありません。ソースの中身のコメントも結構不十分です。
ソースを読めという事なのでしょうか。


#26

そのまま使えるのが理想ですが現実は辛いw、手間が掛かるような実装になると不具合がどの部分なのか解らなくなりますからね。

この方のページは紹介したか記憶が無いのですがBulletの説明しているページ
http://simplestar.syuriken.jp/lesson/037_BulletPhysics1.htmlt

http://sleepingfox.seesaa.net/category/13096380-1.html

http://westplain.sakuraweb.com/translate/libGDX/Extensions/Physics/Bullet%20physics/Bullet%20physics.cgi

もう少し探してみます


#27

今回、挙動が変で、やっとこ分かったことは、Bulletのマトリックス(btTransForm)とShadeのマトリックスの
回転部分の行と列が逆だった(オフセット部分は、ちゃんと右手系であってるのに)ので、動きが何でも逆に
動いてるみたいだった点。
制限付与付き回転系ジョイント(btGeneric6DofConstraint)の引数の各剛体との間の変換マトリックスの正しい意味(微妙な表現はあった)がどこを探しても見つからず、
例題を眺めながら(これも殆どが相互の回転がないといういい加減な例) 漸く定義して、それが希望通り
動いたので正しいだろうと判断しました。
多分こんな情報は、サイトを探しても見つからないと思います。
ところで、挙動がおかしい件ですが、もしかしたら、アップロード版が、
最新プラグインと最新テストデータでなかったかも知れません。
ダウンロードした、bullet_test.shd は、確かに変な動きをしましたが、
私が使っているプラグインの「bullet編集」で全ての剛体とジョイントを開いて何も修正せずに、
OKで保存したシーンをシミュレーションした所、全部のジョイントがちゃんとブラブラ揺れました。
後、bullet_test2.shd のように拘束ジョイントにモーション設定するのは、駄目です。
拘束ジョイントは、Bulletの演算結果にまかせて勝手に動かせてください。
最上位を動かせたい場合は、最上位のジョイントの剛体1に自作した駆動型剛体を指定して、
その剛体を、別のジョイントで動かしてください。
shade_bullet_beta5.zip (1.9 MB)
調べたところ、プラグインは最新版みたいでした。
添付のファイルに chikuwa さんの bullet_test.shd の再登録版を添付してます。
これらのシーンは、私の所では、ちゃんと動いてますが、もし、皆さんの所で動かないようなら、
shade_bullet 内で利用している私のプラグインとの相互作用かも知れません。
動かないようなら、お知らせください。


#28

修正ありがとうございます、コッソリと会社からDLしましたw帰宅してからいじくって見ようかと思います

我慢できず会社のPCからコソコソとBulletサンプルの動作確認しました全て想定通りの動作をしているようです、3個目の布のシュミレートは一回shadeがクラッシュしましたがshadeを再起動しもう一度モーション再生をしましたら動作しました、続きは帰宅してからいじってみます

自作するとやはりグシャグシャになりますねー何でだろう?手順が正しいのか根本的に何かを勘違いしているのか自分では解らないです、またデータを置いておきます。

bullet_test2.shd (35.0 KB)
bullet_test3.shd (31.0 KB)

試しにBulletプラグイン単体のみでshade3Dを起動してBullet試してみたのですが結果は変わらなかったです


#29

ちょっとお聞きしますがグシャグシャどういう感じになってますか?
私と同じく一番上だけ残してその下のボーンが消えるのでしたらBullet Worldフォルダを先に作ってからその中にボーンを作ると消えないっぽいです(ただし新たにボーンや剛体を加えるとやっぱり消える)

重力に逆らった形状に曲がる挙動も私の方ではまだ出てるっぽいです。

因みに上記のボーンを新しく足したら挙動がおかしくなった私作の剛体設定かけたボーンですが
失敗謎挙動.shd (37.7 KB)
これどう動いてます?
私の環境では


これ(動かす前)が

こうなって


このように動きます。
例によってしたの方のボーンは一番上以外どっかいっちゃってます(曲がり具合は♯♯♯になってる)

……なんかアップしたファイル動かしたら


さらに両方とも先端が消えて

上のがチクタク(?)動くようになった?何か保存の際に設定間違えたか……?


#30

Bullet Worldパートを作ってそれ以下にメッシュやボーンを配置し剛体設定すれば動く仕様のはずです、あと消えてはいないと思います一か所に剛体が集合してしまってる感じなんだと思います、MASAさんにサンプルを見てもらい確認してもらうしか無いかと。色々いじって見てもシュミレートがうまく行かないのでMASAさんの開発環境と自分のPCの環境が揃っているのか、Bulletプラグイン自体になにか積み残しでもあるのかとか等調べられるのは開発者の方だけなのでしばらくは待機と言った感じでしょうか。すでにBulletプラグインのサンプルは第三者からも正常にシュミレートされるのが確認出来たのであと一息の所まで来てるのだと思います、あとはMASAさんの環境と同じ結果になる様に要調整になると…。

更に追記ですが何かメッシュ消えましたね…また新しいファイル作ったのですが

以下手順

Bullet Worldパート作成>メッシュの柱作成>物理を使わないボーン作成>物理に使うボーン4階層作成>4階層のボーンに剛体設定>メッシュをボーンに自動バインド>物理に使わないボーンの下に剛体の入ったボーン全て移動>モーションウィンドウから再生>モデルが消失って感じでした。

bullet_test4.shd (46.3 KB)


#31

私の環境では

これが


このようになったのですが、このボーンごと消えるのは私の環境だけ???


#32

挙動がおかしいのは、動かされる側の動的剛体が、bulletにうまく登録されてないのが原因のようです。
結果、でたらめの変形のマトリックスが返り、それを元にしたジョイントの回転値がでたらめになる
ことが原因のようです。なぜ登録がうまくいってないのか調べて見ます。
もしかしたら、拘束ジョイント化の処理で一部のファクター設定が漏れている可能性はあります。
しばらくおまちください。


#33

どうやら拘束ジョイント生成時に、数珠つなぎの各ジョイント毎の両端の剛体へのリンクにドジがあったようです。
添付のプラグイン(Windows用のみです)で、拘束ジョイントを作れば、今までのように、明後日の方向に
ジョイントがふれて、見えなくなってしまうことはなくなる思います。
旧シーンは、各ジョイントを選択して、「Bullet編集」を実行し、変更無しでOKすれば、治ると思います。
また、ジョイントの挙動ですが、こんなものなのか、私の計算に問題があるかまでは今のところ分かりません。
動きは、ジョイントの可動範囲の指定具合と、各剛体の質量と、全体の大きさでかなりドラスティックに変化するみたいです。
これらの挙動は、MMDの髪の毛やスカートをインポートして、その動きで微調整してみようと思います。

shade_bullet64.zip (391.5 KB)


#34

テストデータを新規作成してBullet物理が反映されているのを確認しました、過去に作ったテストデータもそれなりに動いている感じです

ただ同じデータを何度も編集しているとBulletが停止するのかモーションを再生しても全く動かなくなりその後shade3dがフリーズします、shadeを再起動して同じファイルを開いて再生をしてもbulletが動かないままで、PC本体を再起動してshadeを立ち上げてファイルを開き再生をすると今度は正常にbulletが機能します。

bullet_test6.shd (31.2 KB)

このファイルは最初300フレームのシーンファイルだったのですが途中で300フレームを1000フレームまで延長しています。


#35

すみません、なんか


図のように作った拘束ボーン(製作手順はBullet Worldパート製作→その中にボーン製作→剛体設定で上の一本目。下の二本目はBullet Worldパートの外に作ったボーンをBullet Worldパート内に移動させてから剛体設定という手順です)がモーションを再生すると

という風になり
「Can’t get rigidbody(Sentinel) transform」というメッセージが表示されます。
件の謎の挙動.shd (38.1 KB)試作物

何か手順を間違えましたのでしょうか?(因みに同じ手順で新たにボーンを足すまでは正常に作動する事が確認できました)

それともやはり私の環境に問題があるのでしょうか?(以前書いたのから代わっていないはずなのでshadeを入れなおしてみたりした方がいいのでしょうか?)


#36

yuanshangさん
最期のアップロードの時に書いたように、異常になったシーンは、このメッセージが出るようにしました。
この様な場合、それらの全部のジョイントに対して、ジョイントを選択して「Bullet編集」を実行して、
ダイアログで何も変更せずに、OKを押すと正常に戻ります。
添付のシーンをそのやり方で修正したところ、ちゃんと動く様です。


#37

判りました!新たにBullet Worldパートを製作してその中にボーンを移してボーンをBullet編集→ダイアログで何も変更せずにOKを押すで正常に動くようになりました!
ただ、それでも「Can’t get rigidbody(Sentinel) transform」のメッセージが表示されるので何かまだ間違えているのでしょうか??


#38

chikuwaさん。
微妙な挙動なので、簡単に結論付けられませんが、シーケンス値は、毎回ちゃんと0に初期化していますか?
またシーンを保存したときシーケンスモードがonの場合は、再読込時一度offにしてから
再度onにする必要があります。シーンを保存するときは静止画モードにしてから保存することを勧めます。
また、シミュレーションするときは、必ず、モーションウインドウの最上位の一番左側の◄ボタンで、
シーケンス値を0にしてから再開することを勧めます。そうしないと、シミュレーションを一気に0からその時点のシーケンス値までBulletで実行してしまいます。
何か動かないような場合、シーケンス値を0にして、シーケンスモードを静止画モードにしてから
各種編集後、再度シーケンスモードにして、シーケンス値が0であることを確認してシミュレーションを
再開するという手順を採られた方がいいと思います。


#39

1ステップ実行で出るこのメッセージ分のジョイントが不正です。
最初8個のジョイントが不正でしたので、まだ残っている可能性があります。
ほんとは、ジョイント名を表示した方が親切とは思いましたが、リリース後は、バグは無くなっているので
今回は、単にデバッグ用の意味でメッセージを出したました。
また、皆さん、ジョイン名は初期状態のままですので、区別は付きませんね。
私は、なるべく、ジョイント名連番を付けるなどリネームしてます。自動生成された剛体の
名前も意図的に修正した方が、剛体1、剛体2の指定でわかりやすくなると思います。