Gowydot there is a reason military shave they heads, long hair can get jammed into gears and such. I suggest tie it to a pony tail, and add bandana

6 days later

I put visual/animation on hold last 2 weeks and went back to update my player control. New features are:

  • Now with Enum/Match statemachine
  • Climb ladder with shooting directions
  • Ledge grab with shooting directions
  • Rail with shooting directions

Took me awhile to figure all the logics out. I had to separate the body, the aiming, and the raycasts detection into individual function group so I can update them in each state.

In the end I will go with flipping my model left/right so you can see the gun all the time.

I think I pretty much got what I wanted to work. Will continue on with visuals/animations next.

@kuligs2
I'm thinking along the line of him being military prisoner or deserter, so long hair is quite appropriate. Besides, it doesn't bother him because he's the baddest.

Quick update:

Add another version of player control to work with keyboard and mouse

  • A/D = Left/Right
  • W/S = Climb Ladder Up/Down/Crouching
  • LMB = Shoot
  • Aiming is now done with mouse.
  • Still not yet decide which button to jump (Either press W or Spacebar or RMB). I will add animations and some enemies to playtest it first to see how it feels.

Will truly start modelling and animation now finally.

a month later

Update: Aiming

Took awhile because in the beginning I had a player with 360 rotation aiming so I've been playing around with arm bone rotations. Suddenly I thought that wouldn't be fair for the enemies because they can only shoot in 8 directions! so I went back with 8 directions shooting for player and use animation player/tree instead (and much easier than bone rotations).

  • Player shoots in 8 directions
  • Aim by mouse, move by keyboard.
  • Testing aiming animations using animationPlayer only, no blending just yet.
  • The red thing is a placeholder for gun. Right now it is boneattachment to forearm so it looks a bit weird, will correct the placement later.
7 days later
a month later

Away from Godot and been learning Blender on and off, especially for texturing body and face and doing haircard. Trying to find efficient workflow of creating game characters(low-mid poly). At the moment I'm creating characters for story purpose and not for actual game play.
Right now I use makehuman software to get the base body up quickly then just photoshop face/muscle to that uv texture.

This is my main player Viper K design. Trying to based him off some caveman. Retired special force, now doing some oddjob to make ends meet.

This is The Director, Viper K's ex superior (not yet with hair). He's trying to get Viper K to do a new mission, anyway he can.

I love cliche story 😃

5 days later

Looking sharp now isn't he? 😃
A bit unnecessary,though, to model shirt/jacket since I probably won't be using them but anyway..good for learning quick modelling and texturing. I will keep the coat and texture the shirt/jacket onto his body instead.



Then will rig and animate him doing something.

24 days later

Here I've made simple facial expression for my player.
Blender 4.3, Godot 4.3


(A) is using separate planes for brows, eyes, and mouth then just change the textures, with simple hand/foot rig.


(B) is a facial rig with bone constraints and drivers, with full hand/fingers/foot rig. There are also no subdivisions on the models as I think it wouldn't matter much during gameplay (with camera zoom out).

Originally I wanted to use A for in-game character and B for cinematic cutscenes but now I'm just gonna use A for both. I will use animated slide show to forward the story (old school NES style) instead of cinematic cut scenes. Just trying to keep things as simple as possible.

Not really the best looking character (well, he's meant to be a bit clueless 😄 ) but overall I'm happy for its simplicity and glad that I got my Blender rig/textures workflow in the bag (lots of trials/errors). No problem import to Godot using .glb file with just Image Texture Nodes.

Next will do some guns and other human characters.

    Gowydot Originally I wanted to use A for in-game character and B for cinematic cutscenes but now I'm just gonna use A for both.

    What is the reason for not using option B?

    How did you handle the emotions?

      Tomcat
      To save time basically.

      Although I only planned to have 3-4 acting characters, for (B) I'd have to weight paint the their faces and rig the fingers then keyframe a bunch of drivers for facial expressions. But for (A) I'd just photoshop eyes, brows, and mouths then just keyframe the textures change.

      I'm not too worry about making the top visuals for this game. I could see lots of work ahead to create items, stages, enemies..etc. in Blender. AND THEN I need to put them all together in Godot. I've been away from Godot for awhile now I forgot how my codes work already LOL.

        Gowydot for (B) I'd have to weight paint the their faces and rig the fingers then keyframe a bunch of drivers for facial expressions.

        It seems to be possible to transfer emotions from MakeHuman to Blender with both rigs and shape keys.

        a month later

        Update: Boss area camera movements & Changed Player's camera to orthogonal


        *I sped up player movements for quick showing.

        • Using subviewport, I've separated my player's camera to orthogonal while keeping level's camera to perspective. This way you can see the player on fixed view angle all the time instead of level's perspective camera angle, which aims slightly looking down on top of player's head.

        using just level's perspective camera angle

        Now with Player's orthogonal camera angle

        • I also did a sub-boss/boss camera area, where it 'detach' from player and move to a fixed position when fighting with bosses. Nothing fancy, when player touches an invisible area3D it turn "camera to follow player" bool = false then lerp camera to desired position.
        24 days later

        Update: Add Crawl position and prototype level design

        Add a crawling state to player

        • Up/down to toggle crawl position
        • Left/right to move (slower than walk, even slower if crawling backwards)
        • Looking/aiming using mouse positions.
        • Only shoots left/right
        • Testing animation logic using placeholder animations.

        Prototype level design

        • Prototyping level 1 design using box mesh.
        • *sped up player for quick visual

        Trying to create just a simple level on the go and I realized even this needs a lot of planning ahead. I'd plan the levels on paper first next time.

        Next, will add hanging on rail state / add some enemies/ more level prototyping.

          Gowydot
          Make the bullets faster than the characters speed. It looks like the bullets are just standing still when you move.

            SuperDoomKing

            I've increased player's speed only for the preview, otherwise it would take a whole minute to watch to the end. I aim for the player to finish the level with enemies/bosses in about 5 minutes average.

            15 days later

            Update : First level first scene background.

            Testing object models and lighting. First I tried doing all the textures/lighting in Blender and baked them because I don't worry too much about dynamic shadows for background. However, The result was blurry and look terrible. The solution was basically I need to bake into large image to look decent. I read that vanilla bake from Blender is bad so I dropped that and now just export plain models and do the textures/lighting in Godot.

            Quick Update : The wall becomes invisible when player is near.

            When the door is destroyed it sends signal to activate area3D collision to true. When player hits this area3D it triggers the on_body_enter/exit to activates/deactivates the lerping of material opacity.
            *note: The grey "rectangle" is still left visible because this wall was made with CSG boolean mesh for prototype. I plan to use imported blender mesh later.

            6 days later

            Now using Godot 4.4 - converted fine except occasionally editor shutdowns when re-importing .glb. To be fair I re-import my model everytime I add a new animation so few shutdowns here and there isn't much of a problem and after re-start everything works as normal.

            Update : Rail actions

            -Player hanging on rail using raycast on the head.
            -Aiming while hanging using animationTree blending hanging animation with arm and head from standing aim animations.
            -When moving he can not shoot.
            -There's a misalignment when coming down to the rail or jump when hanging, maybe I will fix it by lock the player to desired position , disable raycast for split second, or simply disable jump while hanging altogether.

            Update : Ladder actions

            -Same system as Rail actions

            Quick update:

            • I fixed rail hanging misalignment by shorten raycast length and disable raycast for a split second using timer.
            • Rotate/reposition player collision (not visible here) using animation player.