見出し画像

FallingDown(転ぶ)状態からすぐに立ち上がる方法を考える RobloxStudio

こんにちは…

けつべつです…

新しいゲームの制作で少し忙しかったです

画像1

息抜きに前に作った作品の更新をしていました。壁をひたすら壊して、貯めたポイントで脚が早くなるアイテムを買ってまた壁を壊すゲームです。外国のジュースのキャラクターをモチーフにしました。

ゲームと言えるかはわかりませんが、ストレス発散にはもってこいだと思います!!!

ゲームはこちらから!!


遊んでて不便だなと思うことがありました。

アバターが細身だと壁を破壊する時に爆発に巻き込まれて体が吹っ飛ぶのですが、その直後に三秒ほど気絶したように倒れて動けなくなってしまうのです。

移動ボタンを押してもジャンプしようとしても全く動きません。少しストレスを感じます。

それなので気絶状態をなくしたい!と思い色々調べました。

参考にしたサイト:https://developer.roblox.com/en-us/api-reference/function/Humanoid/GetState



悩む

いろいろ調べると、プレイヤーの気絶状態は「FallingDown」というのだそうです。日本語にしたら「転んでいる」状態になるっぽいです。

参考にしたサイトに書いてある通り、StarterPlayer.StarterCharacterScriptsの中にLocalScriptを入れてサンプル通りに書いて書き換えたのですが、思ったように動きませんでした。

FallingDownからGettingUp(立ち上がる)にしたいと書きましたがダメでした。まだまだ初心者だし英語もわからないので、これ以外になんて書けばいいのかわかりません。

でも、気絶するとそれを感知してスクリプトが起動することがOutput(スクリプトが動いてるか確認できるウィンドウ)でわかりました。なので別のやり方で気絶状態解除することにしました。

それは…

一瞬座って立ち上がる方法です!!



解決

local UserInputService = game:GetService("UserInputService")
local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")

humanoid.StateChanged:Connect(function(oldState, newState)
	if newState == Enum.HumanoidStateType.FallingDown then --プレイヤーが気絶したら…
	
		humanoid.Sit = true  --座る!
		wait(0.01)
		humanoid.Sit = false --立つ!
			
	end
	end)

気絶状態になった瞬間にプレイヤーを一瞬座らせて立ち上がらせることで、すぐに動けるようになるんじゃないかと考えました。

実行すると爆破に巻き込まれた瞬間に立ち上がり、すぐ操作できるようになりました。一瞬なので座っているアニメーションは表示されません。

成功です。いえーーい!!!!

みんなも知識がないうちは別の方法で解決するようにがんばってみましょう。初心者が言えることじゃありませんが…

〜おしまい〜