DxLibで自作物理演算
DxLibで自作物理演算
DxLibで物理演算をしたいとおもいます
MMDを使うことができないので自分で実装しようかと思います
Bulletを使うか迷いましたが、使い方がよくわからないので断念
物理演算で使用したいパラメーターは
重力、作用・反作用、地面との摩擦力です。それ以外の空気抵抗や風は必要ないものとします
これはあくまで一例ですが、歩くことを考えたいと思います
左足を前に出そうとすると、地面をけることとバランスが崩れることにより右斜め前に若干倒れながら左足が接地します
この時、左足が地面と反発して力を受けるでしょうが些細なものであると思われるので無視します。(歩きに違和感があれば、ここを無視しなければよい)
次に、右足を(以下略)
というのを交互に繰り返すことによって歩けると思います。
足を動かすという行為自体は、フレームを回転させることによりできるでしょう。
また、地面とのあたり判定は膝から足の裏までを覆うカプセルを用意すればいいでしょう
しかし、体が重力に従って左足を出すと右斜め前に倒れるというのをどうやって実装すればいいのかわかりません。
MMDを使うことができないので自分で実装しようかと思います
Bulletを使うか迷いましたが、使い方がよくわからないので断念
物理演算で使用したいパラメーターは
重力、作用・反作用、地面との摩擦力です。それ以外の空気抵抗や風は必要ないものとします
これはあくまで一例ですが、歩くことを考えたいと思います
左足を前に出そうとすると、地面をけることとバランスが崩れることにより右斜め前に若干倒れながら左足が接地します
この時、左足が地面と反発して力を受けるでしょうが些細なものであると思われるので無視します。(歩きに違和感があれば、ここを無視しなければよい)
次に、右足を(以下略)
というのを交互に繰り返すことによって歩けると思います。
足を動かすという行為自体は、フレームを回転させることによりできるでしょう。
また、地面とのあたり判定は膝から足の裏までを覆うカプセルを用意すればいいでしょう
しかし、体が重力に従って左足を出すと右斜め前に倒れるというのをどうやって実装すればいいのかわかりません。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DxLibで自作物理演算
物理演算で歩かせるのは並大抵の苦労では出来ませんよ。
地形の傾きとかとかを考えると歩くキャラは物理演算に対応したソフト的なオートバランサーを搭載する必要が出てきます(無いと倒れます)。
あとインバースキネマティックの搭載とか地形に合わせて脚を出す必要が出てきます。
なので、やっていることは歩行ロボットの物理シミュレータの様になるでしょう。
そこまでシミュレートしたいんでしょうか? 物理演算エンジンを作る期間を除いてもそれだけで相当な勉強と期間として数年以上掛かると思いますけど。
>しかし、体が重力に従って左足を出すと右斜め前に倒れるというのをどうやって実装すればいいのかわかりません。
慣性モーメントとか基本的な物理法則を実装できれば実現できます。
ただ、それが大変なんですけどね。
【補足】
3Dで歩かせるとなると、まずMMDやBlenderとなUnity3Dなどで物理演算で歩かせることが出来るか実験したほうが良いと思います。
これだけでも時間がかかりますけどね。
地形の傾きとかとかを考えると歩くキャラは物理演算に対応したソフト的なオートバランサーを搭載する必要が出てきます(無いと倒れます)。
あとインバースキネマティックの搭載とか地形に合わせて脚を出す必要が出てきます。
なので、やっていることは歩行ロボットの物理シミュレータの様になるでしょう。
そこまでシミュレートしたいんでしょうか? 物理演算エンジンを作る期間を除いてもそれだけで相当な勉強と期間として数年以上掛かると思いますけど。
>しかし、体が重力に従って左足を出すと右斜め前に倒れるというのをどうやって実装すればいいのかわかりません。
慣性モーメントとか基本的な物理法則を実装できれば実現できます。
ただ、それが大変なんですけどね。
【補足】
3Dで歩かせるとなると、まずMMDやBlenderとなUnity3Dなどで物理演算で歩かせることが出来るか実験したほうが良いと思います。
これだけでも時間がかかりますけどね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DxLibで自作物理演算
現在のゲームを作り終えたら次は新しいMMOを作ってみようと思うのですが(すでに構想はできている←おい)
これを見て、物理演算で歩かせたり戦闘させたりすれば
たとえば、剣を振るというのもよりリアルになるのではないかと思ったのです。
自身の筋力値よりも重い剣だと振るのがすごい大変とか。
ニコニコで物理演算で~してみた系のがあるので(それはエンジン使ってるのでしょうが)そんなに難しくないのかなと思ってました・・・・・
これを見て、物理演算で歩かせたり戦闘させたりすれば
たとえば、剣を振るというのもよりリアルになるのではないかと思ったのです。
自身の筋力値よりも重い剣だと振るのがすごい大変とか。
ニコニコで物理演算で~してみた系のがあるので(それはエンジン使ってるのでしょうが)そんなに難しくないのかなと思ってました・・・・・
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DxLibで自作物理演算
とりあえず、想像できていないと思いますのでやってみてください。史上最悪のデスペナ さんが書きました:現在のゲームを作り終えたら次は新しいMMOを作ってみようと思うのですが(すでに構想はできている←おい)
これを見て、物理演算で歩かせたり戦闘させたりすれば
たとえば、剣を振るというのもよりリアルになるのではないかと思ったのです。
自身の筋力値よりも重い剣だと振るのがすごい大変とか。
ニコニコで物理演算で~してみた系のがあるので(それはエンジン使ってるのでしょうが)そんなに難しくないのかなと思ってました・・・・・
やってみないと大変さは分からないと思います。剣を振る?それはむちゃくちゃオートバランサーが優秀です。
MMDに詳しくないのですが実験できませんか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DxLibで自作物理演算
物理演算がどういう仕組みなのかわからないのでやってみることすら無理なんですが・・・・・・softya(ソフト屋) さんが書きました:とりあえず、想像できていないと思いますのでやってみてください。
片足を上げると人体が倒れる
というのすらどうするのか思いつきません
これは、モデル自体に骨と筋肉と脳と神経を作って神経伝達パルスのシュミレーションから(中略)筋肉を微調整しつつ(中略)とすればオートバランサーが作れますね!←無駄・・・・・・・・softya(ソフト屋) さんが書きました:剣を振る?それはむちゃくちゃオートバランサーが優秀です。
MMDが出たときからちょくちょく落としては使えずに断念してアンインストールを繰り返しているので・・・・・・・^^;softya(ソフト屋) さんが書きました:MMDに詳しくないのですが実験できませんか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DxLibで自作物理演算
使えない理由はなんでしょう?史上最悪のデスペナ さんが書きました: MMDが出たときからちょくちょく落としては使えずに断念してアンインストールを繰り返しているので・・・・・・・^^;
あとBlenderやUnity3Dでも出来ますが学習コストが高いと思います。
【補足】
そういえば前の話で作業内容だけ書き出し掛けで最終整理されていなかった気がします。
あと、あれをせめて毎週の予定に割り振らないとスケジュールを立てたことになりませんし進行状況が前倒しなのか遅れているのかも確かめ様が無いですよ。
もちろん学校の行事などは予定に組み入れて時間を開けてください。
6月までって結構短いですから今のうちに予定を決めましょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DxLibで自作物理演算
参考になる本として、オーム社 二足歩行ロボットのモデルベース開発 というのがあります。ちょっと古いですが、私が興味あった頃購入しました。
難しくて断念しました。というより、小遣いでは買えないソフトがいります。
MATLAB/Simlink
Autodesk Inventor
MSC.visualNastran 4D
小遣いで買えるのはAutodesk Inventorだけですね。
すべてを備えている大学に進学しましょうね。
難しくて断念しました。というより、小遣いでは買えないソフトがいります。
MATLAB/Simlink
Autodesk Inventor
MSC.visualNastran 4D
小遣いで買えるのはAutodesk Inventorだけですね。
すべてを備えている大学に進学しましょうね。
non
Re: DxLibで自作物理演算
ツールやライブラリの物理演算は、ぶら下がったモデルが障害物に当たっている箇所で避けるといったことしかできないので、自立するためにはフィードバックの計算をしなければなりません。
フィードバックを自前で実装しようとすると物理演算ライブラリと同等のものをもうひとつ作る以上のスキルが必要ですし、まともに計算すると重くてゲームでは使いものにならないと思います。
件のゲームは物理演算で歩いているのではなくて、頭の位置や銃の位置を上下する演出のために、固定の歩きアニメーションから足の位置を求めて反映させているだけに見えます。
弾が当たったときの倒れ方が同じですし、むしろこの手のゲームとしては物理演算を使っている箇所が少ない気がします。
物理演算を実装するのなら、まず地面に立っている棒にかかる重力を計算するところからはじめましょう。
棒の傾きで垂直方向と水平方向に力が分かれますので、各方向の成分から運動量を計算して反映させます。
あとはその棒をたくさん繋げるだけです。
フィードバックを自前で実装しようとすると物理演算ライブラリと同等のものをもうひとつ作る以上のスキルが必要ですし、まともに計算すると重くてゲームでは使いものにならないと思います。
件のゲームは物理演算で歩いているのではなくて、頭の位置や銃の位置を上下する演出のために、固定の歩きアニメーションから足の位置を求めて反映させているだけに見えます。
弾が当たったときの倒れ方が同じですし、むしろこの手のゲームとしては物理演算を使っている箇所が少ない気がします。
物理演算を実装するのなら、まず地面に立っている棒にかかる重力を計算するところからはじめましょう。
棒の傾きで垂直方向と水平方向に力が分かれますので、各方向の成分から運動量を計算して反映させます。
あとはその棒をたくさん繋げるだけです。
Re: DxLibで自作物理演算
自分の能力不足です。使い方がいろんな講座とか見てますが分からないんですよね・・・・・・softya(ソフト屋) さんが書きました:使えない理由はなんでしょう?
それと、MQOからMMDにインポートするための変換ソフトが起動しないってのもあったかな?
今までスケジュールを立てたことなどないので予定を割り振るという概念がありませんでした^^;softya(ソフト屋) さんが書きました:毎週の予定に割り振らないとスケジュールを立てたことになりませんし進行状況が前倒しなのか遅れているのかも確かめ様が無いですよ。
もちろん学校の行事などは予定に組み入れて時間を開けてください。
今からやってきます
もう大学なので^^;しかも情報系どころか工学系ですらないという^^;non さんが書きました:すべてを備えている大学に進学しましょうね。
それなら高校の物理Iレベルですね。つまり、ここでいう棒をボーンに置き換えれば・・・・・・ISLe さんが書きました:物理演算を実装するのなら、まず地面に立っている棒にかかる重力を計算するところからはじめましょう。
棒の傾きで垂直方向と水平方向に力が分かれますので、各方向の成分から運動量を計算して反映させます。
あとはその棒をたくさん繋げるだけです。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DxLibで自作物理演算
>それなら高校の物理Iレベルですね。つまり、ここでいう棒をボーンに置き換えれば・・・・・・
角運動量が絡むので、そんな単純な問題でも無いですよ。
ちなみに最近の高校物理では習わない項目の様です。
それと高校で習ったから簡単というものはないですね。
試しに物が倒れるを機能定義してみてください。
【補足】
こういうのがあるので歩かせてみたらどうでしょうか?
「Phun.jp | Phun日本語解説サイト」
http://www.phun.jp/
まぁ、こんな感じになる様です。フィードバック制御がないとこんなものですね。
[nico]http://www.nicovideo.jp/watch/sm4203499[/nico]
角運動量が絡むので、そんな単純な問題でも無いですよ。
ちなみに最近の高校物理では習わない項目の様です。
それと高校で習ったから簡単というものはないですね。
試しに物が倒れるを機能定義してみてください。
【補足】
こういうのがあるので歩かせてみたらどうでしょうか?
「Phun.jp | Phun日本語解説サイト」
http://www.phun.jp/
まぁ、こんな感じになる様です。フィードバック制御がないとこんなものですね。
[nico]http://www.nicovideo.jp/watch/sm4203499[/nico]
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DxLibで自作物理演算
そうでしたっけ?数年前のことだから覚えてないや。そういえば角運動量は2でやったような・・・・?物理2は独学だから自信ありsoftya(ソフト屋) さんが書きました:角運動量が絡むので、そんな単純な問題でも無いですよ。
ちなみに最近の高校物理では習わない項目の様です。
仮に細長い一様な円柱状の棒が立っていると考える。softya(ソフト屋) さんが書きました:試しに物が倒れるを機能定義してみてください。
速度ベクトルをSpeedとし、加速度ベクトルをAccel、重力をGravityとする
棒の下側の円の中心が棒のワールド座標(X,Y,Z)だとして、上側の円の中心座標を(x,y,z)とする
まず、X軸方向について|X-x|が0なら問題なし
0でない場合、|X-x|と棒の長さからsinθを求める。
Accel = Gravity * sinθ
Speed += Accel
現在と移動後のなす角度をωとすると、
tanω = Speed/(x,y,z)
この、ωぶんだけZ軸回転する行列を得る
Z軸に対しても同様
得た二つの行列を掛け算して、棒を回転させる
であってますか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DxLibで自作物理演算
慣性モーメントとか角速度とか質量重心とか力点・作用点とか出てこない段階で、かなり限定した物理演算もどきになると思いませんか?
少なくとも円柱はそれっぽく倒れないと思います。円柱ではなく線分が倒れる感じでしょうかね。
ちなみに、ちょっと傾けただけだと円柱は元に戻りますので、それがシミュレート出来ていないことになります。
少なくとも円柱はそれっぽく倒れないと思います。円柱ではなく線分が倒れる感じでしょうかね。
ちなみに、ちょっと傾けただけだと円柱は元に戻りますので、それがシミュレート出来ていないことになります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DxLibで自作物理演算
なんかそこら辺の浅いレベルは物理2独学の時にやったような・・・・・?softya(ソフト屋) さんが書きました:慣性モーメントとか角速度とか質量重心とか力点・作用点
角速度は この加速度ベクトルに内包されるかなと思ったのですが・・・・・・・
ああ、そういえば回転する点よりも重心が外側にあるときに倒れ、内側にあるときはもとに戻りますね。softya(ソフト屋) さんが書きました:ちなみに、ちょっと傾けただけだと円柱は元に戻りますので
となると、今回は重心は一様な円柱なので半分の高さの、円柱の軸上に存在するので、「上の円の中心」を「重心の位置」に置き換えて・・・・・・
あ、でも回転中心の点(場合によっては辺)はどうやって求めましょう・・・・・・
Re: DxLibで自作物理演算
横から失礼します。
分野としては剛体力学になるので、質点としては議論できません
別で勉強なさったほうが良いのではないかと
辺上の点で接するときはその点から垂直抗力を受けますが面で接しているときは面全体から垂直抗力を受けるので中心に集まっていると考えることができます
これによって重力と垂直抗力とのモーメントの計算などから円柱が倒れるかどうかの判定が可能になります
慣性モーメントは物理Ⅱとかでやる内容ではありません 高校の範囲外です史上最悪のデスペナ さんが書きました:なんかそこら辺の浅いレベルは物理2独学の時にやったような・・・・・?softya(ソフト屋) さんが書きました:慣性モーメントとか角速度とか質量重心とか力点・作用点
分野としては剛体力学になるので、質点としては議論できません
別で勉強なさったほうが良いのではないかと
円柱の倒れることを考えるなら剛体と床との接触を考えなければいけません史上最悪のデスペナ さんが書きました: となると、今回は重心は一様な円柱なので半分の高さの、円柱の軸上に存在するので、「上の円の中心」を「重心の位置」に置き換えて・・・・・・
あ、でも回転中心の点(場合によっては辺)はどうやって求めましょう・・・・・・
辺上の点で接するときはその点から垂直抗力を受けますが面で接しているときは面全体から垂直抗力を受けるので中心に集まっていると考えることができます
これによって重力と垂直抗力とのモーメントの計算などから円柱が倒れるかどうかの判定が可能になります
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DxLibで自作物理演算
myuon_myonさんありがとうございます。
私も、ここまで踏み込んだことはないので計算式とか考えると調べるのに相当時間がかかりそうです。
少なくとも自由落下と同じ速度では倒れないはずですよ。
まぁ、実のところコレに当たり判定まで加わるので物理シミュレーションはすごく大変なのですよ。
ポリゴン面同士で単純に当たり判定するとすり抜けますからね。
私も、ここまで踏み込んだことはないので計算式とか考えると調べるのに相当時間がかかりそうです。
少なくとも自由落下と同じ速度では倒れないはずですよ。
まぁ、実のところコレに当たり判定まで加わるので物理シミュレーションはすごく大変なのですよ。
ポリゴン面同士で単純に当たり判定するとすり抜けますからね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- Dixq (管理人)
- 管理人
- 記事: 1661
- 登録日時: 13年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: DxLibで自作物理演算
MMDは難しくないですよ。
MMD杯とかあれだけにぎわっている位ですから。(使いこなしているわけではないですが、基本操作は簡単です)
簡単とは言え、起動して何も勉強せずに使えるほどあまくないです。
参考サイトや参考書を見ながら、少しずつ勉強していく必要があります。
日本語の参考情報がこれだけ豊富にそろっていて、しかも容易に操作できるように作ってあるツールですから、
それに抵抗を感じていると、他の専門的なツールを扱うのはもっと困難に感じてしまうと思います。
まずは、簡単なツールで慣れてしまうことをお勧めします。
MMD杯とかあれだけにぎわっている位ですから。(使いこなしているわけではないですが、基本操作は簡単です)
簡単とは言え、起動して何も勉強せずに使えるほどあまくないです。
参考サイトや参考書を見ながら、少しずつ勉強していく必要があります。
日本語の参考情報がこれだけ豊富にそろっていて、しかも容易に操作できるように作ってあるツールですから、
それに抵抗を感じていると、他の専門的なツールを扱うのはもっと困難に感じてしまうと思います。
まずは、簡単なツールで慣れてしまうことをお勧めします。
Re: DxLibで自作物理演算
思ったよりも難しい・・・・・・・
棒を倒すだけでこんなにめんどくさいとは思いませんでした^^;
MMDは・・・・・・・・・・・
棒を倒すだけでこんなにめんどくさいとは思いませんでした^^;
MMDは・・・・・・・・・・・
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DxLibで自作物理演算
とりあえ基礎技術的な話に走っちゃいましたが、物理演算で歩かせる・攻撃するってことはロボットで歩かせると攻撃するとかを実現するに等しいです。
現実に対して有利な点は、質量・素材強度・筋力(モータトルク)・摩擦係数を自在に操れる所ぐらいでしょうか。
それ以外は有利な点はないので研究機関のレベルを超えた物となるでしょう。
格好いい動きとか、体さばきなどとても実現できないと思います。
人っぽい歩き方、山登りだけでも実現できたらかなり凄いと言うレベルでしょう。
なぜなら、そんなに簡単にできるのなら映画や市販ゲームで使われているはずです。
でも使わていないのは、それだけの理由があるからって事です。
現実に対して有利な点は、質量・素材強度・筋力(モータトルク)・摩擦係数を自在に操れる所ぐらいでしょうか。
それ以外は有利な点はないので研究機関のレベルを超えた物となるでしょう。
格好いい動きとか、体さばきなどとても実現できないと思います。
人っぽい歩き方、山登りだけでも実現できたらかなり凄いと言うレベルでしょう。
なぜなら、そんなに簡単にできるのなら映画や市販ゲームで使われているはずです。
でも使わていないのは、それだけの理由があるからって事です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DxLibで自作物理演算
これは知りませんでした梨樹 さんが書きました:MikuMikuMoving等、後継ツール
なるほど・・・・・・確かに言われてみれば物理エンジンとかで実装できるならファイル容量も抑えられますし、見た目もよりリアルになるからわざわざモーションキャプチャを行って・・・・・ってやりませんよね。softya(ソフト屋) さんが書きました:研究機関のレベルを超えた物となるでしょう。
格好いい動きとか、体さばきなどとても実現できないと思います。
人っぽい歩き方、山登りだけでも実現できたらかなり凄いと言うレベルでしょう。
なぜなら、そんなに簡単にできるのなら映画や市販ゲームで使われているはずです。
でも使わていないのは、それだけの理由があるからって事です。
結論としては
平面上であれば物理演算もどきでへんな歩き方はさせれるかもしれないけど、起伏がある場合や現実の人間っぽい動きは無理ということですね
【補足】
そういえばMMDの物理演算で壁を殴ったりするのありましたが、現実に壁殴っても(人体の方が)あんな挙動しませんしね・・・・・・・
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DxLibで自作物理演算
みんさんの色々なコメントにちゃんと答えていないような?
各局物理演算は諦めるんでしょうか?
あとMMDは別件なので、ちゃんと返事をされるべきかと。
>平面上であれば物理演算もどきでへんな歩き方はさせれるかもしれないけど、起伏がある場合や現実の人間っぽい動きは無理ということですね
無理じゃなくて非常に困難なのです。
それを作りたい人には楽しい作業でしょうが、それを楽しみたいのでしょうか?
技術研究というレベルで何年も掛かるレベルと最初の回答でお断りしたはずですが。
各局物理演算は諦めるんでしょうか?
あとMMDは別件なので、ちゃんと返事をされるべきかと。
>平面上であれば物理演算もどきでへんな歩き方はさせれるかもしれないけど、起伏がある場合や現実の人間っぽい動きは無理ということですね
無理じゃなくて非常に困難なのです。
それを作りたい人には楽しい作業でしょうが、それを楽しみたいのでしょうか?
技術研究というレベルで何年も掛かるレベルと最初の回答でお断りしたはずですが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DxLibで自作物理演算
大体答えたと思いますが、見落としていたらごめんなさい。どれでしょう?softya(ソフト屋) さんが書きました:みんさんの色々なコメントにちゃんと答えていないような?
softya(ソフト屋) さんが書きました:あとMMDは別件なので、ちゃんと返事をされるべきかと。
言葉が足りませんでしたね。MMDはトラウマというわけではないですが、あまり見たくはないかな、という感じです史上最悪のデスペナ さんが書きました:MMDは・・・・・・・・・・・
これを踏まえて、今の私では非常に困難どころか無理なレベルだと判断しました。softya(ソフト屋) さんが書きました:無理じゃなくて非常に困難なのです。
それを作りたい人には楽しい作業でしょうが、それを楽しみたいのでしょうか?
技術研究というレベルで何年も掛かるレベルと最初の回答でお断りしたはずですが
楽しむだけの余裕は今のところありませんね。ゲーム制作で手一杯です。
物理演算はあきらめます
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DxLibで自作物理演算
>大体答えたと思いますが、見落としていたらごめんなさい。どれでしょう?
物理演算やMMDの事とか、色々教えてくれた人にお礼と最終決断したことを言っていないと言うことです。
MMDについては、この時点では殆どどうするのか答えてなかったと思いますよ。
物理演算やMMDの事とか、色々教えてくれた人にお礼と最終決断したことを言っていないと言うことです。
MMDについては、この時点では殆どどうするのか答えてなかったと思いますよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DxLibで自作物理演算
失礼しました。
では、改めて
MMDはいろいろあるのであまり使いたくはありません。
物理演算は私の手に余るので諦めます
みなさん、ありがとうございました
では、改めて
MMDはいろいろあるのであまり使いたくはありません。
物理演算は私の手に余るので諦めます
みなさん、ありがとうございました
Re: DxLibで自作物理演算
物理演算という点に絞って話が進んでしまいましたが、本質的なことを一つ。
人の歩行に対し本当に必要な知識は物理ではありません。
簡単に言えば物理など知っていて当然のものなのです。
人の歩行をシミュレーションしようとお考えでしたら、本当に必要になるのは「制御工学(Control Engineering)」です。
フィードバックという単語がちらっと出てきていますが、フィードバックも制御工学の用語です。
とはいえここで挙げられている制御ですら、伝達関数などを用いたいわゆる古典制御と呼ばれる分野の範疇で、
いわば初歩中の初歩であり、人間の動きを再現するにはあまりにも陳腐です。
(一般に人間は小脳を使って制御をしているといわれていますが、
実際人間が歩行時に行っているのはフィードバックとフィードフォワードを組み合わせた複雑な制御です)
まぁ結論は同じなのですが、そこまでのことを「ゲームで」する必要はまったくないと考えます。
ただもしこれを読んでる人で、じゃぁ歩行ってどうやってプログラムするんだよって思った方は工学系の大学に行って
制御を学んだらいいと思います。
ただ何が言いたいかというと、仮定から違うということです。
人の歩行を例に挙げて物理演算を語ろうとすればそりゃ無理です。
なぜかというと、物理を極めたところで歩行にたどり着かないからです。
歩行は制御の範疇なのではっきり言って物理演算そのものとはつながっていません。
実をいうとモデル化さえ、ほかの人がしてしまえば、そもそも物理の知識がなくったって制御そのものは可能です。
(実際制御の本質的な部分に物理など関係ない)
つまり歩行のシミュレーションが無理だからといって物理演算が無理というのはちょっと違うと思います。
人の歩行に対し本当に必要な知識は物理ではありません。
簡単に言えば物理など知っていて当然のものなのです。
人の歩行をシミュレーションしようとお考えでしたら、本当に必要になるのは「制御工学(Control Engineering)」です。
フィードバックという単語がちらっと出てきていますが、フィードバックも制御工学の用語です。
とはいえここで挙げられている制御ですら、伝達関数などを用いたいわゆる古典制御と呼ばれる分野の範疇で、
いわば初歩中の初歩であり、人間の動きを再現するにはあまりにも陳腐です。
(一般に人間は小脳を使って制御をしているといわれていますが、
実際人間が歩行時に行っているのはフィードバックとフィードフォワードを組み合わせた複雑な制御です)
まぁ結論は同じなのですが、そこまでのことを「ゲームで」する必要はまったくないと考えます。
ただもしこれを読んでる人で、じゃぁ歩行ってどうやってプログラムするんだよって思った方は工学系の大学に行って
制御を学んだらいいと思います。
ただ何が言いたいかというと、仮定から違うということです。
人の歩行を例に挙げて物理演算を語ろうとすればそりゃ無理です。
なぜかというと、物理を極めたところで歩行にたどり着かないからです。
歩行は制御の範疇なのではっきり言って物理演算そのものとはつながっていません。
実をいうとモデル化さえ、ほかの人がしてしまえば、そもそも物理の知識がなくったって制御そのものは可能です。
(実際制御の本質的な部分に物理など関係ない)
つまり歩行のシミュレーションが無理だからといって物理演算が無理というのはちょっと違うと思います。
Re: DxLibで自作物理演算
確かに、人間は(正常なら)多少身体が傾いても自然に戻りますよね。要するに脳が筋肉を収縮させて元の体勢に戻そうとするわけですがGRAM さんが書きました:なぜかというと、物理を極めたところで歩行にたどり着かないからです。
歩行は制御の範疇なのではっきり言って物理演算そのものとはつながっていません。
例えば、脚の筋肉は腕の筋肉の2倍(数字は適当)の力が出せるから、脚の部分は2倍の重さにして
腹筋よりも背筋の方が2倍(数字は適当)の力が出せるから背中側を2倍の重さにして
とやれば疑似的に出来るのではないかとふと思いましたがどうなんでしょう?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DxLibで自作物理演算
GRAMさんの言われる通り、そんなに制御工学が単純な問題ではないってことは確かです。史上最悪のデスペナ さんが書きました:確かに、人間は(正常なら)多少身体が傾いても自然に戻りますよね。要するに脳が筋肉を収縮させて元の体勢に戻そうとするわけですがGRAM さんが書きました:なぜかというと、物理を極めたところで歩行にたどり着かないからです。
歩行は制御の範疇なのではっきり言って物理演算そのものとはつながっていません。
例えば、脚の筋肉は腕の筋肉の2倍(数字は適当)の力が出せるから、脚の部分は2倍の重さにして
腹筋よりも背筋の方が2倍(数字は適当)の力が出せるから背中側を2倍の重さにして
とやれば疑似的に出来るのではないかとふと思いましたがどうなんでしょう?
フィードバックとフィードフォワードって部分がそんな単純な問題と受け取れたのでしょうか?
「二足歩行ロボット - Wikipedia」
http://ja.wikipedia.org/wiki/%E4%BA%8C% ... 3%E3%83%88
その道の専門家でもない人がちょっとやって、物理演算と歩行制御の両方を手軽に料理できると考えるのは無謀以外の何物でも無いです。
それ以外に、もしも何らかの動く2足歩行する何かが出来たとして。
上のWikipediaにも出てきますが俗に「不気味の谷現象」と呼ばれる現象があります。人に近くて人と違う動きをするものに人は拒否反応というか嫌がるのです。
「不気味の谷現象」
http://ja.wikipedia.org/wiki/%E4%B8%8D% ... E%E8%B1%A1
ちなみに、それ以前だと滑稽にしか見えないでしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DxLibで自作物理演算
私の言いたいことをより具体に言います
他の回答と被りますが、歩行などモーションで
やればいいじゃないですか。ということです。
物理演算をライブラリかするならば、
活躍の場は他にいくらでもありますし、
それを目的としたらよいと思います
例えば、先の円柱ならば、ピストルで空き缶を打った後の
空き缶の挙動を任せるにはぴったりじゃないですか。
私がやる物理演算は有限要素法などここであげられている、物理演算とは
すこし違うのですが、ゲームでも似たようなことは言えるんじゃないかと思います。
つまりそれぞれの得意分野を理解して行くことが大事なんじゃないですかね?
他の回答と被りますが、歩行などモーションで
やればいいじゃないですか。ということです。
物理演算をライブラリかするならば、
活躍の場は他にいくらでもありますし、
それを目的としたらよいと思います
例えば、先の円柱ならば、ピストルで空き缶を打った後の
空き缶の挙動を任せるにはぴったりじゃないですか。
私がやる物理演算は有限要素法などここであげられている、物理演算とは
すこし違うのですが、ゲームでも似たようなことは言えるんじゃないかと思います。
つまりそれぞれの得意分野を理解して行くことが大事なんじゃないですかね?
Re: DxLibで自作物理演算
ただの戯言だったのですが^^;
いえ、そういうわけではなく、それで近似できないのかなと思っただけですsoftya(ソフト屋) さんが書きました:フィードバックとフィードフォワードって部分がそんな単純な問題と受け取れたのでしょうか?
これって人間の顔に対するものだと思ってましたsoftya(ソフト屋) さんが書きました:「不気味の谷現象」
たとえば、こんな技術があるそうですが、CPU(GPU?)の性能さえクリアすれば、さらにこういうのを駆使してより、挙動がリアルなゲームが出来上がるのではないかと。そうなるとモーションとか必要なくなりますし、ゲームの容量自体は低下するのではないかと夢想しただけなのです(注:もちろん、リンク先のような物は作れるとは一切思っていません)GRAM:携帯(史上最悪のデスペナ編集) さんが書きました:歩行などモーションで
やればいいじゃないですか。ということです。
(中略)
それぞれの得意分野を理解して行くことが大事なんじゃないですかね?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DxLibで自作物理演算
描画技術と物理演算と制御工学をごっちゃにしているとおもいますが、物理エンジンアクセラレータ「PhysX」は売れませんでしたね。
結局、物理演算もGPUで行うというGPGPUの方向に向かっているわけですがCPU/GPUのマルチコアの限界が性能上限を決めそうです。
ちなみに、モーションがゲーム容量に占める割合はさほど多くはありません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DxLibで自作物理演算
そうなんですか。キャラにモーションをつけたらモデルの容量が結構大きくなるので音楽、マップに次いで容量を占めてるのかとsoftya(ソフト屋) さんが書きました: ちなみに、モーションがゲーム容量に占める割合はさほど多くはありません。
Re: DxLibで自作物理演算
なぜ物理演算でリアルになるとモーションが不要になるのでしょうか。
前に書きましたけど、ゲームで実用になるレベルの物理演算はぶら下がっている(もしくは落下する)物体が他の物体を避ける程度のものです。
ヒトの歩行のような『自発的に』動くものはモーション付けが必要だと思いますが。
進化して自立歩行ができるようになったのをAIで実装するとか?
剛体になるととんでもなく難しいので、まずは棒で考えてみたらと提案したのですがね。
前に書きましたけど、ゲームで実用になるレベルの物理演算はぶら下がっている(もしくは落下する)物体が他の物体を避ける程度のものです。
ヒトの歩行のような『自発的に』動くものはモーション付けが必要だと思いますが。
進化して自立歩行ができるようになったのをAIで実装するとか?
剛体になるととんでもなく難しいので、まずは棒で考えてみたらと提案したのですがね。
Re: DxLibで自作物理演算
私のイメージでは、仮に段差に躓いたときにISLe さんが書きました:なぜ物理演算でリアルになるとモーションが不要になるのでしょうか。
モーションだと転んだ状態で足だけ動いてそれが地面にあたるからなんかビクンビクンと変な挙動をするか、転びかけたときように新たなモーションを用意して体勢を立て直してからまた動き出すという風です
モーションなしでボーンを回転させるだけだと、わざわざ二つのモーションを用意しなくてもプログラム上で解決するのではないかと思ったのです
棒でも難しかったです。なので諦めるという結論に・・・・・・・ISLe さんが書きました:剛体になるととんでもなく難しいので、まずは棒で考えてみたらと提案したのですがね。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DxLibで自作物理演算
そういえばFPSなどでよく転がった死体が物理演算されてますがリアリティのない挙動をしますね。現在ゲームで出来る物理演算なんてそんな程度です。史上最悪のデスペナ さんが書きました: 私のイメージでは、仮に段差に躓いたときに
モーションだと転んだ状態で足だけ動いてそれが地面にあたるからなんかビクンビクンと変な挙動をするか、転びかけたときように新たなモーションを用意して体勢を立て直してからまた動き出すという風です・
モーションなしでボーンを回転させるだけだと、わざわざ二つのモーションを用意しなくてもプログラム上で解決するのではないかと思ったのです
その上に未だに制御工学の研究分野として理論確立されていない人間の挙動をプログラミングして入れるってことをしたいってことですよね。
この研究分野として理論確立されていないってのがポイントで研究者の上をいく事を目指すことになるわけです。
たたらを踏むなんて、どんな制御をすれば良いか私は想像もつきませんね。
そういう事を理解されているのか調べたのかお聞きしたいです。
【補足】そういえば、週単位でスケジュールって確定したんでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DxLibで自作物理演算
いや、流石にそこまでは求めれないですけどね^^;不気味の谷で言ったら谷の手前側ぐらいで・・・・・・・・softya(ソフト屋) さんが書きました:その上に未だに制御工学の研究分野として理論確立されていない人間の挙動をプログラミングして入れるってことをしたいってことですよね。
この研究分野として理論確立されていないってのがポイントで研究者の上をいく事を目指すことになるわけです。
さらに、「したい」のではなく「したかった」です^^;
あ、あのスケジュールじゃやっぱダメですかね^^;?
予備、リファクタリングetcを入れると今度は6月に間に合わないと思うので・・・・・・・・・・・・・
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: DxLibで自作物理演算
>;不気味の谷で言ったら谷の手前側ぐらいで。史上最悪のデスペナ さんが書きました:いや、流石にそこまでは求めれないですけどね^^;不気味の谷で言ったら谷の手前側ぐらいで・・・・・・・・softya(ソフト屋) さんが書きました:その上に未だに制御工学の研究分野として理論確立されていない人間の挙動をプログラミングして入れるってことをしたいってことですよね。
この研究分野として理論確立されていないってのがポイントで研究者の上をいく事を目指すことになるわけです。
さらに、「したい」のではなく「したかった」です^^;
ASIMOは、その辺ですね。
なので私と史上最悪のデスペナさんで感覚がぜんぜん違うと思います。
あのレベルもとうてい無理なので求めていた動きはあれ以下で良かったんですかね?
現実を見るためにスケージュールを立てるのですが順序が逆じゃないでしょうか?史上最悪のデスペナ さんが書きました: あ、あのスケジュールじゃやっぱダメですかね^^;?
予備、リファクタリングetcを入れると今度は6月に間に合わないと思うので・・・・・・・・・・・・・
予備が無いスケジュールは状況変化に耐えられないと言うことです。つまりゲーム制作ではありえません。
予備を入れたらはみ出すというのは、現実には無理なスケジュールと言っているようなものですよ。
6月に間に合わせるために考えているのに現実逃避したら意味ないじゃないですか。
一度立てた後の話で出た内容で今回に盛り込む物はスケジュールに加えてください。
当然ながら、スケジュールを実行ながら現実に合わせて定期的なスケジュールのリファインは必要です。
それとリファクタリングを後に回しても構いませんがあとで苦労すると思います。
内包バグが消えないのもリファクタリングをサボっていたのが原因だと思いますよ。
あとスケジュール的に無理があるなら、一部の内容を次回に回すか、時期をずらすか、あるいは両方かです。
それを検討するためのスケジュールでもあるのです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: DxLibで自作物理演算
ASIMOくらいはやってみたかったですね。もう物理演算は頭の片隅どころか外に追い出す予定です^^;softya(ソフト屋) さんが書きました:ASIMOは、その辺ですね。
なので私と史上最悪のデスペナさんで感覚がぜんぜん違うと思います。
あのレベルもとうてい無理なので求めていた動きはあれ以下で良かったんですかね?
今思うと、最初は物理演算で歩かせるのはPCの性能の問題で難しいのだと思ってたのでしょうね。
スケジュールに関しては元のトピックに戻ります