Skip to content

Add more hairstyles to character randomizer #2293

@wjt

Description

@wjt

Threadbare has a character randomizer to create distinct NPCs from a small number of component parts. See it in action in game_elements/characters/components/character_randomizer_test.tscn.

Currently the character randomizer has five hairstyles:

Image Image Image Image Image

We would like more! Some ideas:

  • Add more long-haired hairstyles: perhaps a bun, or ponytail
  • Add a receded hairline, where the front and top of the head have no hair while the rest has a short cut
  • Wikipedia's List of hairstyles might be a good source of inspiration!

The way these are implemented is that there is a sprite sheet for each hairstyle in res://scenes/game_elements/characters/npcs/components/, and then a corresponding SpriteFrames in res://scenes/game_elements/characters/components/sprite_frames/, which are added to the RandomTextureSpriteBehavior in res://scenes/game_elements/characters/npcs/townie.tscn. The sprite sheets use three shades of orange, plus black. Then, in the game, a chroma-key shader replaces those three shades of orange with one of a number of alternative palettes. The sprite sheets are exported from a single Aseprite file at scenes/game_elements/characters/npcs/components/townie.aseprite.

So to add a new hairstyle:

  1. Open scenes/game_elements/characters/npcs/components/townie.aseprite in Aseprite, Pixelorama or compatible software
  2. Add a new hair layer
  3. Draw a new hairstyle using the same four colours
  4. Export the spritesheet
  5. Add a SpriteFrames
  6. Update townie.tscn to include it in the randomized choices

@manuq created the existing assets & the game system that uses them, so he is the best person to ask for pointers!

XP Summary (total 450)

Subdomain Skill XP
Art: Animation & Effects Problem Solving 150
Art: Animation & Effects Creativity & Design Thinking 150
Art: Animation & Effects Technical Literacy 150

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions