パスワードを忘れた? アカウント作成
14970381 journal
日記

yumeの日記: Unity制作 メデューサ・ゲーム #30 1

日記 by yume

メデューサ・ゲーム(仮)

●アニメーション続き

●まばたき関連
>アニメーターにアニメーションレイヤーという機能があったので、顔の切り替えはこれで新たにアサインすることで解決した。

●捕獲アニメーション
捕獲動作(腕をあげて下げる)と、ミスティまたは誤って捕獲されたキャラクターを非表示にして、その位置に捕獲袋を置く。
捕獲袋自体は暴れているようなアニメーションをつけておく。
ミスティが捕獲されたとき、3秒後にシーンをリセットするように変更

●発見アニメーション
これは軽く吹き出しが飛び出て消えればいいかな。

--

●猫
猫を使ったステージを考えている。しかし懸念点がいくつかあるので、まずは仕組みを改善していく。

現在の猫の仕様における問題は:
・猫を石化させると途端にゲームオーバーになるのが若干理不尽感がある/わかりづらい。
・特に仕掛けの入り組んだステージでは、猫ミスはうっかりで起きる可能性もあるので、それでリセットされるとかなりストレスフル

そこで、新たな猫の仕様は:
・石化させてもゲームオーバーにはならない
・石化させずにステージをクリアすると、石化しなかった猫は「助けた猫」としてカウントする
という挑戦的な目標に改良する。こうすることで、ある単純なパズルの難易度を挑戦的に向上させることもできて都合がよい。
セレステのイチゴとかそういう感じ。

--

●太った兵士
太った兵士はプロポーションが普通の兵士とかなり違うので、アニメーションも個別に打ち直して作ろう。
ここで新たな問題に気付いた。太った兵士を石化させたときの、視野用のポリゴンの向きを左右反転していた場合のことを想定していなかったのだ。
ポリゴンの頂点は相対座標で保存されている。これをワールドに対する絶対座標に変換するとき、左右反転していたポリゴンは反転分の考慮しない位置に打ち込まれてしまっていた。
しばらく悩んだが、左右反転しているかどうかをチェックして、その場合は相対座標を一旦 「*-1」にしてから世界座標を計算して打ち込むとうまくいった。

--

●WebGL版のシャイ兵士の挙動
動作確認のためビルドしたWebGL版、どうもシャイ兵士がシャイ状態のとき、正しい表情を反映できていない。
エディタでのデバッグプレイではうまく動いているのだが……。

うーん、問題を細かくみていこう
手足の動きは正しく反映されている(顔だけがうまくいっていない)ということは、まばたきのために顔の偏移を複雑にしたのが影響しているのだろう。
アニメーションしている身体のコンポーネントを確認すると……。統合前のまばたきコンポーネントが残ったままだった。凡ミス。
直すと果たしてうまくいった。

--

●一時停止
現状では一時停止すると、アニメーションがどういう状態であれ直立不動のポーズ(ただし表情だけは偏移後のもの)となる。
しかしよくよく考えるとこの挙動からしてちょっと想定外だ。なぜポーズが初期状態になってしまうのだろう。
現在のポーズ命令が行っていることは:
・AIPathの移動許可を切り替え
・RigidBody2Dの停止
・その他のMonoBehaviourの停止
だけなので、アニメーション関連のうちMonoBehaviourでないものにはそもそも影響すらしていない、はず。
停止状態で確認すると、身体パーツの「SpriteSkin」コンポーネントがdisableになっていた。こいつか?
一時停止コンポーネントのdisable対象からSpriteSkinを除外すると、ポーズ中でもモーションを続けるようになった。
これにAnimator.speedを0にすればうまくいくだろう。
が、今度はSpeedを0にしても動き続ける。うーむ。
あっ。Forループのカウント対象が間違ってただけだった。直したらちゃんと動いてくれた。
めでたしめでたし。

--

●ゴール・扉のアニメーション
これはちょっと後回しにしておこう。どういうものにするか決めかねているので。

--

あとは変更に伴ったバグだのを修正していったらもう夜中だ。
ここまでのアニメーション関連を反映したやつをitch.io上で遊べるよう更新した。

  • by Anonymous Coward on 2020年10月26日 14時20分 (#3913220)

    隠しキャラでないならクリアしている/していないステージが分からないとイライラする。

    ここに返信
typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...