Pixel Art Animation. Reinvented - Astortion Devlog #26

Поделиться
HTML-код
  • Опубликовано: 25 апр 2022
  • In this indie game devlog™, we're taking a look at a simple feature that allows us to easily change the appearance of our characters - without the need to recreate every animation.
    === Wishlist Astortion on Steam ===
    store.steampowered.com/app/19...
    === Support the channel ===
    Patreon:
    / aarthificial
    RUclips Memberships:
    ruclips.net/user/aarthificial...
    === Tools I'm using ===
    JetBrains Rider
    Unity
    Adobe Audition, Photoshop
    Motion Canvas
    Davinci Resolve
    === Music from Epidemic Sound ===
    www.epidemicsound.com/referra...
    Trevor Kowalski - The Garden's Light:
    • The Garden's Light | T...
    Trevor Kowalski - Late Nights in Harmony:
    • Late Nights in Harmony...
    #MadeWithMotionCanvas

Комментарии • 1,9 тыс.

  • @aarthificial
    @aarthificial  2 года назад +1240

    *A more in-depth explanation with source code:*
    ruclips.net/video/nYch_TIkq6w/видео.html
    *FAQ*
    1) Isn't this just color palettes?
    Yes, color palettes, color indexing, LUTs, etc. As I've mentioned in the video - the idea of looking up colors is nothing new. This video focuses on using this idea to replicate the process of UV mapping used in 3D modeling.
    2) Will it work for more complex sprites?
    IMO, this process is practical only for smaller canvases. In my case (24x24px), it takes me roughly 30 minutes to overlay the colors for one animation. You can, however, experiment with using it only for the parts of your character that need this level of control (for instance, the face) and reuse colors for the rest of the body - like in more classical palettes.
    3) What about lighting/depth?
    I'm planning another video on this topic but notice that we have the entire blue channel to encode all sorts of lighting information.
    4) Can I use this to change the shape of my character?
    Yes, you can use the alpha value from the lookup texture to hide specific parts for your character. But this may cause problems in places where things overlap. I'd stick with using multiple sprites stacked on top of each other that can be enabled/disabled.

    • @user-mx7mc7sv2q
      @user-mx7mc7sv2q 2 года назад +11

      30 minutes of human workhours or 30 minutes of some intensive CPU/GPU calculations? can't believe it the latter.

    • @aarthificial
      @aarthificial  2 года назад +44

      @@user-mx7mc7sv2q The process of overlaying colors described in the video is manual. Sorry for the misunderstanding.

    • @user-mx7mc7sv2q
      @user-mx7mc7sv2q 2 года назад +8

      @@aarthificial oh, ok, so that pretty much depends on how fast one can switch between colors when mapping pixels, and that's initial investment in mapping, while any further "skin" updates are almost free, right?

    • @aarthificial
      @aarthificial  2 года назад +15

      @@user-mx7mc7sv2q Exactly

    • @saturatedodin476
      @saturatedodin476 2 года назад +7

      Why is she such a baddie?

  • @darkhawk155
    @darkhawk155 2 года назад +9530

    As a programmer myself: The "technically complex sequence of workarounds to achieve a tiny outcome nobody is likely to ever notice" are some of the things I'm often most proud of.

    • @frqstbite1001
      @frqstbite1001 2 года назад +347

      it always ends up being why we cant really show off our work to other people because "all i see is a character"
      yeah but what if i want them to wear different clothes?
      by the time you're done explaining theyre always like "wow im going to pretend to have understood that haha" :(

    • @smorekettle
      @smorekettle 2 года назад +63

      I feel you. Little things rarely get noticed and having it work is actually like a blessing.

    • @Aquillyne
      @Aquillyne 2 года назад +133

      It takes an amazing amount of work to create something utterly effortless and intuitive. And because it is so effortless and intuitive, it seems like nothing is there at all. And that is the goal!

    • @frqstbite1001
      @frqstbite1001 2 года назад +20

      @@Aquillyne that is a fantastic way to put it

    • @electron8262
      @electron8262 2 года назад +18

      I think this is where I see the beauty in programming. These sorts of things make your program beautiful.

  • @luke.rayman
    @luke.rayman Год назад +1838

    I'm just amazed by the animated girl. Just a few pixels but you clearly see everything. And she walks so naturally in just a few frames. So nice!

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

      Pixelussy

    • @Mercymurv
      @Mercymurv 9 месяцев назад +4

      100%

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

      Indeed.
      All parts are very well done.

    • @kimjanek646
      @kimjanek646 4 месяца назад +1

      I really love that kinds of pixel art.
      It’s so simple but still contains an incredible amount of detail while still leaving room for interpretation.
      Simply amazing.
      I feel like you can easily convert 90% of 3D game into pixel art like that and the resulting game would be just as enjoyable or even better.

  • @TheBlackBrickStudios
    @TheBlackBrickStudios 2 года назад +3595

    This is an absolutely insane game changer for streamlining asset generation. I can't begin to express how valuable of a tool this will be in my own work. You, sir, are a legend.

    • @anothergol
      @anothergol 2 года назад +41

      But is it? To me it's exactly the same as a palette. Only with a 16bit index instead of the usual 8 bit. In fact, it could as well be 8bit, as there's probably no more than 256 "parts" in the skin. The only thing that's "new" is the visualization of the palette as a model, to make it easier to update. But at the end of the day, it's a palette. It doesn't allow (unlike a 3D model) adding elements to the model, only recolor.

    • @commenteroftruth9790
      @commenteroftruth9790 2 года назад +39

      @@anothergol I think its mostly people who arent good at this kind of stuff who are impressed lol. i mean, its a good tool, but it isnt new, its interesting, but people are responding like it's a game changer.

    • @erkling5865
      @erkling5865 2 года назад +19

      @@commenteroftruth9790 it has a potential, if a skilled programmer puts his mind to it.
      the way i see it, he just made a potential pixelart app that utilizes 3d rendering (at least mapping out the 3d shape) straight up in pixelart 2d. not having to render a 3d animation and pixelate it. if he can also find a way to use blender's weight painting, then, that's where his joints are, and also with weight painting, he can be able to change the shape of the texture for shadows and highlights

    • @frqstbite1001
      @frqstbite1001 2 года назад +26

      @@anothergol changing the color of a palette cant add a wristband to my character unless i add a whole new *slightly different* color where i want it to be, which is ridiculous

    • @AxoiTanner
      @AxoiTanner 2 года назад +16

      @@frqstbite1001 it can - this map is literally pallete - where each pixel of map is separate index that be colored and associated with where is should be in final animation. However visualizing this in this way, like texture, not just list of colours is genius.

  • @zio
    @zio 2 года назад +1172

    This is stunning... I am just amazed how good can a simple devlog be. Great work!

    • @PolonFemboy
      @PolonFemboy Год назад +3

      nie spodziewałem się cie tutaj

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

      jooł siema zio

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

      its crazy how they never wanna support you until its to late.. all it take is right person to hear me give my music a chance i promise you wont be disappointed

    • @Chris_t0
      @Chris_t0 3 месяца назад

      its not good go away@@Missterymoon

  • @RugbugRedfern
    @RugbugRedfern 2 года назад +3382

    It still impresses me how you bring so many genius innovations into your game dev. You're an inspiration as always! Can't wait to see the dynamic mud textures and the like in action.

    • @bafi29
      @bafi29 2 года назад +47

      Is one of the classic tricks on the book, Is called palette swap.
      That's how they gived new outfits to sprites like Megaman or Mario on the NES.

    • @Temac000
      @Temac000 2 года назад +20

      @@bafi29 color pallet was a limitation of the way NES created sprites. There weren’t 16 billions colors for any pixel, you could only use set up to 4 different (with some limitations again) colors from a pallet of 32 colors.
      This, however, creates dynamic and unique color map for every (or only main character for now) sprite with correct uv’s

    • @bafi29
      @bafi29 2 года назад +27

      @@Temac000 The concept at the core is the same, a palette is just a very small LUT.
      Your argument sounds more like saying that because we have access to a sextillion colors the moder pixel art should be declared as a enterily different beast from the limited 8 bit palettes, event if in the end both are just putting pixels on a deliverated manner on screen.

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

      Mhm! :D

    • @satibel
      @satibel 2 года назад +11

      @@Temac000 this is basically a 16 bit pallette, but shaped as a uv map.
      Having a palette is great for file size of 2d images, most image compression formats still use it in some form or another (usually subdivided in parts with a set palette and deviation from it)

  • @Nimphious
    @Nimphious 2 года назад +2168

    This conceptual combination of LUT and unwrapped model texturing for 2D art is one of those things that is so simple and obvious in hindsight but coming up with it in the first place is a stroke of genius.
    The only piece of the puzzle that's left really is to come up with some kind of animation authoring tool or workflow improvement, but I can't think of anything significantly better than your map texture solution.
    Thanks for yet another great video Jacob. I'm definitely going to use this myself.

    • @aarthificial
      @aarthificial  2 года назад +89

      Thank you too!

    • @Ami-Wishes
      @Ami-Wishes 2 года назад +39

      Some sort of realtime editor that allows you to sample something from an example lookup, and paint onto that, would be the next step, I think. Something akin to a traditional palette system. You select the pixel you want to use, then paint it. Especially if you gave it the ability to highlight which pixels in an animation use a given pixel(s) from the final lookup, double props for if that would work while animated.

    • @grimfang4
      @grimfang4 2 года назад +14

      Exactly what I'm thinking. I wrote a pixel editor (Pixel Proof) based on experimental workflows, so maybe this should be included?

    • @decb.7959
      @decb.7959 2 года назад +3

      For authoring, you could imagine something where you uv map one frame, and then point to where each pixel ends up in subsequent frames. That way, once the first frame is uv mapped, you can do most of the remaining work with a final texture. You would still have to uv map any newly-visible pixels, though. You could even generate a motion vector pass with this, although I'm not sure what you would use it for.

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

      I think you put the 4 in a square grid position animation, render, temp uv map, color uv map.
      And make it so that you can sample from either to paint on either
      Maybe also add a mode with only the animation and uv map and allow swapping between them.
      Or even better allow an arbitrary number of textures to be swapped between.

  • @AbsolutelyPlasmadic
    @AbsolutelyPlasmadic 2 года назад +535

    You have single handedly inspired a huge wave of pixel art from my end. I appreciate all the work you have poured into this. The dedication, the passion, the fire inside to create unabated. Its all so obvious in your creation, the care that goes into it. It has *ALL* inspired me. Down to the last drop of determination to assure every ounce of precision in your image is astoundingly crisp and appealing. I absolutely adore it.
    Here's to the hours I have and will spend, hoping to accomplish that same task you have!
    Here's to the thousands of souls you have touched, to them I wish the same fire will burn inside you all!
    And finally: Here's to you Aarthificial, for being you. Because nobody else could do that. :)

    • @zoekmath
      @zoekmath Год назад +4

      if only this idea worked on actual pixel art sprites and not a stick figure, plus if you were to have rotation on the character the lighting would rotate with it so its pretty much useless

    • @yytyyy5329
      @yytyyy5329 5 месяцев назад

      Chill, it's not that serious

  • @frqstbite1001
    @frqstbite1001 2 года назад +124

    years and years of developer + pixel artist experience under my belt and im still finding seriously innovative and high quality content like this that changes my whole perspective
    stay on the grind !! love seeing it all come together

  • @dealloc
    @dealloc 2 года назад +1066

    Reminds me a bit of color cycling mainly used in early computer games, where a palette is shifted to produce the impression of animation for a single image to use less memory and processor power than having individual animation frames.
    This feels like a modern take on it, using a similar approach for a different purpose. Dig it!

    • @nialltracey2599
      @nialltracey2599 2 года назад +24

      Yes, that was my first thought too -- why wasn't the device just another "colour" that was palette swapped same/different as skin?
      This technique is clearly more powerful, allowing much more radical reskinning, but I wonder if there's a middle ground that makes the workflow as powerful, but just a little more intuitive...?

    • @dealloc
      @dealloc 2 года назад +6

      ​@@nialltracey2599 I don't think the tradeoffs are worth it. Indexed colors are only really necessary where memory and file storage is scarce, i.e. in embedded systems.
      It would be much more limiting, especially for things like generative textures, as shown in the video and the workflow would also likely be much more cumbersome to having to deal with palettes, rather than full RGBA.
      But I do like the idea of using indexed colors for re-skinning when you have more static textures.

    • @goge957
      @goge957 2 года назад +22

      @@dealloc the uv is the index, its fundamentally the same, there is no limitation in colour spectrum only in address. this is old tech come new again for an audience who did not know of the origins and so would never even know to look for palette swapping. this is exactly the usecase palette swapping solved in the "old days" (mario and luigi), palette swap animation was a novel and clever solution to animation on limited hardware.

    • @endlesswanderer1753
      @endlesswanderer1753 2 года назад +4

      Now I'm imagining JRPGs where Army Ant and Fire Ant aren't just palette swapped entities, but almost uniquely different in their appearance. A dev could use transparent pixels to "change" the shape of the original sprite and make it seem wholly different.

    • @nialltracey2599
      @nialltracey2599 2 года назад +12

      @@dealloc indexed colours mean only having to change one value instead of many. The approach taken here is powerful and flexible, but that means making every choice every time.
      If you want to change trouser colour, you have to repaint all trouser pixels. If someone only wants to change colour in blocks, there are quicker ways.
      And we’re still only reskinning here - this technique doesn’t get us closer to more radical outfit swaps that change the ‘s shape.
      I like it, it’s a very neat solution to this programmer’s problems, but it’s quite a specific workflow aimed at his own style. There will be other workflows that might be more generalisable.

  • @aarthificial
    @aarthificial  2 года назад +1558

    Sorry for the long break, everyone
    I had to work on my thesis and stuff. But I've finally graduated, so now we're back to regular devlogging!

  • @nithishwarai5998
    @nithishwarai5998 Год назад +92

    Animation was always traditional for me, even though I knew oops and use them to code regularly ,using these concepts in animation you have opened me to a new world >_

  • @joukeseinstra1127
    @joukeseinstra1127 Год назад +10

    As a 2D artist seeing a rotation of a portrait in pixel-art is beyond impressive. To reduce a concept to such simple terms without sacrificing communication. It appears becaus of that, pixel art itself can be a tool to understand simplification on an educational level. Having put this into perspective along traditional interpretations of realism, pixel art is without question an important art movement of our time I find. To say so much with so little with such concise clarity is truly awe-inspiring.

  • @rhedgeco
    @rhedgeco 2 года назад +216

    Just wow. I've been following you for a while, and don't comment often on anything. But I am constantly astounded at these little breakthroughs by taking some common idea and using it in a novel way. Really well done. Keep it up.

  • @jaysonbunnell8097
    @jaysonbunnell8097 2 года назад +197

    I'm a Computer Engineering major, and although I'm super excited to play your game, the most exciting part for me of your devlogs are the tools you used ot create it. I love designing (and implementing!!) utilities, and seeing such fun innovation is really inspiring for me. Keep doing what you're doing! Glad you've finished up your thesis, and can get back to the regular logs. Peace and love from over here!

  • @josephhelms2362
    @josephhelms2362 2 года назад +34

    As someone who has struggled to make a good walking animation in a character that is about 20x50 pixels, I am very impressed by that walking animation with a very small number of pixels.

  • @Kennedy00Louis
    @Kennedy00Louis Год назад +433

    Devlog 1: Ripping off every valve game in name of boredom
    "I want to make a small game I can finish"
    Present day: reinvents pixel art animation, solves olds problems in retro and modern pixel art, has dynamic dialogue systems with implicit choices.
    Dude, you went from 0 to a 100, from "I want to make a game" to being the one who inspires people to make theirs and teach them, I can't think of any better achievement. Of all the devlogs in RUclips, yours are my favorite and the most inspiring. Mad respect to you.

    • @Nikowo1610
      @Nikowo1610 Год назад +6

      NIKO

    • @Bokita_Enjoyer
      @Bokita_Enjoyer Год назад +6

      Niko

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

      These problems are old but so are the solutions. I recommend Coding Secrets' video on the Sonic 3 special stages. Very similar techniques were used there to solve essentially the same problem except with a slightly different (but related) motivation.

  • @casualdutchman
    @casualdutchman 2 года назад +69

    This is just a refreshing take on pixel art. It probably isn't something new and other games use it as well but this is the first time I see it. Very nicely done! I am jealous!

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

      @@SkeleTonHammer same but for me it’s UI/frontend interactions, everything else I have a hat for

  • @erikahlundhelguera
    @erikahlundhelguera 2 года назад +448

    Really nice implementation of LUT, never thought about doing something like this. The only thing that confuses me is the general workflow... It'd be great to see a time-lapse of you working on a simple walking animation using this Intermediate LUT (map) system. Do you first draw the full animation in "normal" colors and then change the colors to use the ones in the map? Do you work directly using those colors? Seems like a pretty cumbersome way of drawing 2d animations (although the result is great and I especially like the flexibility you can achieve with this)
    Anyways, would love to see a time-lapse or, even better, a long video of you making a simple walk cycle animation :)

    • @aarthificial
      @aarthificial  2 года назад +138

      Thanks!
      I'd like to try live streams at some point and this sounds like a cool idea for the first stream 🤔
      To answer the question - I animate with normal colors and then overlay the map on top of it.

    • @erikahlundhelguera
      @erikahlundhelguera 2 года назад +31

      @@aarthificial I'd definitely watch that! And I'm sure others are interested in this too :)

    • @alexanderosinubi5154
      @alexanderosinubi5154 2 года назад +8

      @@erikahlundhelguera me too!

    • @bilalinci4981
      @bilalinci4981 2 года назад +8

      @@erikahlundhelguera me too

    • @carlosandres8041
      @carlosandres8041 2 года назад +7

      @@erikahlundhelguera me too!

  • @tundra3252
    @tundra3252 Год назад +45

    This person somehow makes coding more interesting than nearly a good third of the stuff on youtube. I love this game so far, and want to learn more behind the scenes already! Keep up the great work!

  • @Csumbi
    @Csumbi Год назад +18

    this is amazing, im blown away by the stretching animation in the beginning, despite how low res the character is it manages to convey so much personality and intent, i understood instantly what she was doing, it really blows my mind.

  • @FeroxOccisor
    @FeroxOccisor 2 года назад +168

    This man is just casually making entire revolutions in game development and rendering. Excellent work as usual, dude.

  • @capsey_
    @capsey_ 2 года назад +286

    This man keeps surprising me with every video. He literally made a rig pixel art animation!!
    I'm wondering is it possible to make a Aseprite add-on to make mapping colors easier 🤔 like previewing the LUT while painting with index colors

    • @aarthificial
      @aarthificial  2 года назад +58

      I was wondering the same thing! I haven't checked yet but that would be super useful

    • @carlosandres8041
      @carlosandres8041 2 года назад +8

      at first glance this might look similar as doing a pixel art normal map, just that this time it would only use RG instead of RGB, seems like it would be pretty useful

    • @RavensKrag
      @RavensKrag 2 года назад +7

      @@aarthificial This seems similar to the technique "HD Index Painting in Photoshop" by Dan Fessler. In that video, he explains how you can use the eyedropper tool to pick from indexed colors, while displaying the final colors on the canvas, using gradient maps. Maybe you could adapt elements of that?

    • @ilonachan
      @ilonachan 2 года назад +5

      @@RavensKrag I honestly don't think these two things are related at all. HD Index paint is about freehand drawing in a discrete color space with dithering, while this is essentially UV mapping for pixelart

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

      ​@@ilonachan I understand your confusion. Maybe I should say this a different way: It might not be necessary to switch to Aesprite to automate the color mapping. It should be possible to implement this in Photoshop using gradient maps.
      You are correct that the two techniques are very different in their outcomes, but they could use similar technologies. The key idea of Fessler's technique is that you can draw in one color space and display in a different one. As you said, in his particular case he colors in black and white and displays colored dither patterns. At 3:24 aarthificial explains (and clarifies in another comment thread) that he draws in "normal" colors and manually converts to the LUT colors (what the video calls the map colors). Instead, you could use Fessler's gradient map technique to color using the LUT while automatically displaying the "normal" colors. The OP of this thread suggests writing a custom Aesprite add-on to automate this - but Fessler already figured it out, without writing any new code :D
      Hope that clears things up a bit.

  • @billedefoudre
    @billedefoudre 2 года назад +7

    Dear journal, it's only 8 AM, and yet my mind has been blown beyond expectation.
    How could something be so simple, elegant, and yet so powerful and full of possibilities ?
    I'm in awe.

  • @neonelll
    @neonelll 8 месяцев назад +4

    Dude, your sense of style, design, and animation flow is top-notch. I believe it's the character appeal that makes this tutorial so attractive. Really well done.

  • @Otakutaru
    @Otakutaru Год назад +68

    Even if Astortion doesn't get to release as a game, It will undoubtly be one of the best documented game design demos

  • @pafnutiytheartist
    @pafnutiytheartist Год назад +5

    Reinvented is a good word for it. This is a more flexible evolution of pallet swapping used in retro games. Good concept

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

      don't mean to be a naysayer but I don't see what it adds that pallet swapping doesn't already achieve

  • @TeeArCreep
    @TeeArCreep 9 месяцев назад +2

    That's truly a clever way to go about it. It truly reminds me of how color palettes in older games work, and how they were often swapped around for various, clever usages.

  • @GoodOldQuestion
    @GoodOldQuestion 2 года назад +18

    When you are watching any aarthificial video it's always feels clever and genius. Everything in videos feels like the best way to design/do something (and it even might be not the best, but it feels like it unless you know a better solution). Awesome! Also congrats on graduation

  • @nix3l_
    @nix3l_ 2 года назад +11

    I love how you always find a more efficient way of doing things - good luck! cant wait to play it!

  • @godofthecripples1237
    @godofthecripples1237 Год назад +4

    Man, this opens up the door to proper character customisation in games with pixel art styles, without limiting characters to very simplistic animation

  • @saturnine.
    @saturnine. 10 месяцев назад +2

    Wow. This is too easy. I’m amazed this isn’t more widespread. Thanks for making this video!

  • @lanik8163
    @lanik8163 2 года назад +14

    I was working on something similar.
    I'm soo glad to find a MUCH more developed version of it!
    Your work flow is absolutely brilliant!

  • @tomasroch4905
    @tomasroch4905 2 года назад +8

    I just wanted to point out that this whole video from animations to explanation is incredibly well done. And I also really like the fact that you made it less than 5 minutes. Most of the time I really don't have time to watch longer videos. It even motivated me to make pixel art animated characters on my own! I wish you good luck man and hope you will make more of this great content ^^

  • @ran_b
    @ran_b 4 месяца назад +2

    This is awesome. I will definitely try to incorporate something like that in the future. Animating like that is definitely worth it for main characters at the very least.

  • @milkywayish9315
    @milkywayish9315 Год назад +2

    This is cool! it inspires me a lot more then I thought, I love you guys so much for sharing this!

  • @xAqult
    @xAqult 2 года назад +6

    This is incredible!! I never knew this was even possible!
    I'm for sure going to use this, and it's going to save so much time!

  • @Chronomatrix
    @Chronomatrix 2 года назад +97

    This is genius! Please show us the whole process, a 101 tutorial for dummies, pleeease.

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

    Holy moly!! This is really brilliant! Thx for great information!

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

    Love these videos! Congratulations on graduating!

  • @tokubutnotreally
    @tokubutnotreally 2 года назад +4

    Every video you make is such a pleasure to watch. From the editing to the explanations, to the actual things you create, it's such a pleasure to see your journey with this game and your thought process. Thank you ^-^

  • @C_Corpze
    @C_Corpze 2 года назад +5

    Basically UV mapping but for sprites?
    Why did I never think of this earlier? This is absolutely genius. I’m mind blown by this.

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

    Your ingenuity is always really freaking impressive. There is an elegance to the way you problem solve and I find it to be really inspiring stuff.

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

    Just got casually got recommended this video and decided to binge all of the Astortion Devlogs (+ extras). Can't believe you started thanking 150 subs and now you're at +60k
    I've been blown away by the sheer scale of your progression, your brilliance in terms of coming up with so many game making breakthroughs AND condensing your findings into such compact, top quality edited videos. You truly deserve all of the support and love you can get
    I will continue to humbly follow this series, even tho so many programming things just escape my comprehension (really, to me it's all black magic), but I always find it extremely enjoyable to be so dumbfounded; even continuously
    Much love from another rando in the Internet
    💜

  • @macha-leaf
    @macha-leaf Год назад +4

    a lot of cohesive, finely crafted and well thought out ' things that no one will notice' are the pieces that make up a masterpiece

  • @iamlogdog
    @iamlogdog 2 года назад +138

    I'm not exaggerating when I say that this is one of my favorite channels. It is everything I ever wanted - very educational, has insane quality, relaxing music and narrator, beautiful visualizations, and amazing ingenuity. I get excited every time I get a notification. Thank you for creating these videos!
    I've been meaning to ask you for a while now, how do you make these insanely clean animations for your videos? Is it all inside of Unity or are you using DaVinci Resolve or some other tool for it?

    • @aarthificial
      @aarthificial  2 года назад +42

      Thanks so much!
      I used to use After Effects for all the motion graphics stuff but during my break I created my own tool for animations. It's similar to 3Blue1Brown's Manim but uses typescript instead of python. This devlog was made exclusively using it.
      I'll probably make a video about it soon because I find it really exciting.

    • @iamlogdog
      @iamlogdog 2 года назад +15

      @@aarthificial Given how much you love inventing your own systems, I'm not surprised :D I'm looking forward to seeing the video about it and potentially even using it someday (if you decide to release it to the public)!

  • @ROAD-HORROR
    @ROAD-HORROR Год назад

    Wow this is absolutely fantastic and so so smart. Thank you so much for creating this video and sharing this hard work! This really changes the pixel game, and in so many ways too! This is seriously a game changer and while I'm just a little fella still learning the ropes, I know I'll definitely be using and doing my best to push this idea even further in creative ways.

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

    This video was BRILLIANT. Thanks so much for sharing!

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

    I love going into a video thinking "Oh, I know how to solve this problem" and then finding a much more graceful solution than the one I would've gone with. Really nice process, thanks for sharing it.

  • @EuphoricPentagram
    @EuphoricPentagram Год назад +4

    This is amazing it's like a color palette swap but with more control and customizability
    Definitely something I wanna try using

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

    Absolutely stunning work my guy! The game looks great, and I can't wait for the full release. Good luck!

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

    I logged into RUclips just to drop a like in this video. This is so cool. It actually blew my mind. It gave me a burst of inspiration that cannot possibly be overstated. It somehow left me in awe. I'm definitely going to remember this idea forward, there is just no way I can forget it really. Thank you so much!

  • @JetBalrog
    @JetBalrog 2 года назад +39

    I've been wanting to get into making games for a long, long time, and this video straight-up does wonders for figuring out a process to get started, holy crap. Also game me some insight into what the heck *shaders* actually are and do, at least... loosely. I know they can be super complex, but like... I always wondered how "a thing that shades" could be used to do all kinds of nonsense, and now I have a starting point to understand it. It's no longer horribly intimidating.

  • @im2tired2sleep
    @im2tired2sleep 2 года назад +5

    i’ve always wanted to make a retro game, just for fun, this a brilliant way to make the process less tedious and extra, if you’ve got more videos like this im here to stay 👍🏼

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

    it's impressive how much attention you give to every detail, and how elegant your solution to the problems are, I don't know if you are doing it too much but it sure is mind-blowing and interesting to watch.

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

    I've been thinking around a similar solution but couldn't quite get the ideas in order. Thank you for laying it out so clearly - this is great!

  • @robertlupa8273
    @robertlupa8273 2 года назад +4

    This ia complete wizardry to me, but that doesn't stop me from loving it.
    Also 0:40 that's a cute girl :3

  • @ShenDoodles
    @ShenDoodles 2 года назад +35

    You’re a legend for not only coming up with this but also telling us how you did it. As an indie dev in training, this is gonna be so useful for when I need to make crowds.

  • @psy667
    @psy667 Месяц назад +1

    That was really interesting to watch, thanks so much for sharing!

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

    this is such an underrated channel, great explanation with just as great animation and overall visuals, I hope to see it grow more and more soon. subbed!

  • @jno7
    @jno7 2 года назад +4

    That is crazy!
    My Idea for this would've been to use different colorpaletts, like it was the standard back on retro consoles, or have Multiple Sprites on top of each other that together form a whole character and this right here is basically those ideas, but developed 100 steps further.

  • @Spubbily01
    @Spubbily01 2 года назад +4

    2:53 I read the text on the bottom left, why not? That would be easy to do and I would absolutely love it. I love when games let you directly change the sprite of your character like Minecraft skins, and it's such a rarity nowadays.

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

    This is absolutely one of the coolest things I have ever seen! Brilliant!

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

    thank you so much, this video was extremely informative and thats an understatement

  • @TylerBaraby
    @TylerBaraby 2 года назад +8

    This technique really knocks over a lot of the barriers that have been keeping me from branching out into pixel art and spritesheet animation in general. Very interesting! Cant wait to try it out.

  • @eboatwright_
    @eboatwright_ 2 года назад +5

    That's amazing! My (very primitive) solution to things like this, was just to have a base texture (like a player without any clothes) and then have each clothes piece overlayed ontop of the character at run-time. So that I could have different shirts, and things like that :)

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

      I've done this as well. The real issue comes in when you need to add a new animation, suddenly you now need to go back and add hundreds of new frames for each clothing variant. It's a nightmare.

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

      @@SkeleTonHammer Yeah. The solution Aarthificial came up with is amazing

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

    This is simply great! Every time you upload a new video, inspiration strikes!

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

    I noticed! Thank you for sharing your knowledge. This video was great!

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

    THE RETURN OF THE KING

  • @keyreset
    @keyreset 2 года назад +9

    2:30 yall can think of this like Minecraft skins if it’s easier.

    • @gamer-rs7lz
      @gamer-rs7lz 2 месяца назад

      I already was bro 😂

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

    This video is amazing, the voice, the background music, the simple explanation. Everything perfect

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

    That's such a simple yet amazing answer to that kind of problem! Amazing!

  • @zeldaandTwink
    @zeldaandTwink 2 года назад +232

    i would love a step by step tutorial. this is amazing but im having trouble wrapping my mind around how it works.
    In my head, the model is 3D, like a mincraft texture. You tell it how to fold, ect. and then place the character in the world, and the camera looks at the 3d model, and repositions the pixels to appear flat, 2D
    But its that last step im stumpped on

    • @pallingtontheshrike6374
      @pallingtontheshrike6374 2 года назад +4

      Some adaptation of raycast???

    • @mushnoodle
      @mushnoodle Год назад +26

      people who arent too familiar with 3d modelling indepth: a computer isnt autonomous enough to understand the concept of a "surface" without clear mathematical instructions/some continuity.
      what you see on a screen isnt an actual 3d object but something that visually mimics being 3d via screen coordinates as if it were on a reallife XYZ axis.
      The mental step you might be missing:
      the texture of a 3d model is anchored to something additional called "UV-map". its actually the uv map that is the vaguely unrolled skin of a model.
      if the point on the uv map gets the command "be in that location on the screen" or "dont show up" the pixels of the texture, no matter what it is, that has been placed on top of that uv map will follow that command as well. you can move the texture around how you want as long as the uv map remains unchanged.
      (the actual reason we need to do it this way is reducing deformation of a texture but thats not much of an issue with minecraft models and 2d so dont worry about that)
      uh sorry if you're more confused now xD

    • @mushnoodle
      @mushnoodle Год назад +10

      another aspect you need to think about while a computer makes animation display decisions based on mathematics and predictions, artists make them based on aesthetics (uh aka kinda chaotic). an "uv map" for a 2d character is based on what an artist needs so usually just a "partial" unwrap. (i'll write it like that for the sake of imagining it...)
      we will not really go though the effort of making something that isnt going to show up in an animation anyway like idk in his case worrying about the bottom of her shoes or whatever lol

    • @canberk4786
      @canberk4786 Год назад +12

      From what I understand, This coding uses coordinates. The color values on each dot on the source animation are used as coordinates. These numbers are taken and searched on
      lookup. Then the color of that part is changed with the lookup pixel and goes to output.

    • @agentstache135
      @agentstache135 Год назад +19

      In simple terms the animator makes a paint by numbers for each pose the character might be in, and the thing that looks like a minecraft skin is the key that tells you what color to paint each number. The way it’s layed out is just to make it easier for a human to know what number corresponds to what body part so if they want to change the color of that body part they can just decide to tell the computer “hey actually when you see number 12 I want you to paint those areas brown”

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

    I don’t have my lights on, and the transition at 3:20 made me freak out thinking i dropped my phone

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

    never seen this channel before but this is so cool. the longer i make stuff the more obsessed i get with modularity and being able to change things on the fly, and stuff like this just scratches that itch so nicely. great job

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

    This is fascinating. Thank you for sharing.

  • @Nizart
    @Nizart 2 года назад +10

    I though about doing this in a 2d game to make an easy custom character editor. But i quickly realized that it would be way too much work for me to get a good workflow of making animations with LUT-textures. If you decide to go through with this I will take my hat of to you (do you say that in English?). It's astonishing how much work you put in this project, but it will be all the better for the final product. Also congrats on graduating.

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

      Thanks so much!
      In my case, it takes roughly half an hour to convert one animation clip (~8 frames) but I use really low resolution so that's definitely making it easier

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

      The generally accepted phrasing is "hats off to you" but your meaning is coming across well.

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

      @championchap I have never heard someone say "I take my hat off to you" but that could just be the fact that I'm only 20ish

  • @CSGhostAnimation
    @CSGhostAnimation 2 года назад +4

    RUclips: [finally recommends something good instead of the usual music video celebrity garbage]
    Me: Finally a good fucking youtuber

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

    Very nice shortcut. I wouldn't have thought of this so easily. Thank you for the tip!

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

    That was super interesting. Very clear and to the point as well. Thank you.

  • @DavizaoDestruidorDeFhannyCopia
    @DavizaoDestruidorDeFhannyCopia Год назад +3

    0:01 this guy predicted cammy stretching

  • @helbeglin
    @helbeglin 6 месяцев назад +3

    I'm learning how to create 2D animations, and wanted to avoid the exact situation this video solves. I love the idea of using 3D maps for 2D animations, thank you for the video!

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

    This is exactly what I was trying to figure out! Thank you!

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

    This is too incredible to _not_ subscribe.
    I've seen some of your previous videos before, and I'm seriously impressed ❤

  • @piousthepious
    @piousthepious 2 года назад +18

    Heavily thinking about this more raises some concerns:
    - The workflow, it sounds like it could be a hassle to start something like this. Lots of things need to be figured out like the actual application of translating every pixel to a UV, or even starting the actual animation itself and being conscious of what you can or can’t do knowing you’ll have to translate it to a UV
    -In that vain, complexity of the sprite. There’s lots of places where I can’t imagine it’ll be easy to do this due to larger sprites creatively using shading and color values to create contrast or depth. Or even just a change in perspective can already complicate things. Isometric characters that have two different directions with a single source of shading, am I to map out shaded pixels and then shift the shaded pixels as I move the character? Or recolor pixels as I just turn?

    • @aarthificial
      @aarthificial  2 года назад +6

      I'm not sure what you mean by "actual application of translating every pixel to a UV" but I definitely agree that this would be a nightmare with higher resolutions. In general, this is not a works for all solution I'm afraid

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

      @@aarthificial Hm this is hard to explain. Like after having an existing sprite, I can’t quite imagine how I’ll want to plan out ascribing a place in the UV map for each part of the sprite. Lets say I have an arm right. there’s lighting that gives it depth for some sense of muscularity, but as it animates it’s not always going to have that different shade on the same place of the arm. I’ll have to be conscious about how I’ll make it shift in lighting since it’s not always going to be uniform. I was thinking I’d have to make two “kinds” of arms, lighting and unlit, so now I have to be conscious of where the part of the sprite will take from the texture. I may be thinking about this wrong though

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

      @@aarthificial But this is an amazing idea even if it has an initial limitation. I feel like this has such huge potential as a way of animating sprites

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

      @@piousthepious What if you combined this technique with an overlay image for each animation frame that was just the shading? Then the colors could change dynamically but the shifts in lighting used to represent the underlying shapes would stay intact...
      kinda like how NTSC broadcast Chroma and Luma separately...

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

      @@aarthificial higher resolutions would end up being gradients... something like the "Geometry Images" of ianfeng Gu, Steven Gortler, Hugues Hoppe.
      ACM Trans. Graphics (SIGGRAPH), 21(3), 2002.

  • @SimonBuchanNz
    @SimonBuchanNz 2 года назад +16

    This seems like a more complex sprite palette system - and there are plenty of dedicated editors for that. Maybe useful, but I feel like it's probably overkill unless you really are going to use the UV map functionality.

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

      Maybe he could use it for dynamic lighting on pixelart?

    • @SimonBuchanNz
      @SimonBuchanNz 2 года назад +2

      @@togz813 you could do that, but that's a map of normals, which changes every animation frame so better done on the frame itself, and material properties, which is probably simplest to tie to the palette entry: eg this upper body area uses entry 4, which is (white and matte cotton) or (tan and glossy leather)
      The main reason you'd do this 2d UV map approach is that you don't have to decide how to split up the palette ahead of time; eg you can after the fact decide that this entry should have a different color collar, or add a design to the shirt, etc. - it's not a bad idea, it just might be overkill depending on what you're doing, and it means you can't use existing sprite tools.

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

      Exactly, I was expecting that comment to be the most voted one. The UV-approach might look innovative, but that's just a random application of 90's tech to a colour palette from 80's which does not make a lot of sense on the second thought.

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

    Quality content. Thanks for making this video to show off your color mapping scheme for pixel art.

  • @aperson9603
    @aperson9603 7 месяцев назад +1

    This is awesome!

  • @andrewhamel1
    @andrewhamel1 Год назад +8

    Was the "hoodie girl" at 0:45 your asset? If not would love to know where it's from

    • @aarthificial
      @aarthificial  Год назад +2

      Yes, I initially made it in Blender as a form of practice and ended up using it in the video.

  • @semproser19
    @semproser19 2 года назад +31

    Doesn't this process mean you'd need to use a select a unique pixel for every single pixel in your frame?
    Wouldn't that make drawing really cumbersome, because you have to first find and select each colour mapping coordinate pixel before you can paint each one?

    • @Niuskayz
      @Niuskayz 2 года назад +18

      Probably yes, he still has to draw whole new sheet if he wants to make new animation. But method he uses lets him recolor parts of the animation without changing every single frame.
      But I see a flaw to this. If you want to make an animation where your character changes color or makes some explosion type shenanigans he would still need to make each frame different. For example if character pulls out sword and the sword shines and does explosion, you still have to animate each frame because if you use the method in the video you would have to make the shine and explosion as a separate object.

    • @sluchaynayakotya1386
      @sluchaynayakotya1386 2 года назад +2

      you are right, he did not show how he draw the character. if he will explain that, everyone will see how overcomplicated it is, especially for sprites bigger that 16x8. using 3d render and painting over it with hand is much more easier

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

      you can easily make a script that generates the map from an animation. Then you use that map to make modifications to the animation colors.

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

      That's why it's a low res stick figure. You couldn't do this with something as complicated as a capcom arcade sprite without driving your artist to madness.

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

      @@sluchaynayakotya1386 I imagine it's quite easy, just a little tedious to look up each pixel on the map. But I would be willing to make that trade off for dynamic, runtime-generated appereance changes without having to redraw every single frame manually for each change, which would be a million times more tedious.

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

    This is really quite clever and I have had a project in mind that may be helped immensely by this.

  • @honker3d
    @honker3d 4 месяца назад

    this is amazing, beautiful work!

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

    0:11 Emiru lookin' kinda fine ngl

  • @anthony_wijaya
    @anthony_wijaya 2 года назад +9

    Hi! Have watched most of your devlogs since a while back, super inspiring to see you solving traditional problems in a more modern and thoughtful way. First time commenting since the issue is very relevant to the game I'm making: which is to animate a character while having the requirement of changing their outfit. I have resorted to the simpler solution of redrawing everything as you have said (which comes with its own obvious complications), since I couldn't think of a better way. Do you think a similar system will work if, say, you want to add another piece of garment to the character's outfit? A cape, for example, which is something that adds to the total amount of texture instead of just replacing colors.

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

      You would most likely have to animate everything with the cape and then to remove it make those pixels in the LUT transparent. But there might be a problem with things that would have been hidden by the cape.

    • @Throckmorpheus
      @Throckmorpheus 2 года назад +4

      You could always mix methods, using the LUTs for everything that's shared and then creating distinct sprites for additions like capes that would otherwise hide things behind them? If you needed to control the outfit even further, you could even use the LUT method for each of those sprite layers.

    • @aarthificial
      @aarthificial  2 года назад +6

      I agree with all of the above. I'd go LUTs for colors - layered sprites for optional parts

    • @roshibomb4247
      @roshibomb4247 2 года назад +2

      Another idea as well (coming from someone who's never done pixel art before, so take it with a grain of salt), if you plan to have a lot of different capes but not always use a cape, you could possibly have a section on the sprite always reserved for the ability to add a cape, but keep it transparent when it's not being worn. That way, you keep the ability to add a cape but not necessarily the fact that you're forced to use it, and you get to also keep the customizability of it. You could do even possibly some similar things with hats and whatnot, as long as you don't plan to have any other garment that would go there that would need to be animated differently from the one you're adding it for, I believe?
      Dunno, I'm not 100% clear on the process but from my limited understanding of the topic this seems like a viable solution.

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

    This is such a cool video!!! Thank you so much for making this, I had a big smile on my face the whole time watching it 😄

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

    This is a really beautiful demonstration, thank you for putting it together and sharing it with the broader gamedev community :)
    I hope it inspires some creators to try this alternative method - and to further innovate more unique ideas as well!

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

    *That's a baddie.*

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

    This is amazing, it has me genuinely excited to make a game again, never seen any of your vids be but this one alone got me to sub, thank you for the video!

  • @samkaffinsky
    @samkaffinsky 11 месяцев назад

    I've seen this video on my feed for a few months now, I'm so glad I finally decided to watch it, this is super interesting!

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

    You sir, are an absolute genius and a blessing to us game developers