【開発記】進捗報告(2月:4回目)
ちょっと時間がかかりましたが、区切りが付いたので進捗報告。
しばらくは以下のようなことをやっていました。
・SimpleAnimatorへの移行
・武器の切り替え実装(UI、アニメ)
・移動をフローティングするように改修
・その他バグ修正
それぞれ結構学びがあり、記事にまとめておきたい内容ですが、ちょっと時間がかかりそうなので、また後日...
とりあえず簡単に
【SimpleAnimatorへの移行】
終了判定の改修、敵側の処理の移行などを行っていました。
「PlayableGraph.IsPlaying」が常にtrue状態になるようで、自前でUpdate内で再生後に時間経過で終了、フェードタイミングになったかを判定しています。
【武器の切り替え実装】
現状は攻撃ボタンをフリックすることによって、武器を切り替えるようにしています。
最初は普通にボタンを置こうとしていましたが、
・ボタンがギュウギュウになり、押しづらい
・操作性を変えることで少しでも単調さの解消
などがあったので、フリックにしました。
現状だとパッと見、フリック出来ることは分からないので、要検討。
(最初の操作説明でも良い気も...)
【移動をフローティングするように】
以前は常にジョイパッドを表示していましたが、画面の左側をタップするとジョイパッドが出てきて、操作できるような形に変更しました。
この後の作業としては、
・銃の攻撃の実装
・メッセージなどのイベント処理実装
などを行おうと思います。
それでは今回はこの辺で
(´・ω・`*)ノシ
【開発記】進捗報告(2月:3回目)
昨日の記事でもっと良い方法があったので記載。
SimpleAnimationですが、スケールの問題があったり、昨日書いていませんでしたが、終了判定をする際にWrapModeをOnceにしないといけなかったりしていました。
解消法ないかなと調べていたら、またみんな大好きテラシュールウェアさんで以下の記事がありました。
SimpleAnimationではないですが、こちらのSimpleAnimatorを用いれば、スケールのキーを消したりする必要はなさそうでした。
ただ、終了などの判定に関してはないため、自前で組む必要がありそうです。
コンボなどはクロスフェードさせるので、フェードさせる分、何フレーム前か割合とかで呼んであげる必要がありそう。
この辺りはステートマシンだと簡単だったけど...
それでは今回はこの辺で
(´・ω・`*)ノシ
【開発記】進捗報告(2月:2回目)
連休明けの進捗報告。
とりあえず前回記載していたSimpleAnimationへの移行を行いました。
ステートマシンを使わなくなったのでかなりシンプルになり、いい感じ。
RootMotionも反映されているし、処理からの呼び出しだけどアニメのクロスフェードも出来ているので、一通り問題無さそう。
1つ不満点としてはSimpleAnimationだけだとAnimationWindowでアニメが表示されず、編集するには一度Animatorにコントローラーを通さないといけない点がありました。
起動中に状態を確認するときとか面倒になりそうな。
その他、挙動として一つよく分からない現象がありました...
何故か特定のアニメで特定の部分のみスケール値が2くらいに書き換わる状態に...
アニメを見てみても特にスケールにおかしな値は入っていませんでした。
(3dsmaxから書き出した際にベイクされるので、スケールのアニメを付けていなくても全てに「1」のキーが打たれています)
試しにUnity上でアニメのスケールのキーを消してみたら問題なさそうでした。
とはいえ、3dsmaxで書き出す際に特にスケールのアニメを付けていなくてもベイクされているので、アニメを更新したら、また消さないといけないという面倒くさいことになりそうな...
3dsmax側のエクスポーターにはキーの種類を設定するものがなさそうなので、手間ですが一旦はUnity側で対応することにしようと思います。
この後の作業としては
・敵側もSimpleAnimationに移行
・武器の切り替え、遠距離の仮アニメを改修
・武器の切り替えのUI改修
などをやっていこうと思います。
それでは今回はこの辺で
(´・ω・`*)ノシ
【開発記】進捗報告(2月:1回目)
とりあえず先週予定していた
・武器の切り替え
・遠距離攻撃の実装
については実装だけ完了(仮モーションだけど...)
といいつつも...武器の切り替えと遠距離に関しては制御だけは出来たけど、そもそものアニメの制御の仕組みが今の作りだと破綻しそう+後への影響が大きそうなので、一通りの機能を入れることを優先していましたが、先にアニメの制御の仕組みを変更しようと思います。
具体的には現状だとMecanim側でパラメータやらStateMachineBehaviorなどで制御しているのをプログラム側で制御するように修正予定。
現状だとちゃんと設計出来ていなかったので、バグの温床+拡張性がなく...
みんな大好きテラシュールさんのこの辺りとかを参考にしつつ実装していこうと思います。
それでは今回はこの辺で
(´・ω・`*)ノシ