Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

設置物のBBアニメーション対応 #49

Closed
3 tasks done
Gakuto1112 opened this issue May 4, 2024 · 4 comments
Closed
3 tasks done

設置物のBBアニメーション対応 #49

Gakuto1112 opened this issue May 4, 2024 · 4 comments
Assignees
Labels
base feature This issue or pull request is related to avatar base features change Change of existing feature
Milestone

Comments

@Gakuto1112
Copy link
Owner

Gakuto1112 commented May 4, 2024

概要

設置物をBBアニメーションに対応させる。

詳細

現在の設置物の実装は、コピーすることにより、何個でも出せるようになっている。モデルパーツをコピーするという実装により、設置物に対してBBアニメーションが使用できない。しかし、実際のユースケースでは、1つしか設置物を設置していない。それよりも、設置物に対してBBアニメーションが使えないことがより痛手となるので、実装を変更したい。

新たな実装として、設置物モデルをコピーするのではなく、1つのモデルの位置を逐次変えることにより設置物として機能させる。そうすれば、設置物に対してBBアニメーションを使えるようになる。

実装時期

今まで使っているキャラクターの設置物に対してはそんなにBBアニメーションをつける必要がないので、すぐに取り掛かる必要はない。 #39 では設置物にBBアニメーションをつける必要があるので、これの直前までの取り掛かる。

タスク

  • 設置物に対してBBアニメーションが使えるように実装を変更
  • 動作テスト
  • イズナの設置物に対してBBアニメーションをつける
@Gakuto1112 Gakuto1112 added base feature This issue or pull request is related to avatar base features change Change of existing feature labels May 4, 2024
@Gakuto1112
Copy link
Owner Author

設計案

  • 2つの設置物モードを設ける。
    • コピーモード:従来の設置物の設置モード。設置物をコピーして設置を行う。BBアニメーションが使えないが、複数の設置物を設置可能。
    • 移動モード:設置物モデルを移動させることにより設置物の設置を行う。1つしか設置できないが、BBアニメーションが使える。
  • 重力フィールドを設ける。1がデフォルトで自由落下する。0で空中静止、負の数で上昇。ドローンのような空飛ぶ設置物に対応できるようにするため。
  • Y座標-64以下だけではなく、320(ブロック設置高さ上限)以上でも消去されるようにする。
  • 火炎耐性フィールドを設ける。ブール値。trueで炎やマグマに焼かれない(消去されない)ようにする。
  • 設置物の位置や向きを変更できる関数を追加する。プレイヤーに追尾する設置物などを作成するため(追尾機能は設置物スクリプトには搭載しない)。
  • 設置物に対して各種コールバック関数を設ける。

@Gakuto1112 Gakuto1112 added this to the v1.9.0 milestone Aug 2, 2024
@Gakuto1112 Gakuto1112 self-assigned this Aug 2, 2024
@Gakuto1112
Copy link
Owner Author

Gakuto1112 commented Aug 2, 2024

当たり判定検出アルゴリズム

  1. 現在の設置物の位置とそのまま落下した場合の次ティックでの位置とで直方体を作る。
  2. その直方体が重なっているブロック座標を全て算出する。
  3. 算出したそれぞれのブロック座標において、当たり判定を調べる。
  4. 調べた当たり判定が設置物と重なりそうか(1.で作った直方体と重なるか)を調べる。
  5. 重なる当たり判定の内、Y軸が最も大きい(小さい)当たり判定が次の設置物の位置である。

@Gakuto1112
Copy link
Owner Author

  • 設置物の位置や向きを変更できる関数を追加する。プレイヤーに追尾する設置物などを作成するため(追尾機能は設置物スクリプトには搭載しない)。
  • 設置物に対して各種コールバック関数を設ける。

これらは、必要になったらでいいや。

@Gakuto1112
Copy link
Owner Author

Gakuto1112 commented Aug 3, 2024

これらは、必要になったらでいいや。

コールバック関数のみ整備しました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
base feature This issue or pull request is related to avatar base features change Change of existing feature
Projects
None yet
Development

No branches or pull requests

1 participant