HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
1005
アキアキノヒロロ物理設定を行なうgpbモデルについて1解決


アキアキノヒロロ

リンク

2019/10/5(Sat) 11:55:34|NO.88584

「HGIMG4プログラミングガイド / 19.物理挙動の設定」に

物理挙動で使用される形状は、基本的にもとの形状と同じになりますが、
gpbモデルノードの場合はモデル全体を 包み込むバウンディング球が使用されます。

とあります。
 小さいモデルやまん丸に近い球状ならば、それほど気になりませんが、人型モデル
などは、不自然さが目につきます。 物理特性を設定した床の上にうまくぴったり
乗ってくれません。強引に本来の床とは別に、物理特性用の床を用意し、その高さを
調節して、gpbモデル が本来の床の上に乗ってくれるようにしてみましたが、すっきり
しません。何か、いい方法はないのでしょうか。



この記事に返信する


アキアキノヒロロ

リンク

2019/10/6(Sun) 12:13:58|NO.88593

 「モデル全体を 包み込むバウンディング球」

ということであるなら、目的のgpbモデルを包み込む球体のgpbモデルを作り、それに物理設定して、
その球体の移動する座標を目的のgpbモデルにセットしてやればいいはず(高さのみ手直し)、と思い
ましたが、やはりこれでも不自然でした。

 過去ログを探すと、[ NO.84965 / 通りすがり さん ] に
 「透明なダミーの箱モデルを作って DUCKモデルに座標をコピーでは?」
とありました。これですね。

 箱モデルは、包み込む大きさにする必要はなく、画面に表示したときの大きさでいえば、むしろ
目的のgpbモデルよりずっと小さいほうがいいみたいです。箱モデルが傾いたときの床との距離の
違いを気にすることがほとんどなくなるからです。ただ、落下する高さに注意が要るよるようで、
たぶん、通りすがり さんがおっしゃるように、落下速度とか加速度とかそういうのと関係するようで、
あまりに小さくしすぎると、床を突き抜けてしまいます。(感覚的には、大きいほうが重くて突き
抜けそうですが)その辺の関係はわかりませんけれど、プログラムに組み込んで、そのプログラム
にあった大きさにすれば、とりあえずどうにかなりそうです。

 以下、サンプルです。[ sample / hgimg4 ]フォルダ にコピーして実行してみて下さい。

#include "hgimg4.as" gpreset setcls CLSMODE_SOLID, $404040 setpos GPOBJ_CAMERA, 100, 1, 10 ; カメラ設定 gplookat GPOBJ_CAMERA, 0, 0, 0 gpfloor id_floor, 80.0, 80.0, 0x999999 ; 床設定 setang id_floor, 0.2, 0.0, 0.0 gppbind id_floor, 0.0, 1.0 ; 床物理設定 box_xy=2 model_x=0.0 : model_y=50.0 : model_z=0.0 gpload id_model,"res/tamane2" ; 珠音モデル読み込み setscale id_model, 0.03,0.03,0.03 setpos id_model, model_x, model_y, model_z gpact id_model gpbox id1, box_xy, 0xff0000 ; 箱モデル設定 setpos id1, 0.0, 1.0, 0.0 setpos id1, model_x, model_y+box_xy/2, model_z gppbind id1, 1.0, 0.1 ; 箱モデル物理設定 // setalpha id1, 0 ; 箱モデルを透明に *main // gplookat GPOBJ_CAMERA, copy_x, copy_y, copy_z ; 箱モデルを注視点に redraw 0 ; 物理設定した [箱モデル] の座標を [珠音モデル] にコピー getpos id1, copy_x, copy_y, copy_z setpos id_model, copy_x, copy_y-box_xy/2, copy_z ; Y軸の回転のみ コピーしてみた getang id1, ang_x, ang_y, ang_z // setang id_model, ang_x, ang_y, ang_z setang id_model, 0, ang_y, 0 gpdraw redraw 1 await 1000/60 goto *main

 ほぼ、通りすがり さんの パクリになったみたいで、すいません。
 前に上げたスレへお答え頂いた砂時 計 さん、および、通りすがり さん、ありがとうございます。

 解決といたします。



ONION software Copyright 1997-2021(c) All rights reserved.