Pokémon's Terastallize Effect in Shader Graph

Поделиться
HTML-код
  • Опубликовано: 9 апр 2024
  • The core mechanic of Pokémon Scarlet and Violet is Terastallization, a phenomenon that changes the type and appearance of the Pokémon into a crystalline figure. It's the one part of the game that actually looks visually impressive, so in this tutorial video, I'm going to recreate the effect in Shader Graph!
    I'm using Unity 2022.3.0f1, although these steps should look similar in previous and subsequent Unity versions.
    ------------------------------------------------------------------------
    👇 Download the project on GitHub: github.com/daniel-ilett/shade...
    📰 Read this tutorial in article format instead: danielilett.com/2024-04-10-tu...
    ------------------------------------------------------------------------
    ✨ Grab Snapshot Shaders Pro or Hologram Shaders Pro here (affiliate): assetstore.unity.com/publishe...
    📚 Get a copy of my shader book here (affiliate): www.dpbolvw.net/click-10074214...
    ------------------------------------------------------------------------
    💬 Join the Discord: / discord
    💖 Support me on Patreon: www.patreon.com/danielilett?f...
    ☕ Or throw me a one-off coffee on Ko-fi: ko-fi.com/danielilett
    ------------------------------------------------------------------------
  • ИгрыИгры

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

  • @suicune2001
    @suicune2001 2 месяца назад +3

    So cool! While I didn't care about the actual mechanic in the game, I thought it was so beautiful.

  • @brH-mg5kq
    @brH-mg5kq 3 месяца назад +1

    That's really cool, thanks for the video.

  • @alexleonardkrea
    @alexleonardkrea 3 месяца назад +1

    Very cool!

  • @kenshin1238
    @kenshin1238 3 месяца назад +2

    cool man,keep doing !

  • @KnightWhoSaysNi
    @KnightWhoSaysNi 3 месяца назад +1

    Awesome :)

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

    As a 2D artist that has been studying and attempting to understand how the terrastalization works so I can draw it. I applaud your work in recreating the effect. Even if I won't render it in 3D. Understanding how it is made helps with trying to re-create it. ^^

    • @danielilett
      @danielilett  2 месяца назад +1

      I will add the disclaimer that I have no idea how they *actually* implemented this shader - I dunno how I'd even go about decompiling the game to figure that out. So I just sorta guessed, as I usually do with my "break down effect from a game" tutorials. I do hope the video helps you recreate it in 2D though!

    • @luna4s
      @luna4s Месяц назад

      @@danielilett We're all just attempting to reverse engineer it in our own way. But it was really helpful for me to analyse. ^^ It's a big project, I hope to finish it this month but it might take another two. xD

  • @jamestanubrata6782
    @jamestanubrata6782 3 месяца назад +1

    Thats so cool!, you should make more pokemon shader

    • @danielilett
      @danielilett  3 месяца назад +1

      I'm always on the lookout for more shader ideas from games! I'm sure I can think of more shaders based on Pokemon.

    • @mochou-p
      @mochou-p 3 месяца назад +2

      @@danielilett remaking shaders from games is an awesome idea, hope to see more like this!

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

    Do you know if there is any way to accomplish something similar in Blender?

  • @Chris-jo1zr
    @Chris-jo1zr 3 месяца назад +1

    Have you thought about using vertex colours in the mesh instead of the texture? a random range of 0>1 in the red channel applied in Max/Maya/Blender etc would make the effect work without the need for a texture lookup and all the UV stuff. Potentially you could do all of that effect on the vertex shader then and pass over to Fragment at the end?

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

      You should absolutely be able to use vertex colours for something like this, and it'd end up more efficient - like you say, avoiding a texture lookup would be great. I avoided doing stuff like that in Max/Maya/Blender to keep as much of this whole process "in Unity" as I could but now that I think about it, you could probably write a similar plugin as I did that modifies the vertex colours directly instead of creating a texture. I might try doing that, actually!

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

      But vertices are shared between multiple triangles, so I don't think that would work unless every triangle has unique vertices?

    • @Chris-jo1zr
      @Chris-jo1zr 3 месяца назад +1

      @@janek1633 if you get a triangle and set a vertex color I believe it "splits" the vertices, like a UV seam or a smoothing group will do, it'll increase the indices (sp?) in the mesh but will allow you to have every triangle as a different color without bleeding over into the next triangle.
      Though it might be nice to just set every vertex as a random color, it wouldn't be the same hard triangle edge then but perhaps a nice variation on the effect.

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

      ​@@Chris-jo1zr I see, yeah, that would be cheaper than a texture lookup

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

    Instead of assigning a color to every triangle via a texture, could you use the normal vector you calculated as a kind of a seed into a random number generator? It should be mostly-unique per polygon.

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

      You definitely could. I guess it depends on what model you have - if you're fine with a unique vector per flat section of the mesh, even if it's made of multiple triangles, go ahead and use the normals as the seed! If you want those triangles to have different reflections, you'll need to do something like my method, or as someone else pointed out in the comments you might be able to use vertex colours. At least if you use the normals, you avoid doing an extra texture sample.

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

    I can't find the plugin "mesh->terestal texture"

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

      Did you download the project from GitHub? If you did, then there should be a new menu item in the toolbar for the plugin: "Tools -> Convert Mesh to Terastal Texture". Clicking it will bring up a tiny new Unity window for the plugin.

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

      @@danielilett yes, i added the project by overwriting it to my current project, but there's no "Tools -> Convert Mesh to Terastal Texture" in the toolbar

  • @sparklydavid
    @sparklydavid 3 месяца назад +1

    honk