#3
by usao » 4年前
「キャラクターを位置Aから位置Bに移動させようという際には,その経路を通過しても良いか否かの判定を行い,
ルール的に(経路上に地面とか壁とかがあって)位置Bまで移動させてはいけないのであれば,
ルール的に妥当な代替位置C(地面や壁の手前)にキャラクターを移動させることにする」
…的な形の処理にすればよいのではないでしょうか.
> 地面に底部が当たっているときは重力を付加せずに
みたいな手段で「地面に立っているから → 特殊ルールとして今は重力なし → 結果として今の位置に留まる」とするのではなくて,
「放っておいても重力の影響で下に移動しようとする → そこに移動してよいか?(→地面があるからダメ) → 結果として代替移動先は現在の位置と同一になった」
とする.
それはそれとして,
> y座標の増加量(落下量)が大きいときに...
の原因が,移動先たる位置Bだけを判定していることにあるならば,簡単にできる方法としては
・移動量(位置A→位置B)を,(十分に短い)N個の移動量に分割して判定を行う.
とかすればとりあえず改善するかもしれません.
「キャラクターを位置Aから位置Bに移動させようという際には,その経路を通過しても良いか否かの判定を行い,
ルール的に(経路上に地面とか壁とかがあって)位置Bまで移動させてはいけないのであれば,
ルール的に妥当な代替位置C(地面や壁の手前)にキャラクターを移動させることにする」
…的な形の処理にすればよいのではないでしょうか.
> 地面に底部が当たっているときは重力を付加せずに
みたいな手段で「地面に立っているから → 特殊ルールとして今は重力なし → 結果として今の位置に留まる」とするのではなくて,
「放っておいても重力の影響で下に移動しようとする → そこに移動してよいか?(→地面があるからダメ) → 結果として代替移動先は現在の位置と同一になった」
とする.
それはそれとして,
> y座標の増加量(落下量)が大きいときに...
の原因が,移動先たる位置Bだけを判定していることにあるならば,簡単にできる方法としては
・移動量(位置A→位置B)を,(十分に短い)N個の移動量に分割して判定を行う.
とかすればとりあえず改善するかもしれません.