ViewportFrameAnimations?

I am creating a camping game. I am trying a character walking or waving. Like in Field Trip Z.
I have tried watching yt tutorials. They only work for a dummy. Could you please help me do this?

Thank you.

From CoolGuyAlt_67890y

1 Like

@boatbomber made an open source module for this.
See this post:

This renders the player’s character so you will see it move when they walk, run, jump, etc.

If you want to make a character wave, you can just load roblox’s default wave animation to the players humanoid.

2 Likes

For some reason i cant open the file. Why??

You have to go to the models section, and click on the model button on the right hand side, then it should open your explorer, then select the model you downloaded.

still cant find it. I downloaded it.

It says no application can open it

I just explained, you have to go to the models section and open it from there…

I did it. After trying a long time.

My :grinning: :grinning: thanks to you

Hey, it’s me! In that post I didn’t know the limits of the WorldModel so I was tryna do stuff the WorldModel can’t do. But hopefully they add more functionality to it in the future. :slight_smile:

local Message = game.ReplicatedStorage:WaitForChild(“Message”) — StringValue
local Speaker = Message:WaitForChild(“Speaker”) — StringValue

local player = game.Players.LocalPlayer
local DialogueFrame = player.PlayerGui:WaitForChild(“DialogueGui”).DialogueFrame
local RunService = game:GetService(‘RunService’)
local UserInputService = game:GetService(“UserInputService”)

–Localize
local instance,newRay = Instance.new,Ray.new
local v2,v3,cf,udim2 = Vector2.new,Vector3.new,CFrame.new,UDim2.new
local insert,random,abs = table.insert,math.random,math.abs

local ValidClasses = {
[“MeshPart”] = true; [“Part”] = true; [“Accoutrement”] = true;
[“Pants”] = true; [“Shirt”] = true;
[“Humanoid”] = true;
}

local function RenderHumanoid(Model, Parent, MainModel)
local ModelParts = Model:GetDescendants()
for i=1, #ModelParts do
local Part = ModelParts[i]

	if ValidClasses[Part.ClassName] then

		local a			= Part.Archivable
		Part.Archivable	= true

		local RenderClone	= Part:Clone()
		Part.Archivable	= a

		if Part.ClassName == "MeshPart" or Part.ClassName == "Part" then
			PartUpdater = RunService.Heartbeat:Connect(function()
				if Part then
					RenderClone.CFrame = Part.CFrame
				else
					RenderClone:Destroy()
					PartUpdater:Disconnect()
				end
			end)
		elseif Part:IsA("Accoutrement") then
			PartUpdater = RunService.Heartbeat:Connect(function()
				if Part then
					if RenderClone.Handle then
						RenderClone.Handle.CFrame = Part.Handle.CFrame
					end
				else
					RenderClone:Destroy()
					PartUpdater:Disconnect()
				end
			end)
		elseif Part.ClassName == "Humanoid" then
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.FallingDown,			false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.Running,				false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.RunningNoPhysics,	false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.Climbing,			false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.StrafingNoPhysics,	false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.Ragdoll,				false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.GettingUp,			false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.Jumping,				false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.Landed,				false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.Flying,				false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.Freefall,			false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.Seated,				false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.PlatformStanding,	false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.Dead,				false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.Swimming,			false)
			RenderClone:SetStateEnabled(Enum.HumanoidStateType.Physics,				false)
		end

		RenderClone.Parent = Parent
	end 
end

end

Message:GetPropertyChangedSignal(“Value”):Connect(function()
DialogueFrame.Dialogue.Text = Message.Value
script.DialogueSound:Play()
end)

Speaker:GetPropertyChangedSignal(“Value”):Connect(function()
DialogueFrame:TweenPosition(UDim2.new(0.55, 0,0.139, 0))

print("New Speaker: "..Speaker.Value)



local Character			= workspace[Speaker.Value]


--Basic setup
local ViewPort			= DialogueFrame.ViewportFrame

--Settings
local Offset			= cf(0,1,-6)

--Create the viewport camera
local Camera		= instance("Camera")
ViewPort.CurrentCamera	= Camera


--Let the world load before starting
--wait(1)


local function Render()
	ViewPort:ClearAllChildren()
	--Render the character
	local Char = instance("Model")
	Char.Name = Speaker.Value
	Char.Parent = ViewPort
	RenderHumanoid(Character,Char)
	DialogueFrame.PlayerImage.nameLabel.Text = Char.Name <--- textLabel
end

--Handle changes
Character.DescendantAdded:Connect(Render)
Character.DescendantRemoving:Connect(Render)

--Initialize
Render()

coroutine.resume(coroutine.create(function()
	CameraUpdater = RunService.Heartbeat:Connect(function()
		if Character.HumanoidRootPart then
			Camera.CFrame =  cf(Character.HumanoidRootPart.CFrame:toWorldSpace(Offset).p, Character.HumanoidRootPart.CFrame.p)
		end
	end)
end))

end)