promotional bannermobile promotional banner

five-finger

RealBody & FiveFinger Mod — Architectural & Technical Overview

RealBody & FiveFinger Mod — Architectural & Technical Overview

1. Executive Summary

The RealBody & FiveFinger Mod is a client-side visual enhancement mod built for Minecraft 1.20.1 (Forge 47.x).

Its primary purpose is to transform Minecraft’s rigid blocky player model into a realistic, anatomically contoured human silhouette without changing or requiring modifications to standard player skins.

Unlike typical 3D armor or overhaul mods that break custom skins or force pre-baked 3D textures, this mod dynamically reads the player’s existing 64×64 (or 128×128) skin texture and samples exact UV coordinates. It projects this skin onto anatomically proportional geometric structures—including five articulated fingers per hand, natural joint bumps (elbows and knees), neck contours, and softened head bevels.


2. Core Architectural Pillars

A. Non-Destructive Layer-Based Geometry (RenderLayer Injection)

  • Zero Core Class Replacement: Rather than replacing vanilla Minecraft's PlayerRenderer or PlayerModel (which can cause severe incompatibilities with animation and combat mods such as Epic Fight, Better Combat, or Jujutsu Craft), this mod hooks into the rendering pipeline via Forge's EntityRenderersEvent.AddLayers.
  • Attached Layers:
    1. <button class="select-none inline-flex items-center gap-0.5 rounded-md align-middle text-sm font-medium text-foreground p-0.5 cursor-pointer hover:bg-secondary data-[popup-open]:bg-secondary transition-[background-color,opacity]" title="c:\Users\oguog\.gemini\antigravity\scratch\fivefinger-mod\src\main\java\com\fivefinger\client\renderer\RealBodyLayer.java" draggable="true" data-uri="file:///c%3A/Users/oguog/.gemini/antigravity/scratch/fivefinger-mod/src/main/java/com/fivefinger/client/renderer/RealBodyLayer.java">RealBodyLayer</button>: Renders supplementary anatomical contours, natural joint bumps, and transitional meshes.
    2. <button class="select-none inline-flex items-center gap-0.5 rounded-md align-middle text-sm font-medium text-foreground p-0.5 cursor-pointer hover:bg-secondary data-[popup-open]:bg-secondary transition-[background-color,opacity]" title="c:\Users\oguog\.gemini\antigravity\scratch\fivefinger-mod\src\main\java\com\fivefinger\client\renderer\FingerRenderLayer.java" draggable="true" data-uri="file:///c%3A/Users/oguog/.gemini/antigravity/scratch/fivefinger-mod/src/main/java/com/fivefinger/client/renderer/FingerRenderLayer.java">FingerRenderLayer</button>: Handles third-person 5-finger articulated meshes.
    3. <button class="select-none inline-flex items-center gap-0.5 rounded-md align-middle text-sm font-medium text-foreground p-0.5 cursor-pointer hover:bg-secondary data-[popup-open]:bg-secondary transition-[background-color,opacity]" title="c:\Users\oguog\.gemini\antigravity\scratch\fivefinger-mod\src\main\java\com\fivefinger\client\renderer\HandRenderer.java" draggable="true" data-uri="file:///c%3A/Users/oguog/.gemini/antigravity/scratch/fivefinger-mod/src/main/java/com/fivefinger/client/renderer/HandRenderer.java">HandRenderer</button>: Intercepts the first-person hand rendering (RenderHandEvent and RenderArmEvent).

3. Detailed Component Breakdown

1. Articulated Five-Finger Hand System

  • Anatomical Proportions:
    • Each hand features 5 distinct fingers: Thumb, Index, Middle, Ring, and Pinky.
    • Fingers are built using multi-segment kinematic structures (base joint and distal phalanx) to enable realistic curling, pointing, and gripping.
    • The middle finger is slightly longer, while the pinky and thumb are proportioned to mimic natural human hands.
    • Scaled down to match a slim, human wrist diameter (~2.6px palm width) instead of matching the full 4×4px block of the vanilla arm.
  • Dynamic UV Skin Sampling:
    • Automatically samples the lowest edge of the arm texture (texOffs(44, 30) on the skin template). This guarantees skin-color fidelity and eliminates unnatural black borders or discoloration.
  • Item Synchronization & Gripping:
    • Empty Hand: Rotated sideways with palms naturally facing inward toward the body.
    • Item/Weapon Held: Synchronizes with vanilla's ItemInHandLayer transformation matrix (XP.rotationDegrees(-90), YP.rotationDegrees(180)). Fingers transition automatically to HOLDING_POSE, wrapping naturally around the item/weapon grip instead of disappearing or clipping through.
  • First-Person & Third-Person Parity:
    • First-person hands are scaled (1.45×) and offset to fit comfortably within the camera viewport during mining, swinging, or idle animations.

