05078
image credit:[Ando 2024](via Two Minute Papers)

3DCGを使ったゲームでどうしても付いて回るのがオブジェクト同士の衝突判定ミスによるバグ、いわゆる壁抜けバグです。
ZOZOの生産プラットフォーム開発本部に所属する安東遼一さんが執筆した論文「動的弾性剛性を考慮した三次バリア関数」はその衝突判定ミスを完全に解決できる画期的な方法だと海外で紹介されていました。




引用元:動画のコメント

スポンサードリンク



※動画の説明によると従来の衝突判定は対数バリアを使ってオブジェクト同士の衝突を回避しているが、これはオブジェクト同士が近づきすぎると挙動が不安定になるという問題がある。オブジェクト同士が融合するくらい接近してから急ブレーキをかける従来の衝突判定と違って新論文で用いた立方バリアという方法はより滑らかな力学曲線で衝突を緩和していて1億6800万回の衝突判定を行っても失敗することはなかった、とのこと

●comment
生地の繊維が見えるくらいまでズームしてもオブジェクト同士が融合してないのが分かった時は驚いた。

●comment
1億6800万回衝突判定を行って1回も融合しないのはにわかには理解できないくらい凄いな。

●comment
↑これを理解できる人類はいないんじゃないか。

●comment
この解決方法がコンピュータグラフィックス、シミュレーション、テレビゲームだけじゃなく医療研究、航空宇宙産業、ロボット工学、自動運転にとってどれほど重要なのか分かってない人が多いんじゃないか。
これはまさにノーベル賞級の成果だ。
オブジェクト同士の衝突処理、融合の予測と回避は何十年も問題になってきたからな。

●comment
簡単に説明するとゲームで壁抜けが発生するのはプレイヤーキャラの位置が単一の数値として扱われてるから。
例えばプレイヤーキャラが壁にぶつかるとすると1秒間の間に壁に触れてないフレームが59あり、触れているフレームが1ある。
この1フレームの間に開発者はプレイヤーキャラを反発させることでそこに立体的な形状があると表現している。
で、この1フレームをコンピュータに忘れさせると壁抜けが発生する。
この新しい方法はその代りに30フレームの間「壁が近づいてますよ」と段階的に強くなる警告を発するようにしてるわけだ。
なのでCPUが1フレーム壁の存在を忘れたとしても他の29フレームは壁の存在を忘れていないことになる。

●comment
すり抜けバグが起こらない服を3Dのキャラに装着できるようになったらオーダーメイド服のメーカーにとって画期的だろうな。
お客を簡単にボディスキャンしたら服を着た時の様子を瞬時に確認できるようになるから何度も仕立て直す必要がなくなる。
工程が大幅に短縮できるぞ。

●comment
MMDの動画だと服の重なり処理が失敗してることが多いから服飾会社がこのバグを止めるために金を出してるというのは理解できる。

●comment
テーラーシミュレーションゲームをするのが夢だったんだけどこれで理想実現に一歩近づいたな。

●comment
これが繊維業界にとって画期的だという意見に同意する。
これを使えば結び目のシミュレーションもできるんじゃないだろうか。
レンダリング結果と現実はそんなに離れてないと思う。
結果からモデルに学習させれば更に正確になっていくだろうし。

●comment
これは滅茶苦茶凄いし、たった1人の人間が発見したというのも凄い。
この方法が色んな場面で使われるようになって安東遼一の名前が知られるようになることを願ってる。

●comment
このアルゴリズムなら自分のスパゲッティコードも解いてくれそうだ。

●comment
シミュレーションの新たな手法を紹介してくれて嬉しいね。
最近はAI関係の技術ばかりだったから新鮮だ。

●comment
つまりオブジェクト同士が融合する前に警告するための空間バッファが作成され、オブジェクト間の通信がアップグレードされて、今までだったらシステムが各オブジェクトを指定された位置に強制的に移動させてたけどこの方法では周囲のオブジェクトと空きスペースに合わせて位置を決めるようになるのか。

●comment
個人的に壁抜けバグは面白いから残しておいて欲しい派。

●comment
でも1フレームレンダリングするのに1分かかってるんじゃゲームでは使えないぞ。

●comment
この手のレンダリングで1フレームレンダリングするのに何時間じゃなくて数分しかかからないのは驚異的だぞ。
しかもこれは(※最適化ではなく)実証用の動画だ。
GPUをこれ用に最適化させたら1秒かかってたのがミリ秒で済むようになる。
布や葉などあらかじめ決められたアニメーションはこの理論ですぐにでも進歩すると思う。
システムがより効率的になってGPUを最適化したら数年以内にゲームとして通用できるくらいのリアルタイムシミュレーションが可能になると思うぞ。

●comment
”現状では遅い”というのはすぐに改善されるぞ。
『トイストーリー』のレンダリングは無限に思えるくらい時間がかかってた。
今レンダリングしたらかなり高速に終わらせられる。
この動画は素晴らしかった!
ちょっと挙動がゴムっぽいなど改善点はあるけど素晴らしかった。
間違いなくすぐに高速化できるようになると思う。

