Blender 2.8 View Model Tutorial (FPS ARMS)

Can you do this in blender 2.79?

I have never seen a tutorial that goes so in depth with explaining things. Thanks for this FPS tutorial and it really helped me a lot as I am a beginner to FPS games :slight_smile:

1 Like

BOOKMARKED!
Finally somebody that explains this topic so good!
Keep it up, an amazing and wonderful tutorial!

1 Like

A month since i have looked into this post, i have improved quite a lot!
I understand most of how rigging and child-of constraints work, and i am now working on an fps project! safe to say i have improved tremendously! thank you very much for this helpful post for it has basically started me doing viewmodel animations for fun and for work!

22 Likes

I really appreciate this.
My tutorial clearly wasn’t the best, especially for beginners, and I pretty much wanted to get it over with because people wouldn’t stop asking me even though I often explained that I wasn’t a good teacher. I’m surprised some people actually learned from it.

I’ll definitely leave a link for this in my comments.

7 Likes

I was surprised at the lack of information out there on this topic but this tutorial is awesome!! I have a question though. Once I import the animation from blender I can see it playing but how do I actually use and trigger the animation in a script or something? I’m not seeing where the animation data actually goes. When I exit the animation plugin it seems to just go away. Also, how would I use the rig camera as the game camera? Sorry if those are nooby questions Im new to animations in studio. Thanks again for the tut!

1 Like

I don’t fully understand what you were intending to ask but I will provide this just in case it was what you were asking:

SOMETHING HAVING TO DO WITH IMPORTING THE ANIMATIONS


OPEN ME

So when you’re inside of studio, you should have your plugin thing on the side somewhere opened.

Like the following:

Example

After that, you should be heading to blender to animate your stuff. Once you’re done animating, you should want to preview it INSIDE of studio right? Well, to do that, you must first press “Export Animation” inside of blender.

Example

After you pressed that button, something should appear on the bottom of your screen in blue saying, “Baked animation data exported…” in blue.

So now, we move onto Roblox Studio. In it, inside the plugin, there’s a button called, “Import Animation.” Press it and a script should appear asking you to paste something. Simply press Ctrl + V or Cmd + V if you have a Mac.

If it’s still not loading your animations, just take it to a fresh new place. Sometimes it bugs out and won’t play unless it’s a fresh place.

STICKING THE CAMERA TO THE ONE IN BLENDER


OPEN ME

Once again, I’m assuming this is what you meant:

Example

Basically the camera moving according to what you did inside of blender. So, just a heads up, I’m not a scripter, I’m more of a builder. Sorry if this isn’t the correct way but it’s the basic way.

So all I did was put a local script into StarterPlayerScripts and inserted the following script:

Script
local Player = game.Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Camera = workspace.CurrentCamera

while true do
repeat wait()
	Camera.CameraType = Enum.CameraType.Scriptable
until Camera.CameraType == Enum.CameraType.Scriptable
Camera.CFrame = workspace.FalPara16Rig.Camera.CFrame
end

This isn’t probably how some people do it but yeah, it’s basically locating your weapon in workspace and finding the Camera Part inside of it and constantly putting the player’s camera into it. Remember to make sure your Camera Part “FRONT SURFACE” is facing towards the gun. Now if you press play, you would see that your camera is stuck to the camera part. But you may realize that your animations aren’t playing.

To fix this, just export your animation out and get it’s ID. Head back into studio and insert a script into your gun model. Inside the script, add an animation thing.

Like this: Screen Shot 2020-07-08 at 10.46.23 PM

Obviously, your animation thing can be any name.

Paste your animation ID into the animation thing and inside the script, write:

Script
local animation = script:WaitForChild("animation")
local humanoid = script.Parent:WaitForChild("Humanoid")
local Anim = humanoid:LoadAnimation(animation)

Anim:Play()

It’s just looking for the animation thing and applying it. Also, make sure your model has a Humanoid in it.

That should be it actually, I hope this was what you were asking, feel free to ask questions if you have any!

Have a wonderful day.

6 Likes

Great! That answers my questions. Thank you for such a detailed answer!

1 Like

You should use RenderStepped instead of a while loop to constantly update the camera position for 100% smoothness. Using a while loop and wait() would only update it up to 1/30th of a second (basically 30FPS), meanwhile RenderStepped fires every frame so it updates it every single frame.

wait() is also notoriously unreliable and unpredictable as well.

2 Likes

Definitely possible in Blender 2.79. I’ve made some quality animations with it, before 2.8 released.

Why don’t you use 2.8 though?

1 Like

How do you get the keyframe sequence working in the roblox animator or how do you save it to roblox?

2 Likes

If you go there and scroll down to where it says,

“ROBLOX ANIMATION EDITOR TUTORIAL,” it will show you some basic stuff about that.

2 Likes

When you clicked the upload to roblox button on the Blender Animations plugin it opened up something but not for me. How did you get that to open? And I want to save it as a Roblox Animation not an asset.

Did you click export? If it still doesn’t work, try taking it to another place. Save your current animation by press the save button. Like so:

Screen Shot 2020-07-14 at 7.03.48 PM

When you head to a new place, simply press Load and find your animation save file.

1 Like

Yes thank you It worked I put the keyframe sequence into the roblox animator.

1 Like

Thank you so much! Now I can finally learn how to animate like Falco Blockland :grinning:

Although, I have noticed that when I use your view model / rig, and turn the cancollide off on the arms (because I’m attaching it to the camera,) it turns cancollide back on by itself. Do you have an explanation for this?

EDIT: Found out that it was the plugin doing that. I ended up importing my own mesh the way roblox does it. Thank you so much!

EDIT2: Realized that when I insert the humanoid, it makes the parts cancollide true again. Is there any way I can fix this? (I have worked with other viewmodels, and they do not seem to have this problem)

EDIT3: Found out it was the humanoid I was using. Ended up using my characters humanoid to set everything’s can collide to false. Thanks again

2 Likes

I am myself having a Blender Rig that isn’t imported into Roblox yet and brings me a couple questions you guys maybe might be able to answer.

I work on my day to day job as a 3d artist and have a complete FPS character rig with the character and arms.

The character is one mesh and not like in Roblox separated parts and the same goes for the arms and hands.

I did love to import them as a mesh to have the flexibility of rigging them based on their mesh form and not several smaller body parts.

The hands on their own are my biggest question as I would like to import a low poly rig with 2 fingers basically a bigger version of the 5 fingers we have in this case the 4 fingers apart of the thump.

The hand is split up in the four fingers we have and our thump but as explained above those 4 fingers are one whole instead of 4 separated fingers.

I did love to share my rig here with everyone to look into rigging it or giving me advice on how to do it but I did like to first ask more about it and then share images and such things.

Like a rig with fingers and stuff? I don’t quite understand sorry.

Exactly a rig with fingers and stuff.

I have it setup as a whole too I only can’t import it as a custom rig.

Roblox has a limit when you’re importing a mesh. That might be why.

More here: Increased polygon limit for CSG parts and Mesh parts