Gakuto1112 / FiguraBlueArchiveCharacters

The avatars for Figura, the skin mod for Minecraft Java Edition, which are imitated characters who appear in "Blue Archive (ブルーアーカイブ)", the game for mobile devices.
https://youtu.be/JrPhLR34mLA
MIT License
41 stars 0 forks source link

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

Closed Gakuto1112 closed 2 months ago

Gakuto1112 commented 5 months ago

概要

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

詳細

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

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

実装時期

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

タスク

Gakuto1112 commented 2 months ago

設計案

Gakuto1112 commented 2 months ago

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

  1. 現在の設置物の位置とそのまま落下した場合の次ティックでの位置とで直方体を作る。
  2. その直方体が重なっているブロック座標を全て算出する。
  3. 算出したそれぞれのブロック座標において、当たり判定を調べる。
  4. 調べた当たり判定が設置物と重なりそうか(1.で作った直方体と重なるか)を調べる。
  5. 重なる当たり判定の内、Y軸が最も大きい(小さい)当たり判定が次の設置物の位置である。
Gakuto1112 commented 2 months ago
  • 設置物の位置や向きを変更できる関数を追加する。プレイヤーに追尾する設置物などを作成するため(追尾機能は設置物スクリプトには搭載しない)。
  • 設置物に対して各種コールバック関数を設ける。

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

Gakuto1112 commented 2 months ago

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

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