[リストへもどる]
一括表示
タイトル切断
記事No9832
投稿日: 2011/10/02(Sun) 20:00
投稿者りく
メタルギアソリッドライジングに、「自由切断」というシステムがありますが、あれをHSP+E3Dで再現することは可能でしょうか?

板ポリゴンと当たり判定して、各辺と面が交差する点に頂点を二つ、切り分けられた両方に生成して、その2つのオブジェクトのうち、切断面で新しく生成された頂点の座標の平均の座標に頂点をもう1つ生成し、その頂点から切断面の頂点2つずつに三角形ポリゴンを張っていく、というようにすれば簡易的に出来そうな気はしますが・・・
(切断されたオブジェクトは大概すぐに消滅するので切断面にテクスチャを貼る必要はおそらく無いと思われます。)

メタセコイアの「ナイフ」ツールに、切断面に自動的に面を張る機能をつけたような感じです。

切断のアルゴリズム自体は上記のでいけそうですが、具体的な手段が分かりません。
何かヒントを下さい。

タイトルRe: 切断
記事No9833
投稿日: 2011/10/02(Sun) 21:17
投稿者おちゃっこ
残念ながらそれは今のシステムでは不可能です。
シェーダー2では頂点を増やせないですし。

元データを増やすとなるとかなり重いし
変更点が多い割りに使う場面が多くないので
実装は見送りたいです。

タイトルRe^2: 切断
記事No9834
投稿日: 2011/10/02(Sun) 22:35
投稿者りく
あー、E3Dの大幅な仕様変更を求めているわけではないですよ。
今のE3D、または少しだけ変更したE3Dで切断をやるなら、どうしたらいいか訊きたかっただけです。

>元データを増やすとなるとかなり重い
ポリゴン数によるとは思いますが、1秒以上かかったりするレベルになるんでしょうか?
メタセコイアはそんなに重くないですけど、あれは編集ソフトですから、mqoファイルのテキストデータそのものをいじっているのではないかと思うのですが・・・(メタセコイアの開発者さんに訊かないと分からないことではありますが、僕はそう予想します。)

斬る瞬間なので重くてもヒットストップ扱いに出来ますが・・・

もしするとすればE3DではなくHSP側でメモリ上のsigデータを編集するようになるんでしょうか?

タイトルRe^3: 切断
記事No9835
投稿日: 2011/10/03(Mon) 08:25
投稿者おちゃっこ
> 今のE3D、または少しだけ変更したE3Dで切断をやるなら、
> どうしたらいいか訊きたかっただけです。

まともに動くものはいまのE3Dでは出来ないと思います。

タイトルRe^4: 切断
記事No9836
投稿日: 2011/10/03(Mon) 20:14
投稿者りく
HSP側で、E3Dが読み込んでいるsigデータにアクセスすることは可能ですか? 

もし不可能なら、対象となるオブジェクトの各頂点の座標をすべて取得、UV座標もすべて取得し、HSPで切断済みのmqoファイルを作り出してメモリ上に保存してE3Dに読み込む、という形になりそうですね。

それだと2秒くらいかかりそうですね。。
まあ、2秒ならまだ許容範囲内ですが。

タイトルRe^5: 切断
記事No9837
投稿日: 2011/10/04(Tue) 05:03
投稿者おちゃっこ
> HSP側で、E3Dが読み込んでいるsigデータにアクセスすることは可能ですか? 
不可能です。

> もし不可能なら、対象となるオブジェクトの各頂点の座標をすべて取得、
> UV座標もすべて取得し、HSPで切断済みのmqoファイルを作り出して
> メモリ上に保存してE3Dに読み込む、という形になりそうですね。

ボーンの影響度もですよ。

タイトルRe^6: 切断
記事No9840
投稿日: 2011/10/04(Tue) 20:35
投稿者りく
> ボーンの影響度もですよ。

なかなか大変ですね。
まあ実装するのは次回作なので、またそのときにやります。
ありがとうございました。