●comment
これはクールだな!
今のレンダリング技術はGPUで専用に処理して高速化する方法が幾つも使われてる。
将来的にこれもGPUで専用の処理がされるようになるかもしれない。

●comment
1フレームで1億7000万回も衝突判定させるという発想自体が想像もつかないのに実現しているというのが凄すぎる。

●comment
興味深いことにこの論文では現実社会の弱い相互作用(※自然界の4つの基本相互作用の1つ:wikipedia)をシミュレーションで再現してるんだな。
ミクロの世界だと物質は実際には触れあっていない。
静電気の力で反発してるんだ。
ただし反発する力は非常に小さいからマクロレベルでは認識できず、結果は接触してるように見える。

●comment
これはたった1人の研究によるものだけどもっと多くの人、特にアニメーション/VFX業界みたいに巨額の予算を持つ人たちが取り組めば劇的に最適化できるだろうな。

●comment
スカーフを絞めるデモ動画(※8:50あたり)は1フレーム当たりの処理速度が13秒くらい。
完全に正確なシミュレーションをしようと思ったらこのくらいかかるだろうと予想していた速度よりも桁違いに速い。
驚くべき結果だ。

●comment
この論文は素晴らしいな。
安東の手法は明らかにオフライン向けだけどゲーム用のリアルタイム処理への流用はかなり近いと予想できる。
立方バリアはそのままに実際に接触する部分のみ計算を行えば良い。

●comment
ゲーム開発者だからこれを紹介してくれて感謝してる。
これはゲームのメカニクスとしてかなりのポテンシャルを秘めてると思う。
例えばスパゲッティモンスターになってエイリアンの研究施設から抜け出すゲームとか。
自分の体を使って通気口やパイプを潜り抜け、体の繊維を操って掴み、引っ張り、振り回して脱出を試みるとか。

●comment
布の動きをシミュレーションする研究をしてるからこれはかなり興味をひかれた。

●comment
この緩衝技術は現実世界で同じ電荷を帯びた2つの粒子が近づくと互いに反発しあって衝撃を和らげる仕組みを持ってることを思い出した。

●comment
オブジェクト同士が融合しないことがこんなに衝撃的だなんて思いもしてなかった。

●comment
この技術を完全に活用したゲームを見てみたい。

●comment
デモ動画で繊維が関係してるというのはかなり示唆されていたな。
これが重要な要素だと分かったのは布を捩じっていく動画だった。
二重、三重に捩じれていく形状は実際に自分で布を捩じった時に現れる形と凄くよく似てた。

●comment
面白いことにこのデモ動画で接触しあうオブジェクトの間に緩衝帯があると直感的にわかった。
これは自分が機械工学やロボット工学の自動化を専攻してきたからかもしれない。
自分たちの業界だとこういう限界を安全地帯として利用して加速度、速度、力を制限してる。
こういう問題の解決は様々な工学分野の水平方向の連携が必要なのかもね。

●comment
正直驚いた。
立方バリアは本当に画期的だな。
衣服処理のオープンソースライブラリでこの技術論が採用されるのが楽しみだ。

●comment
オブジェクト同士の融合や突き抜けはVRの没入感を妨げる要因の最たるものだからこれは楽しみだな。

●comment
これがVRに導入されたら没入感がやばいことになりそうだ。

●comment
プレイヤーキャラの装備品の重なりが失敗してると一気に冷めるんだよな。

●comment
これは本当に凄いと思う。
この計算方法がシステム用に最適化されるのが楽しみだ。
レンダリングを高速化するためにはまだ時間がかかるだろうけど、ゲーム開発者がこれをプロジェクトに組み込みたいと考えるのは想像に難くないと思う。

●comment
AIを使わずにシミュレーションを行える技術を開発したというのが凄い。

●comment
映画で使われる3Dで発生するオブジェクトのすり抜けバグを修正する作業は滅茶苦茶時間がかかるからこの技術は歓迎されると思う。
CG制作にかかるコストを大幅に削減できるんじゃないかな。

●comment
結び目が形成されていくのを再現出来てるのが凄い。

●comment
いや、これは本当に凄いし興味深いな。
デモ動画の布地が本当に繊維のオブジェクトを編んで作られているのだと気付いたときはびっくりした。
これを応用できる場面はきっとたくさんあると思う。
でもゲームのバグを解消するためには処理速度をもっと上げる必要があるだろうな。
これを修正して初めてゲームで使えるようになると思う。
ゲームでキャラが実際に布を身に纏っていたら凄くクールだろうな。

●comment
物理シミュレーションについて何も知らなかったら円錐の上に布を落とした時にすり抜けが起きなかったのがどれだけ凄いことなのか分かってなかっただろうな。

●comment
これの素晴らしい点はGPUで最適化したら大幅に高速化できることだな。
確かに今は1フレーム当たり13秒かかってるけど数年後には1秒まで短縮できると思う。
実用化は十分に可能だろうな。





ゲームだけでなく映画産業でも最近は3DCGを多用しており、3Dオブジェクトのすり抜けや融合を修正するのに大変な手間がかかっているのでこの方法なら大幅に時間を短縮させられそうです。
ゲームなどのエンタメ産業だけでなく様々な分野で使えそうな発見です。