All Projects → GDQuest → Godot 3d Mannequin

GDQuest / Godot 3d Mannequin

Licence: other
An Open Source 3d character and character controller for the Godot game engine

Projects that are alternatives of or similar to Godot 3d Mannequin

gamesearch
A Simple Search Engine to help you find FREE Download Links to your Favourite Games
Stars: ✭ 30 (-93.7%)
Mutual labels:  games, video-game
Igdb
Go client for the Internet Game Database API
Stars: ✭ 65 (-86.34%)
Mutual labels:  games, video-game
WildWorld
Sandbox freestyle multiplayer game/engine in LÖVE/LUA.
Stars: ✭ 35 (-92.65%)
Mutual labels:  games, video-game
FLOSS-Games-on-Steam
A list of FLOSS games available on Steam
Stars: ✭ 90 (-81.09%)
Mutual labels:  games, video-game
Awesome One Person Games
🎮 A curated list of successul games, made (quite) entirely by a lone gamedev.
Stars: ✭ 276 (-42.02%)
Mutual labels:  games, video-game
Glide
Game engine for making 2d games on iOS, macOS and tvOS, with practical examples and tutorials
Stars: ✭ 353 (-25.84%)
Mutual labels:  games
Dosbox Staging
DOS/x86 emulator focusing on ease of use
Stars: ✭ 412 (-13.45%)
Mutual labels:  games
Vangers
The video game that combines elements of the racing and role-playing genres.
Stars: ✭ 339 (-28.78%)
Mutual labels:  video-game
Games
🎮 A list of popular/awesome video games, add-ons, maps, etc. hosted on GitHub. Any genre. Any platform. Any engine.
Stars: ✭ 18,676 (+3823.53%)
Mutual labels:  games
Eka2l1
An experimental Symbian OS emulator
Stars: ✭ 462 (-2.94%)
Mutual labels:  games
Mainloop.js
Provides a well-constructed main loop useful for JavaScript games and other animated or time-dependent applications.
Stars: ✭ 425 (-10.71%)
Mutual labels:  games
Shadergen
Proof-of-concept library for generating HLSL, GLSL, and Metal shader code from C#,
Stars: ✭ 395 (-17.02%)
Mutual labels:  games
Fxglgames
This repo contains sample games built with FXGL
Stars: ✭ 363 (-23.74%)
Mutual labels:  games
Redrunner
Red Runner, Awesome Platformer Game.
Stars: ✭ 414 (-13.03%)
Mutual labels:  games
Happyfuntimes
A System for creating 10-100+ player local games
Stars: ✭ 341 (-28.36%)
Mutual labels:  games
Pokemon Font
GAME BOY font from Pokémon R/G/B/Y/G/S/C, Unicode extended.
Stars: ✭ 437 (-8.19%)
Mutual labels:  video-game
Sulis
Turn based tactical RPG with several campaigns, written in Rust
Stars: ✭ 338 (-28.99%)
Mutual labels:  games
Warezz
It's illegal cuz they can't tax you!
Stars: ✭ 386 (-18.91%)
Mutual labels:  games
Cdogs Sdl
Classic overhead run-and-gun game
Stars: ✭ 422 (-11.34%)
Mutual labels:  games
Qodot Plugin
Quake .map support for Godot.
Stars: ✭ 368 (-22.69%)
Mutual labels:  games

banner image showing the character in several poses

Open 3D Mannequin is an Open Source 3d character and character controller for the Godot game engine

⚠ The project only supports Godot version 3.2 and above.

➡ Follow us on Twitter and YouTube for free game creation tutorials, tips, and news! Get one of our Godot game creation courses to support our work on Free Software.

The mannequin in-game

Table of Contents

This is a third person character controller designed to work both with the keyboard and a gamepad. It features a camera that can auto-rotate or that can be controlled with a joystick.

Quick Start Guide

The 3D Third Person Character Controller is made of two scenes:

  • CameraRig.tscn - A 3D camera rig with a state machine for aiming
  • Player.tscn - A KinematicBody with a state machine for player movement. Contains an instance of CameraRig. It also includes the animated 3D mannequin.

To use the default character, instance Player in your game. See Game.tscn for an example. In this demo, the obstacles are mesh instances with static body collisions making up a cube world.

Controls

The game supports both mouse and keyboard, and the gamepad.

How it works

Player

The scene that deals with the movement, collision, and logic of the player. The player is a KinematicBody with a capsule collision shape, and the movement logic is within a Finite State Machine.

The scene also holds an instance of the PlayerMesh for animation purposes. This scene lives in the PlayerMesh.tscn scene. It holds the skeletal rig for the mesh's animation, the 3D model of the body and head sepearately, and the animation tree and player to control the animation workflow of the model. The lot is wrapped up in a spatial node with some logic to transition to which animation based on which state the player is in.

CameraRig

The scene that deals with the CameraRig movement. It follows the Player in the game, but in code it moves and rotates separately from it. It has a SpringArm node to help with preventing collision with level geometry - moving the viewpoint forwards to prevent moving the camera inside geometry. It also has a system that holds the raycast for aiming-mode, and the 3D sprite that is a projected reticule. The logic is held in a finite state machine.

Configuration

To change the player and the camera's behavior, you need to change properties on the corresponding states in their state machine.

Most of the configuration available for player movement are located on the Move state in the Player scene - the player speed and the rotational speed.

The CameraRig has more options. On the main CameraRig state in the CameraRig scene are items like the default field of view, whether Y is inverted, and sensitivity.

In addition, the Aim state allows some finer-tuned changes, like whether the aiming camera is first or third person, and by how much it should be offset over-the-shoulder of the character.

Customization

While the scenes can be modified extensively with new nodes and raw code, the state machine model allow for some simple, new functionality with relative ease.

As an example, there is the Extensions folder which contains additional player states for using the aiming view to fire a hookshot that pulls you towards the reticle. Once those states have been added to the Player's Move state, you only need to replace the return statement in Move's enter with code like owner.camera.connect("aim_fired", self, "on_Camera_aim_fired") and Move's exit with code like owner.camera.disconnect("aim_fired", self, "on_Camera_aim_fired")

Animating the character

The source Blender file is available in the releases tab. The character comes with all its animations. At first glance, it can look like it is lacking a rig.

Instead of a complex rig with many controls, we use ephemeral rigs as seen in Richard Lico's 2018 GDC talk Animating Quill. To do so, we work with the Blender add-on Rig on the Fly. This allows you to quickly generate a rig and controls adapted to the animation at hand. Once the animation is done, you bake it, and you're done!

Credits

  1. The Godot mannequin is a character made by Luciano Muñoz In blender 2.80.
  2. Godot code by Josh aka Cheeseness
  3. Additional code by Francois Belair aka Razoric480

Support our work

GDQuest is a social company focused on education and bringing people together around Free Software.

This Free Software is sponsored by our course Code a Professional 3D Character with Godot.

We share the techniques professionals use to make games and open source the code for most of our projects on our GitHub page.

You can:

Licenses

This project is dual-licensed:

  • The source code is available under the MIT license.
  • Art assets (images, audio files) are CC-By 4.0. You can attribute them to GDQuest and contributors (https://www.gdquest.com/).
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].