Stacked Sprites in Godot

Поделиться
HTML-код
  • Опубликовано: 4 фев 2025

Комментарии • 51

  • @afksystem6245
    @afksystem6245 3 года назад +35

    Get this man a noble price

  • @DevSolution
    @DevSolution 2 года назад +43

    In Godot 4.0 there are a few differences from this tutorial
    use @tool instead of tool
    export(bool) ... is different too
    use:
    @export var show_sprites: bool = false
    get:
    return show_sprites
    set(_show_sprites):
    show_sprites = _show_sprites
    ... instead

    • @badunius_code
      @badunius_code Год назад

      You can omit the getter

    • @MaplewoodStreet
      @MaplewoodStreet Год назад

      God bless you for making a Godot 4 version.

    • @tcbey2703
      @tcbey2703 Год назад

      where exactly do you put the part from 'get:' to 'show_sprites = _show_sprites'? sorry i've been fumbling with it for a bit

    • @FlynnPlays-z8p
      @FlynnPlays-z8p Год назад

      @@tcbey2703 Add a colon to the line before the get method: "@export var show_sprites: bool = false :" . Then use ordinary indentation on the getters and setters

    • @tcbey2703
      @tcbey2703 Год назад

      @@FlynnPlays-z8p thank you!!

  • @dueddel
    @dueddel 3 года назад +7

    I am not even that much into 2D, but this one is awesome!

    One of those moments when you're glad you didn't miss the video because you subscribed earlier. I'd label this one with quality content. :)

  • @levisymons208
    @levisymons208 3 года назад +5

    Absolutely awesome, I'm definitely going to try this out

  • @redcubegamedev3860
    @redcubegamedev3860 3 года назад +22

    That's so smart! Where did you find such a cool idea. Hope you countine and make this a series or something. maybe try to do this in shaders and make it much more efficient.

  • @cooldotty
    @cooldotty 11 месяцев назад +4

    Awesome tutorial :) small performance tip, if you use _draw code for the sprites instead of nodes you get massively improved performance. Or multi mesh nodes in 3D also work.

    • @heysimone
      @heysimone 10 месяцев назад +1

      huge shoutout on the multimesh nodes for 3D

  • @drewstillwell
    @drewstillwell 2 года назад +1

    This is really cool and your tutorial style is very clear and easy to follow for me! Thanks :)

  • @QuantumCode
    @QuantumCode 3 года назад +3

    Awesome and very well explained ! Congratulations !

  • @yasser7077
    @yasser7077 Год назад

    Thank you ytb algorithm for showing me this smart lad

  • @QatariGameDev
    @QatariGameDev 3 года назад +3

    Great tip! Thank you.

  • @akim4519
    @akim4519 2 месяца назад

    I took a entire day to make a 2d car moves with acceleration, and now i saw someone making that i did in 12 minutes, but better 🤡 (+1 subscriber)

  • @jackwinner4810
    @jackwinner4810 3 года назад +2

    Great Titorial thank you very much

  • @TandG1000
    @TandG1000 2 года назад

    this is so interesting. I'm brand new to godot but I really hope to someday, understand and implement this into the isometric game i'm working on.

  • @jugibur2117
    @jugibur2117 2 года назад

    Really great, didn't know that this is possible (as newbie)

  • @siwoku
    @siwoku 10 месяцев назад

    this is pure gold

  • @Silvanus92
    @Silvanus92 3 года назад +1

    Thank you so much for this tutorial!
    Currently I'm looking for a "lazy" way to make 3D pixel look and this is way better than set up a model imn blender and try to UV these models (I hate this workflow tbh).
    I hope I can use this technique in the future! ♥

  • @godotology
    @godotology 2 года назад

    Very very impressive thanks bro (:

  • @lambilla14
    @lambilla14 2 года назад

    Thuis is so cool! Im gonna prove it in a game!

  • @thisormaybethis
    @thisormaybethis Год назад

    That looks great! Would having too many objects with the same set up affect the performance too much?

  • @nachoabadie4707
    @nachoabadie4707 2 года назад

    awesome dude!

  • @mattahlschwede4810
    @mattahlschwede4810 3 года назад

    I like it, very clever.

  • @rorysweeney7017
    @rorysweeney7017 Год назад

    super cool. any idea oh how one could make an outline shader for this? as my current shaders would do it on each layer - which is not whats wanted.

  • @the__man1
    @the__man1 2 года назад

    Love this

  • @ptkstefano
    @ptkstefano 2 года назад

    Awesome! It looks great and thanks for sending me the link. I've been making a little isometric car game and I'm wondering whether it's possible to adapt this system for it to work for a different camera angle, since with the way they are stacked in the y position in this one it makes it look almost vertical. I tried just by changing the y value but then you can see the individual sprite slices... It's tricky, would you have any idea?

  • @antonsimkin
    @antonsimkin 6 месяцев назад

    incredible

  • @leviathan-supersystem
    @leviathan-supersystem 3 года назад +2

    Lovely (:

  • @snesmocha
    @snesmocha 3 года назад

    pog new tutorial

  • @fire165
    @fire165 2 года назад

    Would it be possible to create a tutorial in which these sprites could be used to create a small level? (E.g. how to create a tileset with sprite stacks)

  • @Strelokos666
    @Strelokos666 Год назад

    I still don't really understand the concept. How does this thing work? It's clearly a 2d sprite than how are you achieving the 3d look through just stacking the sprites?

  • @Rssks
    @Rssks 3 года назад +2

    I'm subscribing to your channel and I'd like to see you improve on this technique by sending sprites in a batch or more over: draw stacks trough shader ;)

  • @afksystem6245
    @afksystem6245 3 года назад

    You r genius

  • @m2ckatberyy44
    @m2ckatberyy44 2 года назад +1

    Thank you for this video.Great job.What about changing its sprites relative to the camera position instead of rotating it? I think it is necessary to change the sprite positions according to the camera position.For example;
    Car.gd =>
    if input != Vector2.ZERO:
    sprite.set_position(input.normalized())
    StackedSprite.gd =>
    func set_position(_position):
    var children = get_children();
    for i in children.size():
    children[i].position = children[i].position - _position * i
    Could it be something like?

  • @madness2048
    @madness2048 3 года назад

    Brilliant

  • @Jess-Gonzales
    @Jess-Gonzales 4 месяца назад

    Any sprite stacker that exports to voxel??

  • @dreamtimestories-67
    @dreamtimestories-67 3 года назад

    very amazing ı liked

  • @MarkJrLuat
    @MarkJrLuat Год назад +1

    How do you add animations to it?

    • @andrewsneacker1256
      @andrewsneacker1256 Год назад

      Stack not just sprites, but AnimationSprite2d? Or use some kind of animation player for layers (But its means you need to make evey layer into separate scene and instance it.)

  • @beingbrin
    @beingbrin 3 года назад

    Wooo

  • @jcobreti
    @jcobreti 3 года назад

    great

  • @timetorelaxfocus9642
    @timetorelaxfocus9642 3 года назад

    Nice

  • @antonsimkin
    @antonsimkin 6 месяцев назад

    how the hell did he make the original sprite transparent but children visible?

    • @jontopielski6227
      @jontopielski6227  6 месяцев назад +1

      You can set the original child's self modulate alpha value to 0 making it "invisible" but leaving the children visible

  • @greyxopera
    @greyxopera 2 года назад

    You know that You can just do it in 3d? Whats the point of trying to force 2d mode look like 3d?

  • @bunyaminanil13
    @bunyaminanil13 3 года назад +2

    if the stacked sprites don't show up it's maybe because add_child() didn't work.
    If so, try using this : call_deferred("add_child", _nextsprite).
    It's apparently a known issue; github.com/godotengine/godot/issues/233
    btw neat content.