左スティックの倒し具合で、歩行・走行を切り替える方法!
皆さんは、
左スティックが
どれだけ倒されたかによって、
移動状態(歩行・走行)を切り替えたいッッッ・・・!
と思ったことはないでしょうか??(俺はありますよ??)
今回はそんな悩みを抱えた人たちの役に立つかもしれない記事を書きました。
やりたいことをそれなりに分かりやすく図にしました。↓
左スティックを上から見た感じの図ですね。
左スティックを何も倒していない時、Idle(図だと赤の部分の事)
左スティックを少し倒した状態~全開の手前まで倒していれば、Walk(図だと黄色の部分の事)
左スティックを全開の手前~全開まで倒していれば、Run(図だと緑の部分の事)
これを実現するための方法を教えます。
※サードパーソンテンプレートを使用します。
ThirdPersonCharacterBPを開きましょう。
変数
MovementChangeValue・・・デフォルト値「0.9」 左スティックがこの値を超えた時に歩行状態(歩行・走行)を切り替える
ForwardAxis・・・Axis値
RightAxis・・・Axis値
F-Axis・・・画像の説明の通り
R-Axis・・・画像の説明の通り
イベントグラフ
左スティックがどれだけ倒されているかを
「CalsulateAnalogStickAxisValue」純粋関数で計算します。
自作関数ですね。
「CalsulateAnalogStickAxisValue」の中身↓
F-Axis・・・左スティックが前、あるいは後ろにどれだけ倒されているかの値
R-Axis・・・左スティックが左、あるいは右にどれだけ倒されているかの値
「GetForward/RightVector」マクロ
ただ単に見た目をコンパクトにする為だけにマクロにしてるだけですw
「GetForward/RightVector」の中身↓
「MaxInput??」という純粋関数で左スティックがどれだけ倒されているかを判定します。
自作関数です。
「MaxInput??」の中身↓
MovementChangeValueというのは、
左スティックがどれだけ倒されたかによって
移動状態(歩行、走行)を変える値の事です。
例えば、MovementChangeValueのデフォルト値を「0.5」にした場合。
左スティックを半分(0.5)以下の量まで倒していれば歩行
左スティックを半分(0.5)以上の量まで倒していれば走行
という事になります。
歩行時はMaxWalkSpeed・MinAnalogWalkSpeed「200」
走行時はMaxWalkSpeed・MinAnalogWalkSpeed「600」
さて、さりげなく出てきた
MinAnalogWalkSpeed
とは何なのか??
MinAnalogWalkSpeedとは、
左スティックが倒された時の最小歩行速度
の事です。
例えば、MinAnalogWalkSpeedの値を「100」に設定した場合
左スティックを倒し始めた時の最小歩行速度は「100」になります。
そこから更に左スティックを倒すと、速度はMaxWalkSpeedの値まで到達しようとします。
MinAnalogWalkSpeedの値の設定は、CharacterMovementの詳細パネルで出来ます。
さて、実際にやってみましょう!
まあ、映像じゃさっぱり分からないですよねww
でも実際にやってみればわかります。
左スティックを全開まで倒せば走行
それ以外は全部歩行になるはずです。
それではまた!^^ノシ