Code Monkey home page Code Monkey logo

figurabluearchivecharacters's Introduction

Language:  English | 日本語

FiguraBlueArchiveCharacters

This is 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.

Target figura version: 0.1.4

(Some avatar functions don't work correctly in Minecraft 1.20.4 doe to a bug in Figura. I recommend using in Minecraft 1.20.1.)

Thumbnail

(You can watch the introduction video by clicking the above image.)

Creation status

Done

The avatars for these characters are completed. You can download and use avatars below in the game according to the chapter "How to use".

  • Shizuko Kawawa
  • Izuna Kuda
  • Mari Iochi
  • Momoi Saiba
  • Midori Saiba
  • Shiroko Sunaookami
  • Hoshino Takanashi
  • Umika Satohama

In progress

The avatars for these characters are worked in progress. It usually takes about 2~3 weeks, but works have been delayed because of my recently busy schedule. Click on the link in brackets to go to the issue about the character, where you can check the progress.

(There is no avatar currently being created.)

Planned

Although the avatars for these characters are not created, there are plans to create them in the future. They will be created in order from top to bottom. This is just a plan and the order may change or creation may be discontinued.

  • Hoshino Takanashi (Battle) (#62)
  • Iroha Natsume (#64)
  • Ibuki Tanga (#65)
  • Serika Kuromi (#37)
  • Serina Sumi (#38)
  • Hihumi Ajitani (#39)

Features

  • Imitated ex skill cut-ins.

    Ex skill

  • An object remains after the ex skill if the ex skill type is "leaving something in a place".

    • The object doesn't affect the game at all.
    • The object will be remove when the hit boxes of a block and it are overlapped.
    • You can remove all placement objects by holding the Ex skill key (default: V).

    Placement object

  • Press cursor keys (↑→↓←) to show speech bubbles.

    • The "reload" speech bubble will appear automatically while loading a crossbow.

    Speech bubble 1

    Speech bubble 2

  • Holds the character's specific weapon instead of bows and crossbows. Shoots bullets instead of arrows.

    • Note that these changes are only in appearance. You are just shooting arrows in actual.

    Gun

  • A barrier will applied when the player has absorption hearts (yellow hearts).

    Barrier

  • Will be rescued by the helicopter when the player dies.

    • This animation won't visible if the player isn't visible because of Minecraft and Figura specifications.

    Rescued by helicopter

  • Can change costume if the character has multiple costumes.

    Costume

  • Can change your display name to the character's name.

    • Can also display the club name which the character is participated in.
    • Other players also need to install Figura and give enough permissions to see your display name.

    Display name

  • A cake emoji will be added during the student's birthday.

    • It won't be displayed if the display name is the player name.

    Birth day

Ex Skill

The familiar Ex skill cut-in from the original game is imitated. To play Ex skill cut-in, press the Ex skill key (default is "V" key) while in the third-person perspective.

Ex skill

Ex skill cut-ins are only visual and have no effect. However, some Ex skills leave objects in place after the cut-in (also only visual).

Note

  • Ex skill animations are designed for the case where the screen ratio is 16:9. Although you can play them in a screen ratio other than 16:9, but some parts may be crowded out of the screen.
  • Ex skill animations are design for the case where the field of view (FOV) is standard (70). The FOV will be temporarily adjusted to the standard if it is not standard. However, use of some other mods or FOV changes because of changes of the player's movement speed prevents the script from adjusting it.

The action wheel

Figura provides the action wheel with which players can play some actions (emotes, animations, configs, and etc.). It will be shown when holding the action wheel key (default is B key). This avatar also has some actions.

Important

The Ex skill action has been changed to play on key press.

Action wheel

Action 1. Change costume

Changes costume if the character has multiple costumes. Scroll to select the costume and closing the action wheel to confirm. Left-click to reset to current selection, and right-clock to reset to default during selection.

Costume

Action 2. Change display name

Changes the player's display name. Scroll to select the name and closing the action wheel to confirm. Left-click to reset to current selection, and right-clock to reset to default during selection. However, Other players also need to install Figura and give enough permissions to see your display name.

Display name

Action 3. Toggle armors visible

Toggles whether equipped armors are visible or not. Some costumes will be hidden not to interfere with the armors while equips them. This setting will only affects to vanilla armors.

I recommend to hide armors because they hide the avatar.

Action 4. Toggle first-person weapon models

Toggles whether weapon models (including students' guns) are visible or not in first person perspective. If toggled off, Minecraft items will be displayed instead. Regardless of this setting, weapon models are always displayed in third person perspective.

First-person weapon models

Action 5. Change amount of Ex skill frame particles

Changes the amount of triangular particles that appear from the red or blue borders that appear during Ex skill animations. Reducing or disabling particles may improve performance.

As an additional option, I have added an option to disable the frame during the Ex skill animations. This is the closest to the original one.

How to use

Figura is available in Forge, Fabric and NeoForge.

  1. Install the mod loader which you want to use and make the mods available.
  2. Install Figura. Note the mod dependencies.
  3. Go to the release page.
  4. Download the avatar of your choice that attached to "Assets" section of the release notes.
  5. Unzip the zipped file and take the avatar data inside this.
  6. Put avatar files at <minecraft_instance_directory>/figura/avatars/.
    • The directory will automatically generated after launching the game with Figura installed. You can also create it manually if it doesn't exist.
  7. Open the Figura menu (Δ mark) from the game menu.
  8. Select the avatar from the avatar list at the left of the Figura menu.
  9. Sets your permission if you need.
  10. Other Figura players can see your avatar after uploading your avatar to the Figura server.
    • If your Minecraft is Pirated (cracked, unlicensed, free), you cannot upload your avatar. This is a Figura specification and I cannot help you with this.

Notes

  • I'm not responsible for any damages caused by using this avatar.
  • This avatar is designed for work with no resource pack and no other mods are installed. An unexpected issue may occurs when you use it with any resource packs and mods (texture and armor inconsistencies, etc.). However, I may not support you in these cases.
  • There may be a bug which occurs in multiplayer because my (Gakuto1112) multiplayer environment to verify the avatar is insufficient.
  • Please report an issue if you find it.
  • Please contact me via Discussions or Discord if you want to do for my avatars. My Discord name is "vinny_san" and display name is "ばにーさん". My display name in Figura Discord server is "BunnySan/ばにーさん".

Known issues

  • Weapons are not rendered correctly when changing main hand (#24).
    • You can resolve this issue by re-holding a weapon.
  • The halo (head ring) and arms holding weapons may not be rendered when activating a shader pack with Iris Shaders only once after game startup (#63).
    • You can resolve this issue by reloading the avatar.

ID card

figurabluearchivecharacters's People

Contributors

gakuto1112 avatar github-actions[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

figurabluearchivecharacters's Issues

死亡アニメーションの作成

概要

このアバターを適用したプレイヤーが死亡した際のアニメーションを作成する。

詳細

本家ブルーアーカイブでは、生徒のHPが尽きた際に、ヘリコプターに回収されるような演出がある。これをアバターでも再現する。

image

これを実現するための前提条件として、「プレイヤーが死亡してプレイヤーキャラクターが消えても、モデルが表示され続け、スクリプトも動き続ける」という前提条件がある。当初は、モデルの親タイプをWORLDに設定してもこの条件を満たすことができないと考えていたが、軽く実験した感じ、ひょっとしてこの条件を満たせるのではないか?という結果を得られた。そのため、このissueを作成した。

実際に取り組む際は、まずプロトタイプを作成して、ちゃんと動くかどうかを確認してから行うこととする。

シーケンスイメージ

  1. プレイヤーが死亡した瞬間に、アバターのコピーを作成し、親をWORLDにして、プレイヤーと同じ位置に配置する。
  2. プレイヤーアバターを非表示にする。
  3. 死亡アニメーションを再生する。
  4. プレイヤーがリスポーンしたらプレイヤーアバターを再表示する(死亡アニメーションは継続)。
  5. 死亡アニメーションが終了したらアバターのコピーを削除する。
  6. 死亡アニメーション中に再びプレイヤーが死亡したら、既存のアバターのコピーを削除して、新たなコピーを作り、1.を実行する。

タスク

  • プロトタイプで上記を実現可能かどうかを検証
  • モデリング
    • ヘリコプター
    • 縄ばしご
  • アニメーションを作成
  • スクリプトを作成
  • 既存のキャラクターへの適用
  • READMEへの追記

死亡アニメーションのモデルの動的生成

概要

死亡アニメーションに含まれるプレイヤーモデルを動的に生成できるようにする。

詳細

#2 で死亡アニメーションとして、プレイヤーキャラクターがヘリコプターに回収されるアニメーションを作成した(原作再現)。このアニメーションの中にはダミーのアバターが含まれるが、現在これはdeath_animation.bbmodelの中に静的に用意されている。これには #32 で挙げたような問題が発生する。これらの問題を解決するために、死亡アニメーションのダミーアバターを動的な生成へと変更する。

実装方法

基本的には #32 のようにアバターのモデルをコピーすれば良い。ただし、現在のFiguraのモデルパーツのコピーではBBアニメーションをコピーすることができないので注意が必要である。BBアニメーションのモーションデータはモデルグループに含まれているため、モデルグループ(頭、腕、脚など)はコピーできないが、グループ内に含まれるモデルパーツ単体や死亡アニメーションとは関係のないモデルグループはコピーすることができる。コピー可能なモデルだけを頑張ってコピーすれば現状のFiguraでもダミーアバターのコピーは可能である。

下図はベースアバターでのコピー可能なモデルグループ、モデルパーツと不可能なモデルグループ、モデルパーツを示す。
(📁:モデルグループ、📦:モデルパーツ、🟢:コピー可能、🔴:コピー不可能)

📁 Avatar 🔴
├ 📁 Head 🔴
│ ├ 📦 Head 🟢
│ ├ 📦 HatLayer 🟢
│ ├ 📁 FaceParts 🟢
│ └ 📁 HeadRing 🟢
├ 📁 UpperBody 🔴
│ ├ 📁 Body 🔴
│ │ ├ 📦 Body 🟢
│ │ └ 📦 BodyLayer 🟢
│ └ 📁 Arms 🔴
│   ├ 📁 RightArm 🔴
│   │ ├ 📦 RightArm 🟢
│   │ ├ 📦 RightArmLayer 🟢
│   │ └ 📁 RightArmBottom 🔴
│   │   ├ 📦 RightArmBottom 🟢
│   │   └ 📦 RightArmBottomLayer 🟢
│   └ 📁 LeftArm 🔴
│     ├ 📦 LeftArm 🟢
│     ├ 📦 LeftArmLayer 🟢
│     └ 📁 LeftArmBottom 🔴
│       ├ 📦 LeftArmBottom 🟢
│       └ 📦 LeftArmBottomLayer 🟢
└ 📁 LowerBody 🔴
  └ 📁 Legs 🔴
    ├ 📁 RightLeg 🔴
    │ ├ 📦 RightLeg 🟢
    │ ├ 📦 RightLegLayer 🟢
    │ └ 📁 RightLegBottom 🔴
    │   ├ 📦 RightLegBottom 🟢
    │   └ 📦 RightLegBottomLayer 🟢
    └ 📁 LeftLeg 🔴
      ├ 📦 LeftLeg 🟢
      ├ 📦 LeftLegLayer 🟢
      └ 📁 LeftLegBottom 🔴
        ├ 📦 LeftLegBottom 🟢
        └ 📦 LeftLegBottomLayer 🟢

タスク

  • ダミーアバターのモデルの動的生成の機能を作成
  • 衣装変更時にダミーアバターのモデルが動的生成されるようにする
  • 既存のダミーアバターのモデルの削除とavatar.jsonへの反映
  • 動作テスト

黒見セリカ

概要

「黒見セリカ」を作成する。衣装違いあり。

キャラクターイラスト

黒見セリカ

(画像は攻略wikiより)

タスク

  • このキャラクターの作成状況を「作成中」に移動する。
  • 参考リソース集め
  • 基本情報を設定(名前・誕生日など)
  • デフォルト衣装のモデルを作成
  • デフォルト衣装の揺れ物を設定
  • 固有武器のモデルを作成
  • 固有武器の挙動(位置・向き・射撃音など)を設定
  • デフォルト衣装でのExスキルアニメーションを作成
    • アニメーション中に使用するモデルを作成
    • BBアニメーションを作成
    • カメラワークを作成
    • パーティクルなどの視覚的演出を作成
    • 効果音を追加
  • デフォルト衣装での防具との見た目の整合性を確認
  • デフォルト衣装での死亡アニメーションとの見た目の整合性を確認
  • デフォルト衣装でのサムネイル用の画像を作成(キャラクターイラストを作ったモデルで再現する)
  • 覆面衣装のモデル・テクスチャを作成
  • 覆面衣装の揺れ物を設定
  • 覆面衣装での防具との見た目の整合性を確認
  • 覆面衣装での死亡アニメーションとの見た目の整合性を確認
  • (覆面衣装でのサムネイル用の画像を作成)
  • 正月衣装のモデルを作成
  • 正月衣装の揺れ物を設定
  • 正月衣装でのExスキルアニメーションを作成
    • アニメーション中に使用するモデルを作成
    • BBアニメーションを作成
    • カメラワークを作成
    • パーティクルなどの視覚的演出を作成
    • 効果音を追加
  • 正月衣装での防具との見た目の整合性を確認
  • 正月衣装での死亡アニメーションとの見た目の整合性を確認
  • (正月衣装でのサムネイル用の画像を作成)
  • 水着衣装のモデルを作成
  • 水着衣装の揺れ物を設定
  • 水着衣装でのExスキルアニメーションを作成
    • アニメーション中に使用するモデルを作成
    • BBアニメーションを作成
    • カメラワークを作成
    • パーティクルなどの視覚的演出を作成
    • 効果音を追加
  • 水着衣装での防具との見た目の整合性を確認
  • 水着衣装での死亡アニメーションとの見た目の整合性を確認
  • (水着衣装でのサムネイル用の画像を作成)
  • 設置物を使わない場合はサンプル設置物の削除
  • このキャラクターの作成状況を「作成済み」に移動する。

以下は個人(Gakuto1112)的なタスク

  • (通常衣装でのメモリアルロビーを再現)
  • (正月衣装でのメモリアルロビーを再現)
  • (水着衣装でのメモリアルロビーを再現)

水着衣装について

水着衣装は2024/6/5(水)メンテナンス後に実装される見込み。

参考リンク

ポートレートモデルの動的生成

概要

プレイヤーリストに表示するためのポートレートモデルを動的に生成する。

詳細

マインクラフトのマルチプレイにおいて、tabキーを押すとプレイヤーリストが表示される。プレイヤーリスト内に表示されるプレイヤーそれぞれを示す顔が表示されるが、Figuraではその顔にもアバターが反映される。

ポートレート

デフォルトでは、アバターの頭が自動的にポートレートに充てられるが、親をPortraitにすることでポートレート専用のモデルを用意することができる。

現在このレポジトリにあるアバターはポートレートモデルを設定していないため、アバターの頭がポートレートに充てられているが、この状態だと、例えば表情を変化させたとき、ヘルメットが見えるときにポートレートにもそれらが反映されてしまう。

これを防ぐために、ポートレート専用のモデルを用意する。専用モデルは #32 のように、動的に生成させる。

衣装が変更された場合は、ポートレートにも反映させる。

タスク

  • ポートレート専用のモデルの動的生成機能の実装
  • ポートレートモデルに衣装の反映
  • 動作テスト

設置物の落下速度

概要

設置物が空中にある場合、地上に落下するようになっているが、現在、その落下速度が常に最速になっている。このため、落下開始時の**に違和感が生まれている。これを解消する為、落下し始めはゆっくりと落下し、徐々に落下速度を上げ、暫くして最速に達するように変更する。

実装方法

各設置物のインスタンス/フィールドに現在の落下速度を表す変数を保持させる。落下処理の度にその落下速度の変数を変更し、落下速度を変更する。

タスク

  • 落下速度の変数を作成
  • 落下速度の計算方法を変更

アクションホイールをアバター設定の専用に

概要

アクションホイールをアバター設定の項目のみを集めたものにする。

Exスキルアニメーションはキーバインドでトリガーすることにする。

詳細

アクションホイールの項目を増やすと、既存のアクションの面積が小さくなってしまう。そこで、アクションホイールはアバターの設定を行う目的のみに限定し、Exスキルアニメーションのトリガーはキーバインドにする。

アクションホイールを開いた際にExスキルアニメーションのキーバインドの案内を表示する。

アクション内容

  1. 衣装の変更
  2. 名前の変更
  3. 防具の表示切り替え
  4. Exスキルのカメラワークの精度の設定
  5. Exスキルフレームのパーティクルの量( #22
  6. 一人称時の武器モデルの有効化( #23
  7. (空欄)
  8. (空欄)

タスク

  • アクションホイールをアバター設定専用にする(Exスキルアニメーションボタンをアクションホイールから外す)
  • Exスキルアニメーション開始のキーバインドを作成する
  • Exスキルアニメーションの案内を表示する
  • 動作確認

利き手切り替え時の武器表示の不具合

不具合概要

アバターが武器を構えている際に、利き手を変更すると武器の表示がおかしくなる。変更後でも以前の利き手側に武器が残り、新しい利き手側に本来のアイテム(弓、クロスボウ)が表示される。

武器表示の不具合

再現手順

  1. 弓やクロスボウを手に持つ。
  2. キャラクターが武器を構える。
  3. この状態で利き手を変更する。
  4. 上記スクリーンショットの不具合が発生する。

不具合対応について

この不具合に遭遇する可能性は低いうえに、武器を持ち替えたりしまったりすることで不具合が解消される、つまり、重要度が低いので優先度を下げる。

銃弾管理で稀にエラーが発生する

不具合概要

銃弾(アバターを使用するプレイヤーが発射した矢)を読み込む際に、稀にエラーが発生する。

scripts.bullet:11 attempt to perform arithmetic __sub on nil and number
stack traceback:
  scripts.bullet:11: in function <scripts.bullet:8>
script:
  arrowTable[arrowUUID] = arrowTable[arrowUUID] - 1

エラーから推測するに、発射した矢を管理するテーブルに存在しない矢を処理しようとした際に起こったエラーだと考える。この処理は、銃弾の発射音を再生するために行っている。

予期される動作

上記のエラーが発生しないこと。

再現方法

再現方法不明

吹き出しエモートの種類を変更

概要

カーソルキーを押して表示させることができるエモートの種類を変更する。

詳細

#10 で吹き出しエモートを実装した。現在、カーソルキーを押して表示されることができるエモートは以下の通りである。

カーソルキー エモート
👍
💗
リロード(本家戦闘を参照)

しかし、一部エモートが使いにくいため、エモートの種類を変更したい。変更後の案は以下の通りである(変更される場合がある)。

カーソルキー エモート
👍
💗
💦
(キー未定) 🎵

エモートを変更するにあたり、エモートを表示させた際のキャラクターの表情を見直す必要がある。

タスク

  • キーが未定のエモートのキーを決定
  • 新しいエモートのテクスチャを作成
  • 絵文字のエモートキーの割り当てを変更
  • キャラクターの表情を見直す
    • シズコ
    • イズナ
    • マリー
    • モモイ
    • ミドリ
    • シロコ
  • 動作確認

Exスキルフレームのパーティクル量を調整できる設定を追加

概要

Exスキルのフレームに表示される三角形のパーティクルを調整できるアバター設定を追加する。

詳細

  • #19 でExスキルのフレームに三角形のパーティクルを追加したが、この量を調整できるアバター設定を追加する。
  • 現在の量を「標準」とし、「少なめ」、「なし」の合計3つの選択肢を用意する。
  • この設定は、アバター設定用のアクションホイールのページ( #21 )に追加する。

タスク

  • パーティクル量を調整可能にする
  • アバター設定用のアクションホイールのページを作成( #21
  • パーティクル量の設定をアバター設定用アクションページに追加
  • 動作テスト

 変更伝搬ワークフロー後のREADME生成が実行されない

概要

"Merge changes to all target branches"ワークフローの実行後に"Generate README"ワークフローがトリガーされず、テンプレートからREADMEが生成されない。

詳細

"Generate README"ワークフローはテンプレートとなるREADMEの変更を含むプッシュにトリガーされて実行されるが、どうやらBotによるプッシュはトリガーされない仕様となっている模様(トリガーの無限再帰を防ぐため)。なので、現状では"Merge changes to all target branches"ワークフロー実行後にREADMEの自動生成は絶対に行われない(行えない)。

そこで、"Merge changes to all target branches"後に別途READMEの生成フローを作成する必要がある。

ワークフロー案

マージコミットをプッシュするジョブの出力として、READMEの生成が必要か否かを示すブール値を出力させる。出力がtrueになる条件は「マージに成功した」かつ「テンプレートREADMEに変更がある」とする。これを実現するために、マージエラーが生じてもジョブの実行を継続させなければならず、それは、マージの失敗でワークフローが失敗しないことを意味する。つまり、マージの失敗が気づきにくくなる。そのため、マージ失敗を私に知らせる手段を別途講じる必要がある。(まあ、なくてもいいかな?)

伝搬マージのジョブを完了した後に、READMEの生成が必要なブランチのみでmatrixを生成し、READMEの生成ジョブを実行する(実行時間は短い方がいいでしょ?)。matrixからの出力を受け取る方法を調べておく。

タスク

  • matrixからの出力の受け取り方法を調べる
  • 伝搬マージのジョブからブール値の出力されるように変更
  • 上記ブール値出力からmatrixを生成する機構を作成
  • READMEの生成ワークフローの呼び出し
  • 動作テスト

小鳥遊ホシノ

概要

「小鳥遊ホシノ」を作成する。衣装違いあり。

キャラクターイラスト

小鳥遊ホシノ

(画像は攻略wikiより)

タスク

  • このキャラクターの作成状況を「作成中」に移動する。
  • 参考リソース集め
  • 基本情報を設定
  • デフォルト衣装のモデル・テクスチャを作成
  • デフォルト衣装でのExスキルアニメーションを作成
    • 必要な小道具・大道具のモデル・テクスチャを作成
    • BBアニメーション
    • カメラワーク
    • パーティクルなどの視覚的演出
    • サウンド
  • デフォルト衣装の揺れ物演出のパラメータを設定
  • 固有武器のモデル・テクスチャを作成
  • 固有武器の挙動を設定
  • デフォルト衣装での頭ブロックとの見た目の整合性を確保
  • デフォルト衣装での防具との見た目の整合性を確保
  • デフォルト衣装での死亡アニメーションモデルとの見た目の整合性を確保
  • 覆面衣装のモデル・テクスチャを作成
  • 覆面衣装での頭ブロックとの見た目の整合性を確保
  • 覆面衣装での防具との見た目の整合性を確保
  • 覆面衣装での死亡アニメーションモデルとの見た目の整合性を確保
  • 設置物を使わない場合はサンプル設置物の削除
  • サムネイル用の画像を作成(キャラクターイラストを作ったモデルで再現する)
  • このキャラクターの作成状況を「作成済み」に移動する。

水着衣装の作成について

ブルーアーカイブ3周年記念コンテストに向けたスケジュールに遅れが生じているため、水着衣装の作成は見送ることにする。水着衣装の課題は #42

参考リンク

才羽ミドリ

概要

「才羽ミドリ」を作成する。衣装違いなし。

キャラクターイラスト

才羽ミドリ

(画像は攻略wikiより)

アイデア

  • 「才羽モモイ」と同時並行で作成した方がいいかもしれない( #13 )。

タスク

  • このキャラクターの作成状況を「作成中」に移動する。
  • 参考リソース集め
  • 基本情報を設定
  • デフォルト衣装のモデル・テクスチャを作成
  • デフォルト衣装でのExスキルアニメーションを作成
    • 必要な小物・大物のモデル・テクスチャを作成
    • BBアニメーション
    • カメラワーク
    • パーティクルなどの視覚的演出
    • サウンド
  • デフォルト衣装の揺れ物演出のパラメータを設定
  • 固有武器のモデル・テクスチャを作成
  • 固有武器の挙動を設定
  • デフォルト衣装での頭ブロックの見た目の整合性を確保
  • デフォルト衣装での防具との見た目の整合性を確保
  • デフォルト衣装での死亡アニメーションモデルの見た目の整合性を確保
  • 設置物を使わない場合はサンプル設置物の削除
  • サムネイル用の画像を作成(キャラクターイラストを作ったモデルで再現する)
  • キャラクターのブランチを保護
  • GitHub Actionsの対象にこのキャラクターのブランチを含める(ワークフローファイル・Actions変数)
  • このキャラクターの作成状況を「作成済み」に移動する。

参考リンク

Exスキルフレームの演出強化

概要

Exスキルフレーム(Exスキルアニメーション中に、画面に表示される赤色又は青色の枠)の演出を強化する。具体的には、三角形のパーティクルを追加する。

詳細

Exスキルアニメーションの前後にフレームが画面を横切るトランジション演出は本家ブルーアーカイブを参考にしたものである。本家ではフレームが横切る際に三角形のトレイル(パーティクル)が表示される。

Exスキルのトレイル

このアバターの場合では、Exスキルアニメーションの前後のみならず、Exスキル中にも枠が表示されるため、こちらにも表示させる。

実装方法

親タイプが「GUI」のモデルパーツではパーティクルが使用できない。そのため、三角形はモデルパーツ又はスプライトの形でフレームに表示させる。パーティクルそれぞれのインスタンス生成し、インスタンスが持つタイマーを用いて三角形の回転やスケールなどの調整を行う。表示が終了した三角形のインスタンスは破棄する。

Exスキル関連のスクリプトはまとめて1つのフォルダに入れてもよい気がする。

タスク

  • 三角形パーティクルのインスタンスクラスを作成する。
  • 三角形パーティクルを管理するマネージャークラスを作成する。
  • Exスキルアニメーションのスクリプトに組み込み
  • 三角形パーティクルの量を調整
  • 各種テスト
    • 動作テスト
    • 負荷テスト

ゲーム内チャットにモモトークの要素を盛り込む

概要

ゲーム内チャットにモモトークの要素を盛り込む。このアイデアはまだ煮詰まっていない。

詳細

モモトークとは、ブルーアーカイブの世界でのチャットアプリであり、こちらの世界ではLINEに相当する。アイコンは「桃」のアイコンである。

モモトーク

モモトークのUIってPC版LINEのUIを意識してるよね。

アイデア

  • チャット欄を開いている時は吹き出しにモモトークのマークを表示させ続ける。
  • チャット欄を開いている時はアバターにスマートフォンを持たせ、その画面はモモトークになっている。
  • チャット欄をモモトーク風UIにする。
    • ゲームのチャット欄をアバタースクリプトでラッピングすることになるので難易度が非常に高いと予測する。
      ...

次に作る生徒について

概要

次に作る生徒に関する資料を集める際(詳しくはREADMEを参照のこと)に、敢えて自分でスクリーンショットを取得したり、画面録画したりせずに全てインターネット上(攻略サイト等から)から資料を集める。

目的

インターネット上だけでどのくらい資料を収集できるかを調査する。

もし、インターネット上だけで資料を収集できるなら、受け入れ済/未受け入れに関わらず必要な資料を収集できることになる。

アバター作成に必要なもの

  • キャラクターイラスト(スクリーンショット等)
  • Exスキルのカットイン(画面録画)
  • 生徒の基本情報(名前、誕生日など)
  • Exスキルの名前
  • 固有武器
  • 生徒の初期レアリティ(★1、★2、★3)

鷲見セリナ

概要

「鷲見セリナ」を作成する。衣装違いあり。

キャラクターイラスト

鷲見セリナ

(画像は攻略wikiより)

タスク

  • このキャラクターの作成状況を「作成中」に移動する。
  • 参考リソース集め
  • 基本情報を設定(名前・誕生日など)
  • デフォルト衣装のモデルを作成
  • デフォルト衣装の揺れ物を設定
  • 固有武器のモデルを作成
  • 固有武器の挙動(位置・向き・射撃音など)を設定
  • デフォルト衣装でのExスキルアニメーションを作成
    • アニメーション中に使用するモデルを作成
    • BBアニメーションを作成
    • カメラワークを作成
    • パーティクルなどの視覚的演出を作成
    • 効果音を追加
  • デフォルト衣装での防具との見た目の整合性を確認
  • デフォルト衣装での死亡アニメーションとの見た目の整合性を確認
  • デフォルト衣装でのサムネイル用の画像を作成(キャラクターイラストを作ったモデルで再現する)
  • クリスマス衣装のモデルを作成
  • クリスマス衣装の揺れ物を設定
  • クリスマス衣装でのExスキルアニメーションを作成
    • アニメーション中に使用するモデルを作成
    • BBアニメーションを作成
    • カメラワークを作成
    • パーティクルなどの視覚的演出を作成
    • 効果音を追加
  • クリスマス衣装での防具との見た目の整合性を確認
  • クリスマス衣装での死亡アニメーションとの見た目の整合性を確認
  • (クリスマス衣装でのサムネイル用の画像を作成)
  • 設置物を使わない場合はサンプル設置物の削除
  • このキャラクターの作成状況を「作成済み」に移動する。

以下は個人(Gakuto1112)的なタスク

  • (通常衣装でのメモリアルロビーを再現)
  • (クリスマス衣装でのメモリアルロビーを再現)

参考リンク

久田イズナのモデル・テクスチャに関する指摘

概要

DiscordのDMにおいて、久田イズナのモデル・テクスチャに関する指摘を頂いた。

詳細

頂いた指摘は以下の通り。

I also cant tell why some of these characters that are girls are flat chested when you do more detail in block bench your choice not mying

I mean the collar on model is barely visible bow is wrong way and chest should be larger if the image was not 2d or picture

要するに、

  • 胸を出すべき(アバターモデルに胸を追加すべき)。
  • セーラー服の青い襟をもう少し出すべき。
  • 胸のリボンのテクスチャの向きが間違っている。

という指摘である。要検討。

メッセージ全文

通常文は私の会話。引用文は相手の会話。

メッセージ全文

Hm you do realize you could make it use the environmental:cherry_blossom particle if the mod is installed to make it work on 1.19.2

I won't make my avatars depended on any mod except Figura.
If you want use it in 1.19.2, replace minecraft:cherry_leaves and minecraft:block.bamboo_wood_door.close into environmental:cherry_blossom and minecraft:block.wooden_door.close by yourself.

Nah i just replaced it already but i ment as a second use couldent you just make it if you have the mod use it instead
Why bamboo wood door
that already exists in 1.19.2 otherwise i would be getting error for that

I think bamboo door were added in 1.20.
The avatar uses the sound of bamboo door.

Well i had no issues other then leafs
I also cant tell why some of these characters that are girls are flat chested when you do more detail in block bench your choice not mying

It may just be sounds are not playing when it should.

You want to tell me to make more detailed chest?
I will do it if I think it is needed.

https://bluearchive.wikiru.jp/?シズコ

https://bluearchive.wikiru.jp/?イズナ

I mean the collar on model is barely visible bow is wrong way and chest should be larger if the image was not 2d or picture
image

Okay. I will consider them.

公式資料集を基にしたアバターデザインの見直し

概要

ブルーアーカイブ公式資料集を参照し、既存のキャラクターデザインを見直す。

詳細

友人からブルーアーカイブ公式資料集なるものを貸してもらった。パラパラと見た感じ、この資料集にはブルーアーカイブ1周年までのデータが載っている感じではあった。今までフィーリングで補っていた場所に関して、何らかの公式資料や設定が見つかるかもしれない。このため、既存のベース機能やキャラクターデザインを見直してみる。なお、既存のキャラクターが公式的にいつ追加されたか、私は知らないので、この資料集にデータが載っていない可能性もある。

タスク

  • 公式資料集の内容を確認する
  • 既存のベース機能の見直し
  • 既存のキャラクターデザインの見直し
    • シズコ
    • イズナ
    • マリー
    • モモイ
    • ミドリ
    • シロコ

Figura 0.1.4への対応

概要

#41 に加え、2024/3/3にリリースされたFigura 0.1.4へアバターを対応させる。

なお、Figura 0.1.4はセキュリティ上の問題を解消したアップデートなので新規機能の追加はない。互換性によるエラーも出ないとは思うが一応確認しておく。

タスク

  • #41
  • Figura 0.1.4での互換性確認
  • Figura 0.1.4で発生するエラーを修正
  • avatar.jsonやREADMEの更新

動的な頭ブロックモデルの生成

概要

アバターの頭ブロックのモデルをアバタースクリプトから動的に生成できるようにする。

詳細

現在、アバターの頭ブロックのモデルはskull_<costume_name>.bbmodelというモデルファイルに静的に準備されている。これにはいくつか問題がある。

  • 頭モデルはメインモデルの頭と同じであり冗長である。頭ブロックのモデルの分、無駄に容量を割く必要がある。
  • メインモデルに変更を加えた際に、頭ブロックへのその変更の反映を忘れる恐れがある。
  • 新しく衣装を増やす度に頭ブロックモデルの準備とavatar.jsonの編集が必要であり、面倒である。

これらの問題を解決するために、頭ブロックのモデルを動的な生成へと変更する。

実装方法

アバターを読み込んだ際に、アバターの頭をコピーし、頭ブロックのモデルとする。長髪やマフラーなどの、胴体にあるモデルを頭ブロックのモデルに含めたい場合のために、キャラクター変数に「頭ブロックに含めるモデルのテーブル」のフィールドを新たに作成する。

アクションホイールから衣装を変更する度に、前の頭ブロックのモデルを削除し、新たに頭ブロックのモデルを生成する。

タスク

  • 頭ブロックのモデルの動的生成の機能を作成
  • 衣装変更時に頭ブロックのモデルが動的生成されるようにする
  • 既存の頭ブロックのモデルを削除とavatar.jsonへの反映
  • 動作テスト

一人称で武器を表示させる設定を追加

概要

一人称視点で手に弓やクロスボウを持っている時にキャラクターの武器を表示させる設定を追加する。
弓やクロスボウの代わりにキャラクターの武器を表示させることによって臨場感が増す。
(以下の画像のような感じ。First-person Modelを使用。)

一人称での武器表示

詳細

  • events.ITEM_RENDER内でカスタムモデルをreturnすることで手に持つアイテムのモデルを自由なものに変えることができるらしい(詳細)。
  • 現在の仕様の意図としては、弓やクロスボウの状態を判りやすくするためである。
  • この設定は、アバター設定用のアクションホイールのページ( #21 )に追加する。

タスク

  • 一人称視点で武器を表示できるようにする(右手でも左手でも)
  • アバター設定用のアクションホイールのページを作成( #21
  • 一人称での武器表示設定をアバター設定用アクションページに追加
  • 動作テスト

伊落マリー

概要

「伊落マリー」を作成する。衣装違いあり。

キャラクターイラスト

伊落マリー

(画像は攻略wikiより)

アイデア

  • 通常衣装枠でフードなしのバリエーションも作ってみる。

タスク

  • このキャラクターの作成状況を「作成中」に移動する。
  • 参考リソース集め
  • 基本情報を設定
  • デフォルト衣装のモデル・テクスチャを作成
  • デフォルト衣装でのExスキルアニメーションを作成
    • 必要な小物・大物のモデル・テクスチャを作成
    • BBアニメーション
    • カメラワーク
    • パーティクルなどの視覚的演出
    • サウンド
  • デフォルト衣装の揺れ物演出のパラメータを設定
  • 固有武器のモデル・テクスチャを作成
  • 固有武器の挙動を設定
  • デフォルト衣装での頭ブロックとの見た目の整合性を確保
  • デフォルト衣装での防具との見た目の整合性を確保
  • デフォルト衣装での死亡アニメーションモデルとの見た目の整合性を確保
  • 体操服衣装のモデル・テクスチャを作成
  • 体操服衣装でのExスキルアニメーションを作成
    • 必要な小物・大物のモデル・テクスチャを作成
    • BBアニメーション
    • カメラワーク
    • パーティクルなどの視覚的演出
    • サウンド
  • 体操服衣装の揺れ物演出のパラメータを設定
  • 体操服衣装での頭ブロックの見た目との整合性を確保
  • 体操服衣装での防具との見た目の整合性を確保
  • 体操服衣装での死亡アニメーションモデルとの見た目の整合性を確保
  • 設置物を使わない場合はサンプル設置物の削除
  • サムネイル用の画像を作成(キャラクターイラストを作ったモデルで再現する)
  • キャラクターのブランチを保護
  • GitHub Actionsの対象にこのキャラクターのブランチを含める(ワークフローファイル・Actions変数)
  • このキャラクターの作成状況を「作成済み」に移動する。

参考リンク

ホシノ(水着)の作成

概要

#17 で作成したホシノに水着衣装を追加する。本課題は #17 から分離させたものである。

キャラクターイラスト

ホシノ(水着)

(画像は攻略wikiより)

タスク

  • 水着衣装のモデル・テクスチャを作成
  • 水着衣装でのExスキルアニメーションを作成
    • 必要な小道具・大道具のモデル・テクスチャを作成
    • BBアニメーション
    • カメラワーク
    • パーティクルなどの視覚的演出
    • サウンド
  • 水着衣装の揺れ物演出のパラメータを設定

参考リンク

吹き出しエモート機能

概要

カーソルキーを押下することで、他の(Figura)プレイヤーに大まかな感情を伝えられるような吹き出しに絵文字が入っているアニメーションを再生する機能を追加する。イメージとしては以下の画像の通り。

吹き出しエモート

仕様詳細

上下左右カーソルキーを押下すると、吹き出しと共に対応するアニメーションを再生する。

カーソルキー エモート
👍
リロード(本家戦闘を参照)

吹き出しはアバターの左側に表示される。この場合、吹き出しの位置はビューワーのカメラ位置に依存する。

アバターを使用するプレイヤーも吹き出しエモートが再生されていることが確実に分かるように、一人称視点での場合は画面右下あたりにも表示させる。

エモートの操作ガイドをアクションホイールを表示させている時に画面右下にでも表示させる。

追記:吹き出しエモートと共に表情を変化させてもいいかもしれない。

タスク

  • 吹き出しエモート用のアニメーション絵文字を作成
  • 吹き出し表示・アニメーション絵文字を表示するモデル・スクリプトを作成
  • アバターとビューワーカメラの位置と吹き出しエモートの表示位置の整合性を確保
  • 一人称視点用の吹き出しエモートを作成
  • 吹き出しエモートのガイド表示を作成

ヘイローの位置の遅延追従

概要

ヘイロー(頭の輪っか)の位置において遅延追従を実装する。

詳細

ここでいう「遅延追従」とは、ヘイローがプレイヤーの動きから少し遅れてプレイヤーに追従するということである。なお、ヘイローの向きにおける遅延追従は既に実装済みである。

遅延追従は、イブキ&イロハのExスキルのカットインの、イブキのヘイローを見てもらえるとイメージがつきやすい。
https://youtu.be/eKRCdXvvtI8?si=JVh4UB9_LXlgwLzm&t=34

実装方法

  • ヘイローの位置における遅延追従を実装するには、x、y、z軸それぞれに分解された、プレイヤーの移動速度の移動平均が必要である。これは既にphysics.lua内で移動平均が計算されているので、これを利用することで実装が可能である。
  • プレイヤーが極端な速度で移動している場合、ヘイローがキャラクターから離れすぎるかもしれないので、追従の距離に制限を設けた方がいいかもしれない(一定距離以上は離れないようにする)。

タスク

  • ヘイロー位置の追従遅延を実装する
  • ヘイロー位置の追従距離に上限を設ける
  • 動作テスト

Exスキルアニメーション中のカメラの位置のずれ

不具合概要

アバターのExスキルアニメーション中のカメラワークにおいて、カメラの位置が想定した場所と異なる場合がある。例えば、以下の画像の場合はカメラの位置が想定している場所よりもかなり近い所に位置してしまっている。

カメラの位置がずれている例

原因

カメラのコリジョン判定を検出する方法に問題があり、スクリプトで検出したカメラの距離と実際のカメラの距離に差異があるのが原因。

以下、詳細説明

マインクラフトの三人称視点のカメラは通常、プレイヤーキャラクターから4ブロック離れた位置に存在する。

三人称視点

しかし、プレイヤーの視線の4ブロック以内にブロックが存在する場合、カメラがブロックの中にめり込むのを防ぐためにカメラがプレイヤーに近づくようになっている。

カメラの接近

Exスキルアニメーション中は、カメラが意図せず近寄るのを防ぐために、カメラのコリジョン判定を無効化している(打ち消している)。Figuraでは、カメラのコリジョン判定を消す機能は存在しないため、スクリプトでカメラのコリジョン判定を打ち消す機能を実装している。

しかし、このスクリプトで検出したカメラの距離と実際のカメラの距離に差異が発生してしまうため、正しくコリジョン判定を打ち消せないのが原因。

考え方と問題点

カメラの回転軸(renderer:setOffsetCameraPivot()で指定した位置)となる位置から、カメラがある方向(≒カメラの向き、client:getCameraDir()を使用)の間で、当たり判定に衝突するまでの距離を取得する(最大4ブロック、RaycastUtils:getLengthBetweenPointAndCollision()を使用)。ここから得られた値とrenderer:setCameraPos()を用いてカメラのコリジョン判定を打ち消す。

この考え方は間違えではなく、通常時では正常にコリジョン判定を打ち消せることを確認した。しかし、Exスキルアニメーション中のカメラの位置や方向が変化し続ける中では上手く打ち消すことができない。カメラの位置と方向を変更している場合はこの考え方が適合しない可能性がある。

解決策と考察

アバターモデル内のCameraAnchorに直接当たり判定検出のポイントを設置する。
→ そもそも、CameraAnchorの方向と実際のカメラの方向が微妙にずれていることが判明。この方法は使えなかった。

Figuraにコリジョン判定の打ち消し機能が実装されるまで待つ。
→ 時間がかかるし、いつになるのかも不明。これに期待する場合、機能のリクエストを行う必要がある。

現在の考え方では上手く解決できない可能性が少なからずあるので、代替の方法を考えておく。

Exスキルアニメーションの中断条件が緩過ぎる

不具合概要

Exスキルアニメーションを中断条件が緩過ぎる。具体的には、Exスキルアニメーション中にスニーキングと視点移動(マウスを動かす)が可能である。特に前者について、Exスキル中にスニークをすることで、体が不自然に曲がってしまう。

正誤の比較

再現手順

Exスキルアニメーション中に上記動作を行う。

予期される動作

Exスキルアニメーション中に上記動作を行うとアニメーションが中断される。

タスク

  • スニーキングを行った際にアニメーションを中断させる。
  • 視点変更を行った際にアニメーションを中断させる。

PVの作成

概要

ブルーアーカイブ3周年記念企画のコンテストに出すPVを作成する。作成したPVはコンテスト用途以外にもReadmeに貼っておくことにする。

詳細

ブルーアーカイブ3周年記念企画としてファンアートコンテストをやるらしい。これ以前に、友人にこのアバターのExスキル動画を見せたら、コンテストを薦められた。正直嬉しかったし、折角の機会なのでこのプロジェクトで挑戦してみる。

  • テーマは「ブルアカと思い出」
  • コンテストに出す作品の形式は画像か動画(3分以内)の形式。1人3点まで。
  • 応募期間は2024/1/23(火)11:00 ~ 2024/3/31(日)23:59

なお、コンテストに向けて製作するにあたり、友人が協力してくれるとのこと。アバター創作はできないが、ブルーアーカイブに関しては私より詳しいので何かわからないことがあれば相談してみる。

アイデア

  • このプロジェクトのアピールポイントは何か。つまり、他の人が出すであろう美麗なイラストと比べて優れている点は何か。
    • Exスキルのアニメーションを再現している点
    • Java版マインクラフトを持っていれば誰でも作品を触ることができる点(イラストは眺めるだけしかできない)
  • 上記を推し出すなら形式は動画になる。
  • コンテストの締め切りまでまだ余裕があるので追加で新キャラを作成する。
    • もし余裕がなくなったら、必要な部分だけ先に制作して、残りの部分は動画作成後にまわすというのも手。
  • 河和シズコ~最新作までのExスキルアニメーションを録画し、いい感じに編集を行う。
    • アバターサムネイルや未公開の画像も素材として利用する。

懸念点

  • 確かに独自性はある。Twitterでイラストが溢れていることを考えると目立つかもしれない。その点は有利かもしれない。でも、そんな美麗なイラストと同じ土俵で戦うと考えるとやっぱり不安しかない。
  • コンテストテーマに沿っているかどうかは正直微妙である。たしかに、私にとっては、アバターを作り上げてきたことは大切な思い出となり得るが、他人からしたら、思い出を感じるかどうかは不明である。まあ、物は言いようではあるが。

スケジュール

~2月末

  • 新キャラの作成に注力する。
    • 2024/2/1現在のキュー: 1. #16 , 2. #17
    • あと1人作れるかなどうかな?って感じ。
    • 作れるだけ作っていく。
  • コンテスト部分に関与するベースの変更があれば行う。
    • 逆にコンテスト部分に関与しない場合は優先度を下げる。

3月中

  • 動画の素材を用意。
    • Exスキルアニメーションの録画
      • GeForce Experienceのオーバーレイに注意!
    • アバターサムネイルの作成と収集
    • 必要であれば、ゲーム内スクリーンショットの撮影
      • 場合によっては協力者がいるかも?
  • 動画の構成を考える。
  • 動画作成
    • 残り3週間~2週間で作り始める。
  • アバター作りは一時凍結とする。
    • ただし、Figuraのアップデートによる互換性維持のための更新が必要になる場合は臨時で作業を行う。

関連リンク

アバターを使用しているプレイヤーがオフラインのときの頭ブロックの表示不具合

概要

アバターをFiguraバックエンドにアップロードしているプレイヤー(アバタープレイヤー)がゲームに参加していないとき(オフライン)にアバタープレイヤーの頭ブロックの表示が乱れる。バニラのスキンが非表示になっていない。

バグの様子

原因と修正方法

バニラのプレイヤースキンを非表示にするコードがENTITY_INITイベントで呼ばれるようになっている。アバタープレイヤーがオフラインであれば当然このイベントが発生しないため、この不具合が発生する。スクリプトの初期化段階でバニラスキンの非表示や頭ブロックの生成コードが呼ばれるように修正する。

タスク

  • オフライン時でもバニラスキンが非表示になるように修正
  • オフライン時でも頭ブロックのモデルが生成されるように修正
  • 上記修正に合わせ、各スクリプトの安全性チェック(プレイヤーがロードされる前にPlayer APIにアクセスしてないかどうか)
  • 動作確認

武器を構える際の手の揺れ

概要

武器を構えている際に手が揺れるようにする。

詳細

マインクラフトのプレイヤーキャラクターは手が少し揺れている。弓やクロスボウを構えている時も例外ではない。
しかし、キャラクターの固有武器を構えている際の弓のポーズでは手が揺れていない。これは、アバタースクリプトから手動で弓の構えを再現している為である。ここに手の揺れを加える。

タスク

  • 武器を構える際に手が揺れるようにする
  • 動作テスト

Figura 0.1.3への対応

概要

2024/3/1にリリースされたFigura 0.1.3へアバターを対応させる。

リリースノート

気になる点

fix: 🛑 BREAKING: the long existing bug of many functions being 1 tick delayed by @.auriafoxgirl in #192

スニーク時のスカートの位置調整に影響が出る可能性あり。

feat: Create RaycastAPI ✨ by @.KitCat962 in #131

Exスキルアニメーションのカメラワークの当たり判定打ち消し機能や設置物の落下処理に自分で実装したレイキャストを使用している。これらをFiguraの機能に置き換えられる可能性あり。

feat: Adds new function to ClientAPI generateUUID which generates a random UUID by @.KitCat962 in #99

設置物やExスキルフレームの三角形のパーティクルのモデルをコピーする際に重複しない名前を生成する必要があるため、UUIDを利用できれば簡単に重複しない名前を生成することができる。

feat: Allow cancelling any playing sound from a user when returning true in the ON_PLAY_SOUND event by @.KitCat962 in #170

現在は銃の射撃音に弓やクロスボウの発射音が再生されるので、これを消すことができる。

feat: Add FiguraModelPart.remove to remove a given part from it's parent by @.UnlikePaladin in 11720d1

モデルパーツの削除のコードが簡単になる?

feat: CUTOUT_EMISSIVE_SOLID now renders full bright as it uses the beacon beam and not the warden's shader by @.UnlikePaladin in 188f8c1

新しいレンダータイプ。試す価値あり。

タスク

  • Figura 0.1.3で発生するアバターのエラーを修正
  • Figura 0.1.3で発生するアバターの論理エラーを修正
  • Figura 0.1.3の新機能(上記の「気になる点」 )をアバターに適用できるか検討
  • Figura 0.1.3の新機能(上記の「気になる点」 )をアバターに適用
  • 動作テスト
  • avatar.jsonやREADMEの更新

砂狼シロコ

概要

「砂狼シロコ」を作成する。衣装違い2パターンあり。

キャラクターイラスト

砂狼シロコ

(画像は攻略wikiより)

アイデア

  • 覆面バージョンも用意する。
    • Exスキルは通常と同じ。

タスク

  • このキャラクターの作成状況を「作成中」に移動する。
  • 参考リソース集め
  • 基本情報を設定
  • デフォルト衣装のモデル・テクスチャを作成
  • デフォルト衣装でのExスキルアニメーションを作成
    • 必要な小物・大物のモデル・テクスチャを作成
    • BBアニメーション
    • カメラワーク
    • パーティクルなどの視覚的演出
    • サウンド
  • デフォルト衣装の揺れ物演出のパラメータを設定
  • 固有武器のモデル・テクスチャを作成
  • 固有武器の挙動を設定
  • デフォルト衣装での頭ブロックとの見た目の整合性を確保
  • デフォルト衣装での防具との見た目の整合性を確保
  • デフォルト衣装での死亡アニメーションモデルとの見た目の整合性を確保
  • 覆面衣装のモデル・テクスチャを作成
  • 覆面衣装での頭ブロックとの見た目の整合性を確保
  • 覆面衣装での防具との見た目の整合性を確保
  • 覆面衣装での死亡アニメーションモデルとの見た目の整合性を確保
  • 水着衣装のモデル・テクスチャを作成
  • 水着衣装でのExスキルアニメーションを作成
    • 必要な小物・大物のモデル・テクスチャを作成
    • BBアニメーション
    • カメラワーク
    • パーティクルなどの視覚的演出
    • サウンド
  • 水着衣装の揺れ物演出のパラメータを設定
  • 水着衣装での頭ブロックの見た目との整合性を確保
  • 水着衣装での防具との見た目の整合性を確保
  • 水着衣装での死亡アニメーションモデルとの見た目の整合性を確保
  • ライディング衣装のモデル・テクスチャを作成
  • ライディング衣装でのExスキルアニメーションを作成
    • 必要な小物・大物のモデル・テクスチャを作成
    • BBアニメーション
    • カメラワーク
    • パーティクルなどの視覚的演出
    • サウンド
  • ライディング衣装の揺れ物演出のパラメータを設定
  • ライディング衣装での頭ブロックの見た目との整合性を確保
  • ライディング衣装での防具との見た目の整合性を確保
  • ライディング衣装での死亡アニメーションモデルとの見た目の整合性を確保
  • 設置物を使わない場合はサンプル設置物の削除
  • サムネイル用の画像を作成(キャラクターイラストを作ったモデルで再現する)
  • キャラクターのブランチを保護
  • GitHub Actionsの対象にこのキャラクターのブランチを含める(ワークフローファイル・Actions変数)
  • このキャラクターの作成状況を「作成済み」に移動する。

参考リンク

イズナ(水着)のExスキルの演出強化

概要

久田イズナ(水着)のExスキルアニメーション中に背景を赤くする演出を入れ、Exスキルの演出を強化する。

詳細

本系のExスキルのカットインでは、背景が赤くなる演出がある。

本家Exスキルの演出

これを作った当時は私の技術不足でこの演出を盛り込まなかったが、最近、背景を挿入する手法を確立しつつあるので、この演出を追加で盛り込む。

演出の作り方として、半透明の赤い背景を挿入すればよいと考える。丁度、参考書に付属する赤シート越しに見る景色が真っ赤っかのような感じ。

タスク

  • 赤い半透明の背景を作成
  • 赤い半透明の背景の表示/非表示のタイミングを合わせる
  • 動作確認

バリアを作成

概要

このアバターを適用したプレイヤーが衝撃吸収エフェクト効果を持っている際に表示されるバリアを作成する。

詳細

本家ブルーアーカイブでは、スキル使用時等に味方にバリアを付与できる場合がある。

image

このバリアは効果時間内に受けたダメージを肩代わりするもので、バリアのHPか効果時間が尽きるまで持続する。これは、マインクラフトの衝撃吸収エフェクトと効果が同じなので、この機能を作成する。ただし、バリアが邪魔になるので、一人称視点ではバリアを表示しない。

タスク

  • バリアのモデル作成
  • バリアのスクリプトを作成

設置物の当たり判定のずれ

概要

設置物は自身の当たり判定とブロックの当たり判定が重なった時に消えるようになっているが、設置物の当たり判定がずれている。

設置物の当たり判定のずれ

予期された動作

上記の画像は当たり判定がずれている例である。この場合、設置物とブロックの当たり判定が重なっている為、本来は設置物が消えているべきである。

タスク

  • 設置物の当たり判定のずれを修正
    • 設置物のスクリプトを作り直した方が早いかも?
  • 設置物の当たり判定を示すデバッグ表示を作成( #6

カメラワークのずれ

不具合概要

Exスキルアニメーション時のカメラの位置や向きがBlockBench上のものとずれている。

中心座標付近でのカメラワークのずれは僅かなもので無視できる範囲であるが、中心座標から遠く離れるとずれが大きくなり、無視できなくなる。

特にカメラの回転については、3軸が複雑に回転し合うような回転に関して誤った方向を向いてしまう(全く惜しくない)。

再現手順

EXスキルアニメーションでカメラを中心座標から遠く離れた場所に配置したり、3軸全てを使った複雑な回転をさせたりする。

予期される動作

ゲームのカメラがCameraAnchorとずれなく移動する。つまり、CameraAnchorグループにモデルが配置されている場合、カメラが動いていても画面上でのそのモデルの位置は変わらないようにする。

懸念点

既存のキャラクターのEXスキルのカメラワークは現状の実装基準で作成されている為、不具合を修正した際にカメラワークを作り直す羽目になるかもしれない(カメラシステムが直るならそれに越したことはないけど...)。

タスク

  • プレイヤーの向きを固定した状態でカメラがずれないようにする
  • 任意のプレイヤーの向きにおいてカメラがずれないようにする
  • 修正できたか検証
  • 既存のキャラクターへの反映
  • 既存のキャラクターのカメラワークを修正

Figura組み込みのレイキャスト関数の検討

概要

アバターに実装されているレイキャスト関数をFiguraに組み込まれているレイキャスト関数に置き換えられるか検討する。

詳細

Figura v0.1.3より、レイキャスト関数が実装されている。
https://applejuiceyy.github.io/figs/latest/raycast/

これ以前から、アバターにはレイキャスト関数が自前実装されている。組み込みのレイキャスト関数の方がより良いかもしれないので、テストしてみて結果が良ければ、自前実装のレイキャスト関数と置き換えてみようと思う。

レイキャスト関数の要件としては、

  • 指定した基点座標から目標座標までの距離を返す。目標座標に到達するまでにブロックがあればそこまでの距離を返す。
  • 水やガラスなど、カメラが貫通するブロックでは距離測定を中止させられない。
  • 負荷軽減のため、測定距離には上限を設けられる。

レイキャスト関数の良し悪しの判断基準としては、「結果取得までに要した命令数」とする(処理の速度に関しては、十分速いと思うので、まあ大丈夫だろう)。「命令数」はF3デバッグ画面から確認できる。

タスク

  • Figura組み込みのレイキャスト関数を用いて現在の実装を置き換える。
  • 既存のレイキャスト関数と比較する。

以下、レイキャスト関数を置き換える場合のみのタスク。

  • Exスキルアニメーションのカメラワークの調整アクションを削除
  • READMEから調整アクションの項目を削除

一部のアイテムのモデルをブルーアーカイブに因んだものにする

概要

一部のマインクラフトのアイテムをブルーアーカイブに因んだものにする。

詳細

FiguraではITEM_RENDERイベントでItemモデルを返すと手に持つアイテムのモデルを置き換えることができるので、この機能を利用し、一部のマインクラフトのアイテムのモデルをブルーアーカイブに因んだものにする。

アイデア

今思いついているアイテムモデル置き換え例は以下の通り。

  • エンチャントの瓶 → レポート
    • スタック数1-16は初級レポート、17-32は中級レポート、33-48は上級レポート、49-64は最上級レポート
      レポート
  • ダイヤモンド → 青輝石
    青輝石

正直なところ、この課題の案は没にする可能性が高い。

吹き出しエモートの「❓」の色を変える

概要

吹き出しエモートの「❓」の色を赤色から黄緑色に変える。

詳細

#10 で吹き出しエモートを実装した。その中で「❓」の吹き出しエモートがあるが、当時、本家で❓の色が何だったかを思い出せなかったため、適当に赤色にした。後日、本家で❓の色を確認すると黄緑色だった。そこで、吹き出しエモートの❓の色を赤色から黄緑色に変更する。

タスク

  • 本家での❓の吹き出しのスクリーンショットを用意
  • ❓の色を変更
  • 動作確認

その他

本家での❓吹き出しの画像があれば実際に色を変える時に助かる。

ブランチをマージさせるワークフローの作成

概要

baseから分岐したブランチの変更をbase含む全てのキャラクターのブランチにマージするワークフローの作成する。

詳細

現在のベース機能の実装のフローでは、baseブランチから新規ブランチを作成 → 変更点を追加 → baseにマージ → 他のキャラクターブランチにもマージという流れになっている。このブランチをマージするという作業は作成したキャラクターが多くなればなる程、大変(言葉を選ばずに言えば「面倒」)になるため、このマージ作業を自動化するGitHub Actionsワークフローを構築する。

設計

ワークフローのトリガーは手動トリガーとする。自動的にはトリガーさせない。手動トリガー時にマージ元となるブランチ名を入力させる。ワークフローでは、入力されたブランチをbase含む全てのキャラクターブランチにマージさせる。

ワークフローのイメージは次の通り。

  1. ユーザーによる手動トリガーによるワークフローの実行。この時にマージ元のブランチ名を入力させる。
  2. 入力されたブランチが存在するか確認する。もしそのようなブランチがなければエラー終了させる。
  3. 入力されたブランチを対象の全てのブランチにマージさせる。
    • 対象のブランチはbaseブランチと「ブランチ名が大文字から始まるブランチ」である。
    • 対象ブランチに毎にmatrixを生成し、並列処理で実行する。
    • マージ時に競合が発生する場合はエラーを出力し、処理を中止する。

競合が発生し、マージができないブランチは手動でマージする。

既存のワークフローの1つであるdispatch_readme.yamlには既に対象のブランチを取得するジョブが定義されているので、これを分離独立させ、それぞれのフローから呼び出す形式に変更してもよい。

タスク

  • ブランチをマージさせるワークフローを作成
  • 対象ブランチを取得するジョブを分離独立させる
  • 既存のワークフローの対象ブランチを取得するジョブを、呼び出す形式に変更
  • 動作テスト

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

概要

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

詳細

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

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

実装時期

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

タスク

  • 設置物に対してBBアニメーションが使えるように実装を変更
  • 動作テスト
  • イズナの設置物に対してBBアニメーションをつける

READNEの英語化

概要

READMEを英語に翻訳する。

詳細

このレポジトリに訪れる人は海外の人が多いため、その人達の為に、英語のREADMEを作成する。機械翻訳は精度に問題があるため、手動で翻訳する。尚、日本語のREADMEは残しておく。

スカートスクリプトの標準機能化

概要

スカートの動作を制御するスクリプトをアバターの標準機能として搭載する。

詳細

スカートスクリプトでは、プレイヤーがスニークした際に生じるスカートのズレを補正する。当初はキャラクターの固有機能として搭載したが、結局全員に搭載する羽目になっているのでアバターの標準機能として搭載し直す。

標準機能とする場合は、blue_archive_character.luaにスクリプトのパラメータを記載するフィールドを新たに設けること。

タスク

  • 標準的なスカートスクリプトを作成
  • blue_archive_character.luaにスカートスクリプトのパラメータフィールドを設ける
  • 動作テスト
  • 既存のキャラクターのスカートスクリプトを削除し、新たなスカートスクリプトを適用する

才羽モモイ

概要

「才羽モモイ」を作成する。衣装違いなし。

キャラクターイラスト

才羽モモイ

(画像は攻略wikiより)

アイデア

  • 「才羽ミドリ」と同時並行で作成した方がいいかもしれない( #14 )。

タスク

  • このキャラクターの作成状況を「作成中」に移動する。
  • 参考リソース集め
  • 基本情報を設定
  • デフォルト衣装のモデル・テクスチャを作成
  • デフォルト衣装でのExスキルアニメーションを作成
    • 必要な小物・大物のモデル・テクスチャを作成
    • BBアニメーション
    • カメラワーク
    • パーティクルなどの視覚的演出
    • サウンド
  • デフォルト衣装の揺れ物演出のパラメータを設定
  • 固有武器のモデル・テクスチャを作成
  • 固有武器の挙動を設定
  • デフォルト衣装での頭ブロックの見た目の整合性を確保
  • デフォルト衣装での防具との見た目の整合性を確保
  • デフォルト衣装での死亡アニメーションモデルの見た目の整合性を確保
  • 設置物を使わない場合はサンプル設置物の削除
  • サムネイル用の画像を作成(キャラクターイラストを作ったモデルで再現する)
  • キャラクターのブランチを保護
  • GitHub Actionsの対象にこのキャラクターのブランチを含める(ワークフローファイル・Actions変数)
  • このキャラクターの作成状況を「作成済み」に移動する。

参考リンク

砂狼シロコの衣装違いとしての「****」の実装

本課題には本家ブルーアーカイブのメインストーリーに関する重大なネタバレが含まれているため、伏字にしてあります。ネタバレを喰らって損害を被っても私は一切責任を負いません!

警告! 本家ブルーアーカイブのメインストーリーのネタバレを含みます!

砂狼シロコの衣装違いとしての「シロコ・テラー」の実装

概要

砂狼シロコ( #16 )衣装違いとしての「シロコ・テラー」を実装する。本来は #16 内で実装する予定であったが、本課題の内容は延期された。

詳細

以下の内容は #16 内で言及された内容を同じである。

シロコ・テラー衣装違いとして組み込む。

  • ただし、衣装リストには非表示で隠し衣装扱い。
    • アバタースクリプトでフラグを変更することにより表示されるようにする。
    • このフラグを置くファイル名はメインストーリー最終章で「たとえ最悪の結末になったとしても進む覚悟はあるか」みたいなこと言う人が所属するグループ名にして、フラグの直前にはコメントでこのセリフを入れておく。英訳もしておく。
    • ファイル名は大文字だけにしてユーザーの気を引かせる。
  • 衣装変更時の演出を独自のものにする。
    • 黒い煙を表示させる。
  • こちらの世界線のシロコと差別化するため、目の輝きを消す。
  • Exスキルは通常と同じにする。

タスク

先に #16 を完了させる。

  • シロコ・テラーのモデル・テクスチャを作成
  • シロコ・テラーでの頭ブロックとの見た目の整合性を確保
  • シロコ・テラーでの防具との見た目の整合性を確保
  • シロコ・テラーでの死亡アニメーションモデルとの見た目の整合性を確保
  • フラグを書き換えないとシロコ・テラーが選択できないよう、costume.luaのコードを改変
  • 衣装変更の演出を上書き
  • アイデアで書いたセリフについて調べておく。

阿慈谷ヒフミ

概要

「阿慈谷ヒフミ」を作成する。衣装違いあり。

キャラクターイラスト

阿慈谷ヒフミ

(画像は攻略wikiより)

タスク

  • このキャラクターの作成状況を「作成中」に移動する。
  • 参考リソース集め
  • 基本情報を設定(名前・誕生日など)
  • デフォルト衣装のモデルを作成
  • デフォルト衣装の揺れ物を設定
  • 固有武器のモデルを作成
  • 固有武器の挙動(位置・向き・射撃音など)を設定
  • デフォルト衣装でのExスキルアニメーションを作成
    • アニメーション中に使用するモデルを作成
    • BBアニメーションを作成
    • カメラワークを作成
    • パーティクルなどの視覚的演出を作成
    • 効果音を追加
  • デフォルト衣装での防具との見た目の整合性を確認
  • デフォルト衣装での死亡アニメーションとの見た目の整合性を確認
  • デフォルト衣装でのサムネイル用の画像を作成(キャラクターイラストを作ったモデルで再現する)
  • 水着衣装のモデルを作成
  • 水着衣装の揺れ物を設定
  • 水着衣装でのExスキルアニメーションを作成
    • アニメーション中に使用するモデルを作成
    • BBアニメーションを作成
    • カメラワークを作成
    • パーティクルなどの視覚的演出を作成
    • 効果音を追加
  • 水着衣装での防具との見た目の整合性を確認
  • 水着衣装での死亡アニメーションとの見た目の整合性を確認
  • (水着衣装でのサムネイル用の画像を作成)
  • 設置物を使わない場合はサンプル設置物の削除
  • このキャラクターの作成状況を「作成済み」に移動する。

以下は個人(Gakuto1112)的なタスク

  • (通常衣装でのメモリアルロビーを再現)
  • (水着衣装でのメモリアルロビーを再現)

参考リンク

設置物の当たり判定のデバッグ表示

概要

設置物の当たり判定を把握しやすいように、デバッグ用に当たり判定の枠を表示するようにする(F3 + Bのような感じ)。

タスク

  • デバッグ用の当たり判定表示を作成

その他

モデルパーツを枠表示するにはモデルの主レンダーモードをLINESにするとよい。

Exスキルアニメーション中の視野角

概要

Exスキルアニメーション中の視野角を一定に保つ。

詳細

Exスキルアニメーションの映像はゲームの視野角の設定が依存している。Exスキルアニメーションのカメラワークはゲーム標準の視野角(70度)を想定しているが、視野角の設定が極端に大きい/小さいとExスキルアニメーションの映像が想定と異なってしまう場合がある。

2023-11-26_16 34 03

そこで、renderer:setFOV()を使用して視野角の変化を打ち消して、標準以外での視野角でも想定通りのExスキルアニメーションの映像が流れるように調整する。

懸念点

先ほど、renderer:setFOV()を試したが視野角が変化しなかった。これが不具合なのかどうかが不明。

タスク

  • ゲームの視野角設定とFiguraの視野角変更の関係性を調査
    (例:視野角70度でrenderer:setFOV(1.2)をしたら視野角何度相当になるのか?)
  • Exスキルアニメーション時に視野角の変化を打ち消す機能を実装

衣装リストの順番が異なる

不具合概要

衣装リストの順番がアバタースクリプトで登録した順とアクションホイールでの衣装スクロールで表示される順が異なる。

不具合詳細

アバタースクリプトでの順番とアクションホイールでの順番が異なる例を挙げる。

砂狼シロコ( #16 )のアバタースクリプトで登録した衣装の順番は以下の通り。

内部名 日本語名
default デフォルト
masked 覆面水着団
swimsuit 水着
riding ライディング

一方で、アクションホイール上での順番は以下のようになっている。

内部名 日本語名
default デフォルト
riding ライディング
masked 覆面水着団
swimsuit 水着

アバタースクリプト内の順番を変更してもアクションホイール上の順番は変化しなかった。

予期される動作

アクションホイール上の順番もアバタースクリプトのものと同じになる。

修正方法

現在、衣装リストは内部名でインデックス付けされているが、これを数値でのインデックス付けに変更する。そして、各衣装のフィールドに内部名を保持するフィールドを追加する。

タスク

  • 衣装リストのインデックスを数値に変更
  • 各衣装エントリーに内部名フィールドを追加
  • 他のスクリプトの修正
  • 動作テスト
  • 既存のアバターに反映
    • シズコ
    • イズナ
    • マリー
    • モモイ
    • ミドリ
    • シロコ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.