this post was submitted on 31 Jan 2025
7 points (100.0% liked)

Blender

2819 readers
6 users here now

A community for users of the awesome, open source, free, animation, modeling, procedural generating, sculpting, texturing, compositing, and rendering software; Blender.

Rules:

  1. Be nice
  2. Constructive Criticism only
  3. If a render is photo realistic, please provide a wireframe or clay render

founded 2 years ago
MODERATORS
 

Hi all, I wanted to show some snippets of a project I'm working on. Something I'm calling GuitarNodes, a Geometry Nodes setup for making a procedurally customizable guitar that's easy to animate in Blender.

Here's a brief showcase of the features I've put into it:

Modular Parts

With Menu Switch nodes, it's easy to have swappable parts for the guitar. I've only (crudely) modeled one set at the time, but it's easy to see how a user could keep individual parts in separate collections to switch through. I also plan to make a second (crude) set to alternate between

Menu switch nodes make it easy to swap parts

Body
  • Simply choose what body mesh you want
  • Can be translated and rotated with gizmos
Headstock
  • Choose desired headstock
  • Origin for object is at the nut so that it attaches directly to fretboard
Tuning Pegs
  • Note that there is a difference between L and R pegs
  • Follows an adjustable guide mesh to stick to headstock
    • Guide mesh can have individual rows of points(pegs) spaced apart more/less in X direction with gizmos
      • Can switch between a guide mesh and curve, where the curve is for in-line pegs
        • I don't have the line nodes done yet but it'll behave similarly
      • String ends can be adjusted in normal Z direction to match custom peg height

Headstock with adjustable guide mesh and tuning peg L and R collections

Output Jack
  • Can be rotated, follows a guide empty and faces the normal of the guitar body
  • Could also be modular if that's a detail you want to have

Output jack follows guide empty while sticking to body

Tone Knobs
  • Follows a guide curve that resamples to fit number of knobs
    • You can edit this curve shape in order to arrange the knobs to your liking
  • Will also be modular, such that you can change all of the knobs

Tone knobs follow editable guide curve with adjustable knob count

Bridge
  • Also modular
  • Bridge can be moved in Y direction across the body with gizmo
  • String ends can be adjusted in Z direction to match custom bridge height with gizmo

Bridge adjusted with gizmo and strings follow automatically

Saddle
  • Automatically connects strings to bridge
  • Also modular
  • Can be rotated with gizmo

Saddle can be rotated and automatically fits guitar scale length

Neck and Fretboard
  • Uses profile curves at nut, 12th fret, and end of fretboard
  • Adjustable fret count
    • Frets are spaced formulaically
  • Minimal UI
    • Shows measurement of string scale and the fretboard
Strings
  • Adjustable count
  • Adjustable gauges
  • Tuning-based frequency oscillation in X direction (menu switch)
  • Flip string order for left/right handed
  • Adjustable oscillation intensity for varied strumming
  • Adjustable fretted note values per string
    • As the fretted note gets higher, the center of string oscillation moves accordingly
    • As the fretted note gets higher, the oscillation frequency increases accordingly

Fretboard with oscillating strings that use integers to adjust fretted notes

Next plans (v0.8ish - 1.0):

  • Adding Z-dimension to oscillation for more realism
  • Add per-fret string translation that slightly increases string frequency for bending
  • Custom guitar body, drawn with grease pencil (shoutout to Joey C for the inspiration!)

Use grease pencil to create a custom guitar body

  • I need help getting the points which the Tone Knobs instance at: they currently do not rotate to point the Z in the normal direction of the body. Instead, they all seem to match the first point's Z direction only. I want each point to recognize the normal of the nearest faces it's stuck to
  • Adding a moveable pickguard whose Z-axis points in the body's normal direction
    • Probably going to use a guide empty
    • Might also implement custom designs with grease pencil
    • Adjustable Z-direction with gizmo
  • Player UI
    • Shows chord chart for finger placements based on the current lowest fretted note
      • Outlier high fretted notes will be shown next to the chart

Further out plans

  • Simulation nodes for strings, so that you can have oscillation decay over time
  • Simulation nodes that interact with a plectrum object, so they can be literally strummed (probably gonna need a bit of help, too!)
  • Better procedural materials
    • Is it possible to use a For Each Element zone to change string material based on its position/diameter (i.e. thicker strings are wound)
    • How much of this requires knowledge of handling UVs through geo nodes?
  • Simulation nodes for painting custom materials on guitar (or just a good setup for other users to vertex paint it)
  • Possible driver UI that changes a lot of these values, so that you don't have to go into the nodes to change things
  • Want to implement a tablature-style tracker
    • Automatically keys the string fret values to match the song's rhythm, accounting for framerate
  • Implement a whammy bar that affects strings
  • Any other feedback that I like enough to implement myself
no comments (yet)
sorted by: hot top controversial new old
there doesn't seem to be anything here