• Projects
  • Project Regina - 3D 3rd person demo (Godot 4)

A 3D 3rd person player demo of what I've been learning (Godot 4).

I have some backgrounds in 3D (as a hobby) and I started learning Godot at ver3.2 and Blender ver 2.9. I want to try to create a 3D 3rd person project with low to mid poly like PS2 'GTA 3' or 'Bully' graphics.

The main things I'm concentrating on are Player controls, Interactions, StateMachines, Inventory, Water, Save/Load. So this thread is basically gonna be about putting it all together. (It's gonna be a slow process though as I do this in my spare time)

I will mention various methods of how I achieve the result so ppl can at least know where to look in search. Feel free to ask or suggest improvement.

First off, here's my Character Regina George from Mean Girls LOL. I choose her because I wanted to learn doing Long hair and Skirt on a character.

Methods:
Blender - Hair cards with alpha / Rigging / Stencil paint / Combined UVs / Baking textures.

Godot - Import model with textures alpha / Override materials / Facial animation with shader (animated texture2D and texture2Darray) / Animation Retarget / Add, Remove_Child.

For facial animation I used 'Face Mask' technique where I place extra polygons in front of head then applied shader materials.

Shout out to MakeHuman for base body - I used actress image to match the body and face mesh.

Tomcat
I wouldn't call it a game as it won't have any objectives. I only want it to be a testing playground project where I can make a character interacting with stuffs.

Yes, it's a simple character from MakeHuman. I placed actress image as a background then used slider to shape the face and body, then export mesh to Blender. I then flatten the eyes / mouth as I want to use the face mask method. (flatten her toes too for the shoes paint on)

I also noticed MakeHuman has 2.0a out for testing. I will check it out later.

    Gowydot I wouldn't call it a game as it won't have any objectives. I only want it to be a testing playground project where I can make a character interacting with stuffs.

    Well, that's a way of saying that there are no objectives in the Sims series either. 😆 "Interacting with stuffs" is gameplay and quite popular. 👍

      Gowydot I also noticed MakeHuman has 2.0a out for testing.

      The new version of MakeHuman is 1.2.1 alpha (nightly). And 2.0a is MPFB2 — a plugin for Blender. Slightly reduced in functionality compared to the standalone program.

        Tomcat Well, that's a way of saying that there are no objectives in the Sims series either.

        Isn't the basic objective to keep your sims alive at the bare minimum, and ever more prosperous as the secondary?

          Megalomaniak Isn't the basic objective to keep your sims alive at the bare minimum, and ever more prosperous as the secondary?

          Nope. Far from it. It's up to the player to decide what his goal is.

          I run the risk of possibly disappointing or overwhelming... but… some players, choose how to kill a sim in the most sophisticated way possible. And often these players are young children. I'm a moderator at a The Sims fan site and I could tell a lot of creepy stories. But, trust me, it's better not to know them.

          It's kind of a competition between the players and the developers. The developers are teaching the Sims to save themselves. For example, in the past, players would run sims in the pool and remove the ladder in the editing mode of the house. The sim would get tired, could not get out and drowned. Developers have done that sim could get out without the ladder from the pool.

          Yes, emergent gameplay but I meant as in the primary core game-loop as designed by the developers.

            Megalomaniak …but I meant as in the primary core game-loop as designed by the developers.

            The humor is that now it is very difficult to guess what the developers intended. The very presence, initially, of many situations, including those with lethal risks, suggests that the objective is to allow players to implement various life and living scenarios. A long happy life is one possible scenario available. But it's not the only one.

            There is an opinion that Sims was made as a parody of the American way of life. But after William R. Wright had a loud falling out with EA, one can only wonder what he wanted but didn't have time to realize. And to what extent his ideas survived in subsequent games in the series.

            A little test before I send her to a StateMachine.


            -Hair Jiggle: Jiggle Bone Addon


            -Random animation while idling: AnimationPlayer/Array/Timer/Randi()

            I disabled the skirt because it requires new retarget/script adjustments. She will get a new player script anyway so I figure to just update it there.

            Wow! What kind of rig and where did the animation used for the model come from?

              Tomcat
              I did a simple rig and keyframe rough animations for testing purpose. Personally I have no idea what she's doing LOL

              11 days later

              Node based state machine.

              *There are some frozen states when jumping/running/with skirt. It probably has something to do with pressed and just_pressed jump/run button. I will try fix it along the way but overall the State Machine is working alright.

              *There is also this error with animation player. For some reason if I don't set animation to loop linear it will throw red error that "on_animation_finished not found" on that animation. Set to loop ping-pong also won't play either. So I set all my animations to loop linear.

              Next I will add my nemesis...Inventory 😆

              This is looking really cool. Reminds me of The Sims.

              a month later

              I have done the Inventory and Shop. It is based off this tutorial. I just added more functions / modified it to my likings.


              This is the Player Inventory. It has 4 tabs, 1 for each item category (Clothings, Accessories, Items, Food). Right now they are all empty. The right panel to show item Infomation and buttons.


              You walk to the shop and the Shop Inventory is activated. You then buy items and it will be placed in its category tab (in the Player Inventory). I also use ScrollContainer, there are empty spaces to put item descriptions and quantity.


              For Clothings Tab, there are 2 places where you can put item on the player, Body and Hip. They are just node3D positioned in player's scene. Then when press button it checks the name of item in that category then add_child it.

              I also got the Tick system when one of the Body/Hip item is being used.
              (by checking var is_used = true then make the sprite2D tick visible)


              I got a swimsuit item which is just swaps player's texture and play shapedkey to expand the hip back to normal proportion. (I originally shrank the hip so it won't see through clothes that much)


              You can unuse items and discard them


              For Accessories Tab is pretty much the same. I use boneattachment for head bone and wrist bone. I add jiggle to the Bunny ears.


              For Items Tab is just a pop up to show more details. Maybe use for clue or map or use key for doors..etc.


              For Food Tab, each Item can be stacked and used up. In this demo I use it to change variables, for example, Chocolate bar will decrease Health, Apple with increase it, and Cake will increase coins.

              This inventory code is kind of a mess, many duplicated codes, and totally unoptimized. I don't think it can/should be used in real game. There are also still room for improvement like sorting items. Overall though I'm pretty happy that I could make this Inventory work.

              Next I will try doing the scene switches and to carry those player's equipped items over. Then the save/load function.

              Well, it's almost an alternative to the The Sims. There's just a little bit of tweaking left to do. 😹