2. Anatomical Joint System (Elbows & Knees)

  • Elbow Joints (olecranon):
    • Located at the center of each arm (Y=2.5∼5.5Y=2.5∼5.5).
    • Features a rearward-facing 4×3×1px4×3×1px protrusion with 45∘45∘ beveled transitional slopes on both top and bottom edges.
    • Recreates the natural bulge of the human olecranon (the elbow bone) when viewed from behind or in profile.
  • Knee Joints (patella / Kneecap):
    • Located along the front of each leg (Y=4.5∼7.5Y=4.5∼7.5).
    • Adds a subtle anterior protrusion (4×3×1px4×3×1px) with beveled upper and lower facets.
    • Eliminates the rigid, flat face of the vanilla Minecraft leg to provide natural knee contours during running and bending.

3. Head & Neck Softening Geometry

  • Head Corner Bevels:
    • Adds subtle 1×8×1px1×8×1px facet beveled strips to the vertical corner edges of the head cube.
    • Reduces the stark, 90-degree boxy appearance, approximating an octagonal/rounded cranial shape.
  • Cylindrical Neck Column:
    • Connects the torso (Y=0Y=0) upward to the base of the skull (Y=−3Y=−3).
    • Modeled as an octagonal prism using an inner core and 4 angled corner strips, eliminating the illusion of a head floating disconnectedly above the chest.

4. Animation & Pose Synchronization Pipeline

  • Networking Architecture:
    • <button class="select-none inline-flex items-center gap-0.5 rounded-md align-middle text-sm font-medium text-foreground p-0.5 cursor-pointer hover:bg-secondary data-[popup-open]:bg-secondary transition-[background-color,opacity]" title="c:\Users\oguog\.gemini\antigravity\scratch\fivefinger-mod\src\main\java\com\fivefinger\network\NetworkHandler.java" draggable="true" data-uri="file:///c%3A/Users/oguog/.gemini/antigravity/scratch/fivefinger-mod/src/main/java/com/fivefinger/network/NetworkHandler.java">NetworkHandler</button> registers bidirectional custom Forge network packets:
      • HandPosePacket (Client →→ Server)
      • HandPoseSyncPacket (Server →→ All Tracking Clients)
    • Hand poses and finger states chosen by the player are transmitted over the network and synced in multiplayer, allowing other players to view custom poses and hand gestures.
  • Keybinding & Smooth Interpolation:
    • Configurable keybindings allow switching between pre-programmed hand gestures (Open, Fist, Point, Peace, Domain Expansion / Mugen, Sukuna, etc.).
    • <button class="select-none inline-flex items-center gap-0.5 rounded-md align-middle text-sm font-medium text-foreground p-0.5 cursor-pointer hover:bg-secondary data-[popup-open]:bg-secondary transition-[background-color,opacity]" title="c:\Users\oguog\.gemini\antigravity\scratch\fivefinger-mod\src\main\java\com\fivefinger\client\animation\HandAnimator.java" draggable="true" data-uri="file:///c%3A/Users/oguog/.gemini/antigravity/scratch/fivefinger-mod/src/main/java/com/fivefinger/client/animation/HandAnimator.java">HandAnimator</button> runs smooth mathematical interpolation (smoothStep + lerp) across joint matrices to ensure bone rotation transitions are fluid rather than snapping abruptly.

5. Technical Specifications Summary

Feature Technical Implementation
Target Minecraft / Loader Minecraft 1.20.1 / Forge 47.x
Java Toolchain Java 17 runtime / Java 21 compilation
Skin Compatibility 100% compatible with standard Steve (Classic 4px) and Alex (Slim 3px) skins
Performance Impact Negligible; baked ModelPart hierarchies rendered via standard OpenGL vertex batches
Third-Person Support Fully integrated via RenderLayer attached to PlayerRenderer
First-Person Support Hand and finger transforms intercepted via Forge client events
Multiplayer Sync Yes, synchronized across server via custom Forge network channels

five-finger Team

profile avatar
  • 1
    Projects
  • 88
    Downloads