• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Custom Animation Move (Elite Battle System)

WolfPP

Spriter/ Pixel Artist
1,309
Posts
5
Years
  • So for anyone that wants my primal reversion animation (nothing major)

    Custom Animation Move (Elite Battle System)

    Spoiler:

    ill update this post when i figure out how to set up different signs like the official games.

    the files for it are in the .zip below; put them in "Graphics/Animations" the last one is empty to show no symbol currently.

    Good! Maybe i will draw something to change these circle (like original games).

    Also, you can put this:
    Code:
      def pbPrimalAnimation(attacker,pokemon)
        if !(pokemon.species!=383 || pokemon.form<1) && !CUSTOMANIMATIONS
          return GroudonAnimation(attacker,pokemon)
        elsif !(pokemon.species!=382 || pokemon.form<1) && !CUSTOMANIMATIONS
          return KyogreAnimation(userindex,targetindex)
        end
      end
    
      def GroudonAnimation(attacker,pokemon)
    	blablabla
      end
      
      def KyogreAnimation(attacker,pokemon)
    	mimimi
      end
    Always when 'pbPrimalAnimation(attacker,pokemon)' is called, will be called one of them...

    EDIT: Also, if you want the symbols:

    https://www.deviantart.com/coolshallow/art/Primal-Kyogre-Alpha-Symbol-452752492

    https://www.deviantart.com/coolshallow/art/Primal-Groudon-Omega-Symbol-452752056
     
    Last edited:
    465
    Posts
    7
    Years
    • Seen May 9, 2024
    Good! Maybe i will draw something to change these circle (like original games).

    Also, you can put this:
    Code:
      def pbPrimalAnimation(attacker,pokemon)
        if !(pokemon.species!=383 || pokemon.form<1) && !CUSTOMANIMATIONS
          return GroudonAnimation(attacker,pokemon)
        elsif !(pokemon.species!=382 || pokemon.form<1) && !CUSTOMANIMATIONS
          return KyogreAnimation(userindex,targetindex)
        end
      end
    
      def GroudonAnimation(attacker,pokemon)
    	blablabla
      end
      
      def KyogreAnimation(attacker,pokemon)
    	mimimi
      end
    Always when 'pbPrimalAnimation(attacker,pokemon)' is called, will be called one of them...

    EDIT: Also, if you want the symbols:

    https://www.deviantart.com/coolshallow/art/Primal-Kyogre-Alpha-Symbol-452752492

    https://www.deviantart.com/coolshallow/art/Primal-Groudon-Omega-Symbol-452752056


    thanks! managed to figure it out; had to turn on the opacity stuff for it as its disabled(?) now shows image as shown in the original message; script updated; if you can make something for it could be cool to stand out more but not 100% needed (even figuring out how to make the circle black/dark would help) but again would stand out with a different animation
     

    Juno and Ice

    Developer of Pokémon Floral Tempus
    150
    Posts
    5
    Years
    • Seen Apr 30, 2024
    So for anyone that wants my primal reversion animation (nothing major)

    Custom Animation Move (Elite Battle System)


    in the animation script at "def pbChangePokemon(attacker,pokemon)" under "for in battle sprite changes"
    add
    Code:
    return pbPrimalAnimation(attacker,pokemon) if pokemon.isPrimal? && !CUSTOMANIMATIONS
    under "return pbMegaAnimation"

    then under "Def pbMegaAnimation"
    add
    Code:
       def pbPrimalAnimation(attacker,pokemon)
        for i in 0...4
          @sprites["battlebox#{i}"].visible=false if @sprites["battlebox#{i}"]
        end
        clearMessageWindow
        
        fp = {}    
        pkmn = @sprites["pokemon#{attacker.index}"]
        
        vector = @battle.doublebattle ? VECTOR2 : VECTOR1
        back = [email protected]?(attacker.index)
        @vector.set(getRealVector(attacker.index,back))
        wait(16,true)
        factor = pkmn.zoom_x
        
        fp["bg"] = ScrollingSprite.new(pkmn.viewport)
        fp["bg"].setBitmap("Graphics/Animations/ebPrimalBg")
        fp["bg"].speed = 32
        fp["bg"].opacity = 0
        
        # particle initialization
        for i in 0...16
          fp["c#{i}"] = Sprite.new(pkmn.viewport)
          fp["c#{i}"].z = pkmn.z + 10
          fp["c#{i}"].bitmap = pbBitmap(sprintf("Graphics/Animations/ebPrimal%03d",rand(4)+1))
          fp["c#{i}"].ox = fp["c#{i}"].bitmap.width/2
          fp["c#{i}"].oy = fp["c#{i}"].bitmap.height/2
          fp["c#{i}"].opacity = 0
        end
        
        # ray initialization
        rangle = []
        cx, cy = getCenter(pkmn,true)
        for i in 0...8; rangle.push((360/8)*i +  15); end
        for j in 0...8
          fp["r#{j}"] = Sprite.new(viewport)
          fp["r#{j}"].bitmap = pbBitmap("Graphics/Animations/ebPrimal005")
          fp["r#{j}"].ox = 0
          fp["r#{j}"].oy = fp["r#{j}"].bitmap.height/2
          fp["r#{j}"].opacity = 0
          fp["r#{j}"].zoom_x = 0
          fp["r#{j}"].zoom_y = 0
          fp["r#{j}"].x = cx
          fp["r#{j}"].y = cy
          a = rand(rangle.length)
          fp["r#{j}"].angle = rangle[a]
          fp["r#{j}"].z = pkmn.z + 2
          rangle.delete_at(a)
        end
        
        # ripple initialization
        for j in 0...3
          fp["v#{j}"] = Sprite.new(viewport)
          fp["v#{j}"].bitmap = pbBitmap("Graphics/Animations/ebPrimal006")
          fp["v#{j}"].ox = fp["v#{j}"].bitmap.width/2
          fp["v#{j}"].oy = fp["v#{j}"].bitmap.height/2
          fp["v#{j}"].x = cx
          fp["v#{j}"].y = cy
          fp["v#{j}"].opacity = 0
          fp["v#{j}"].zoom_x = 2
          fp["v#{j}"].zoom_y = 2
        end
        
        fp["primal"] = Sprite.new(pkmn.viewport)
        if isConst?(pokemon.species,PBSpecies,:GROUDON)
        fp["primal"].bitmap = pbBitmap("Graphics/Animations/ebPrimalGroudon")
        elsif isConst?(pokemon.species,PBSpecies,:KYOGRE)
        fp["primal"].bitmap = pbBitmap("Graphics/Animations/ebPrimalKyogre")
        else
        fp["primal"].bitmap = pbBitmap("Graphics/Animations/ebPrimal007")
        end
        fp["primal"].ox = fp["primal"].bitmap.width/2
        fp["primal"].oy = fp["primal"].bitmap.height/2
        fp["primal"].x = cx
        fp["primal"].y = cy
        fp["primal"].opacity = 0
        fp["primal"].z = pkmn.z + 20
        #fp["primal"].tone = Tone.new(1,0,0)
        
        fp["circle"] = Sprite.new(pkmn.viewport)
        fp["circle"].bitmap = Bitmap.new(pkmn.bitmap.width*1.25,pkmn.bitmap.height*1.25)
        fp["circle"].bitmap.drawCircle
        fp["circle"].ox = fp["circle"].bitmap.width/2
        fp["circle"].oy = fp["circle"].bitmap.height/2
        fp["circle"].tone = Tone.new(1,0,0)
        fp["circle"].x = cx
        fp["circle"].y = cy
        fp["circle"].z = pkmn.z + 10
        fp["circle"].zoom_x = 0
        fp["circle"].zoom_y = 0
          
        t = 0
        z = 0.02
        pbSEPlay("#{SE_EXTRA_PATH}Harden",120)
        for i in 0...128
          fp["bg"].opacity += 8
          fp["bg"].update
          #t += 8 if t < 255
          pkmn.tone = Tone.new(1,0,0)
          # particle animation
          for j in 0...16
            next if j > (i/8)
            if fp["c#{j}"].opacity == 0 && i < 72
              fp["c#{j}"].opacity = 255
              x, y = randCircleCord(96*factor)
              fp["c#{j}"].x = cx - 96*factor + x
              fp["c#{j}"].y = cy - 96*factor + y
            end
            x2 = cx
            y2 = cy
            x0 = fp["c#{j}"].x
            y0 = fp["c#{j}"].y
            fp["c#{j}"].x += (x2 - x0)*0.1
            fp["c#{j}"].y += (y2 - y0)*0.1
            fp["c#{j}"].opacity -= 16
          end
          
          # ray animation
          for j in 0...8
            if fp["r#{j}"].opacity == 0 && j <= (i%128)/16 && i < 96
              fp["r#{j}"].opacity = 255
              fp["r#{j}"].zoom_x = 0
              fp["r#{j}"].zoom_y = 0
            end
            fp["r#{j}"].opacity -= 4
            fp["r#{j}"].zoom_x += 0.05
            fp["r#{j}"].zoom_y += 0.05
          end
          
          # circle animation
          if i < 48
          elsif i < 64
            fp["circle"].zoom_x += factor/16.0
            fp["circle"].zoom_y += factor/16.0
          elsif i >= 124
            fp["circle"].zoom_x += factor
            fp["circle"].zoom_y += factor
          else
            z *= -1 if (i-96)%4 == 0
            fp["circle"].zoom_x += z
            fp["circle"].zoom_y += z
          end
          
          pbSEPlay("#{SE_EXTRA_PATH}Twine",80) if i == 40
          pbSEPlay("#{SE_EXTRA_PATH}Refresh") if i == 56
          
          if i >= 24
          # mega symbol animation
            if i >= 64
              fp["primal"].zoom_x += 0.04
              fp["primal"].zoom_y += 0.04
              fp["primal"].opacity -= 8
            elsif fp["primal"].zoom_y < factor
              fp["primal"].zoom_x += (factor-1)/16.0
              fp["primal"].zoom_y += (factor-1)/16.0
              fp["primal"].opacity += 16
            else
              fp["primal"].tone.red -= 16 if fp["primal"].tone.red > 0
              fp["primal"].tone.green -= 16 if fp["primal"].tone.green > 0
              fp["primal"].tone.blue -= 16 if fp["primal"].tone.blue > 0
            end   
            # ripple animation
            for j in 0...3
              next if j > (i-32)/8
              next if fp["v#{j}"].zoom_x <= 0
              fp["v#{j}"].opacity += 16
              fp["v#{j}"].zoom_x -= 0.05
              fp["v#{j}"].zoom_y -= 0.05
            end
          end
          wait(1,true)
        end
        pkmn.viewport.color = Color.new(255,255,255)
        pkmn.tone = Tone.new(0,0,0)
        pbDisposeSpriteHash(fp)
        fp["impact"] = Sprite.new(pkmn.viewport)
        fp["impact"].bitmap = pbBitmap("Graphics/Pictures/impact")
        fp["impact"].ox = fp["impact"].bitmap.width/2
        fp["impact"].oy = fp["impact"].bitmap.height/2
        fp["impact"].x = pkmn.viewport.rect.width/2
        fp["impact"].y = pkmn.viewport.rect.height/2
        fp["impact"].z = 999
        fp["impact"].opacity = 0
        pkmn.setPokemonBitmap(pokemon,back)
        pbPlayCry(pokemon)
        k = -2
        for i in 0...24
          fp["impact"].opacity += 64
          fp["impact"].angle += 180 if i%4 == 0
          fp["impact"].mirror = !fp["impact"].mirror if i%4 == 2
          k *= -1 if i%4 == 0
          pkmn.viewport.color.alpha -= 16
          moveEntireScene(0,k,true,true)
          wait(1,false)
        end
        for i in 0...16
          fp["impact"].opacity -= 64
          fp["impact"].angle += 180 if i%4 == 0
          fp["impact"].mirror = !fp["impact"].mirror if i%4 == 2
          wait(1)
        end
        @vector.set(vector)
        for i in 0...4
          @sprites["battlebox#{i}"].visible = true if @sprites["battlebox#{i}"]
        end
        fp["impact"].dispose
      end

    the files for it are in the .zip below; put them in "Graphics/Animations" the last one is empty to show no symbol currently.

    Do you still have the .zip? I don't see it in your post anywhere.
     

    WolfPP

    Spriter/ Pixel Artist
    1,309
    Posts
    5
    Years
  • Is this thread dead now?
    I have an idea for dive..
    Dive can be used just like Fly but Downwards..

    Do it. Get what I did for Bounce or get what Luka did for Fly and edit the graphics and some codes inside the script and post here for us.
     
    465
    Posts
    7
    Years
    • Seen May 9, 2024
    kinda stuck with locating where the weather animations are/where their handled. any idea? besides the first bit in EliteBattle_Animations;

    Code:
    case weather
        when PBWeather::RAINDANCE
          return 1
        when PBWeather::THUNDER
          return 1
        when PBWeather::HAIL
          return 3
        when PBWeather::SANDSTORM
          return 4
        when PBWeather::SUNNYDAY
          return 7

    beyond this i cant really find anything about the animations creation
     

    Luka S.J.

    Jealous Croatian
    1,270
    Posts
    15
    Years
  • kinda stuck with locating where the weather animations are/where their handled. any idea? besides the first bit in EliteBattle_Animations;

    Code:
    case weather
        when PBWeather::RAINDANCE
          return 1
        when PBWeather::THUNDER
          return 1
        when PBWeather::HAIL
          return 3
        when PBWeather::SANDSTORM
          return 4
        when PBWeather::SUNNYDAY
          return 7

    beyond this i cant really find anything about the animations creation

    It's actually Essentials that handles the EBS animations for weather. The only tweaks done to EBS is when to invoke it, and how to position the viewport. This will change in a later iteration, but for now the weather animation is actually being borrowed from
    Code:
    class Weather
     

    Juno and Ice

    Developer of Pokémon Floral Tempus
    150
    Posts
    5
    Years
    • Seen Apr 30, 2024
    It's actually Essentials that handles the EBS animations for weather. The only tweaks done to EBS is when to invoke it, and how to position the viewport. This will change in a later iteration, but for now the weather animation is actually being borrowed from
    Code:
    class Weather

    So If I wanted to change how busy the snow animation is in EBS where would I look in the script to change that?
     

    Jakakk1023

    Jakakk
    1
    Posts
    4
    Years
    • Seen May 30, 2020
    I'm not sure if anyone will do this, but can anyone make a script for surf? That would be dope.
     
    5
    Posts
    3
    Years
    • Seen Jan 15, 2024
    I mean, no one is posting animation scripts, so yeah it's kind of dead. If you want to make move animations, I suggest using the default Essentials Move Editor. To see default Essentials animations, go to Settings, and set "REPLACEMISSINGANIM" to true. If you need more help with the Essentials Move Animator, watch Thundaga's video, he knows it all.
     
    89
    Posts
    4
    Years
    • Seen Jan 17, 2023
    I mean, no one is posting animation scripts, so yeah it's kind of dead. If you want to make move animations, I suggest using the default Essentials Move Editor. To see default Essentials animations, go to Settings, and set "REPLACEMISSINGANIM" to true. If you need more help with the Essentials Move Animator, watch Thundaga's video, he knows it all.

    Also because a complete reboot of EBS is being worked on (called EBDX), which may make the current system obsolete imo. The new system comes probably when Essentials v18 does.
     
    Last edited:

    DarrylBD99

    Content Creator and Game Developer
    321
    Posts
    4
    Years
  • Also because a complete reboot of EBS is being worked on (called EBDX), which may make the current system obsolete imo. The new system comes with Essentials v18 which has Gen 7 coded, so you can bet that EBDX will have many, if not all, of the Gen 7 Moves animations bundled with it.

    Wait a minute, is essentials v18 already out?
     

    Luka S.J.

    Jealous Croatian
    1,270
    Posts
    15
    Years
  • Also because a complete reboot of EBS is being worked on (called EBDX), which may make the current system obsolete imo. The new system comes with Essentials v18 which has Gen 7 coded, so you can bet that EBDX will have many, if not all, of the Gen 7 Moves animations bundled with it.

    Custom Animation Move (Elite Battle System)


    Wait a minute, is essentials v18 already out?

    No.
     
    89
    Posts
    4
    Years
    • Seen Jan 17, 2023

    Wait... No... My whole life has been a lie.

    What exactly is EBDX then?

    Wait a minute, is essentials v18 already out?

    Oh I see...
    Wait lemme fix my post.

    Also because a complete reboot of EBS is being worked on (called EBDX), which may make the current system obsolete imo. The new system comes probably when with Essentials v18 does which has Gen 7 coded, so you can bet that EBDX will have many, if not all, of the Gen 7 Moves animations bundled with it.
     
    Last edited:
    Back
    Top