【Unity奮闘記】子豚を投げるはめちゃくちゃムズイ。
Unity奮闘記、まずは前回の課題3つ、
・左クリックでノラちゃんのアニメーションが切り替わるけどその反応速度が遅い。
→エンジニアさんに相談してみたところ反応が遅いんじゃなくて、
「アニメーションの再生が1週終わった段階で遷移してる可能性がある」
ということで、ちょっと自分でも調べてみたところまさにその通りでした。
設定を「終了時間なし」にしてモーションの途中でも
遷移できるようにすることでクリアできました(/・ω・)/
・アニメーションの途中でたまに止まる。
→ChatGPTさんにplayer(ノラちゃん)のコードを何度も書き直しさせてたら
いつの間にか直ってました。AIも完璧じゃないんだなぁ……と不思議な実感。
・着弾点を示す▲が画面右端で止まってくれない。
→前回は画面端に壁のオブジェクトを置いて、
判定が当たったら止まってそれ以上行かないようにする~ってしてたのですが、
リジットボディが無いから衝突判定が出ない!ということに気づきました💦
かといってリジットボディ付けたら▲が自由落下してしまう……
ということで、「▲の移動範囲を座標指定で制限する」コードを、
ChatGPTさんに書いてもらって解決できました(/・ω・)/
という感じで前回課題を無事クリアしたところで、
今回の目標は「ノラちゃんに子豚を投げさせる」です。
3日目に出来たこと
・投擲用の子豚をプレハブ化して投擲モーションに合わせて呼び出し。
→プレハブ化とかアニメーションイベントの挿入とか、
ここら辺はChatGPTではどうにもならないので自分で調べました。
Unityのアニメーターの使い方を理解するのは、
そもそもこのゲーム作ってる目的の一つでもありますので頑張りました。
その節はyoutubeの解説動画にもお世話になりました。
それでもまだまだ理解しきれないUnity……むずい。
・投擲用の子豚が▲が停止した座標に向かって放物線を描いて着弾するようにする。
→今回はこれにめっちゃ時間かかりました。ただ右に移動させるだけでは、
なかなかいい感じにならず……(縦の動きはアニメーションでつけてます)
ChatGPTさんに何十回とコード書き直しさせてようやくそれっぽくなりました。
・右クリックで強化投擲のモーションをとるようにする。
→右クリック押してる間は子豚を掲げるモーションに~
~離すと投擲モーションに遷移するという形。
基本、やった事は普通の投擲と同じことなので
結構すぐできるだろうと思ってたのですが、ここで一つ原因不明の問題が発生。
アニメーションの遷移図、こうなってるんですが……
現在の状況的には、一連が以下のようになってしまっております。
・右クリック押す
↓
「player_chargestart(一回再生)」子豚掲げる予備動作
↓
「player_charge(ループ再生)」子豚掲げるモーション
↓
・右クリック離す
↓
「player_chargeend(一回再生)」投擲モーション
↓
「player_stand(ループ再生)」立ちモーション、本来ここで止まる。
↓
「player_chargestart(一回再生)」子豚掲げる予備動作
↓
「player_charge(ループ再生)」子豚掲げるモーション
何故か「player_stand」で遷移が止まらず、
赤文字部分まで遷移して止まってしまうのです……
これは一体どういう現象なのでしょうか……
頼みのChatGPTさんもなかなか答えを出してくれず困ってます💦💦💦
原因が分かる方いたらコメントしてくれるとありがたい。
4日目に出来たこと
3日目に発覚した、
何故か「player_stand」で遷移が止まら無い問題はひとまず脇に置いておきました。
・投げた子豚と敵の子豚の判定が当たったらノックバックするようにする
→判定が重なっているはずなのになぜか何の反応もせず、苦労しました。
試行錯誤したところ、どうやらリジットボディが
設定されていないことが原因だったよう……
投げた子豚のほうに重力付けたくなかったので意図して外していたのですが、
どうやらリジットボディを付けた上で重力を外すことが出来た模様
……いや、わからんて💦
時間はかかりましたがなんとか解決し、ノックバックさせるところまでは出来ました。
これであとは当たった時に被弾モーションにして、着弾時に爆破エフェクトもつけて……
単純なゲームのはずなのにやることがいっぱいです💦💦💦
まぁ、地道に頑張っていきたいと思います。
ということで、今回はこんなところです。
その他応援・支援・ご意見等、
コメントいただけるとありがたい!!
お待ちしております!!