NemProgrammering.dk logo

Animation til øksen

3D spiludvikling med Unity » Animation til øksen # 10
Denne video kræver medlemskab
Læs mere!
Animation til øksen
Inkluderet:
Livstidsadgang
40 videolektioner
7 timers undervisning
Stil spørgsmål
Kursusbevis

Information om denne video

Underviser: Christian 'Code' Skriver Kragegaard   Video: 10:13   Lektion nr. 10 af 40

 

 

Spørgsmål og kommentarer

Kun medlemmer med adgang til dette kursus kan stille spørgsmål og kommentere. Bliv medlem her!

  • Leif Erik S. siger:

    Wauw – hvor er det egentlig simpelt og let at lave animationer.
    😲
    Jeg har kælet lidt for selve svinget i øksen, så det ser meget realistisk ud.
    Kunne så godt ønske mig, at “Axe_Idle” kun er aktiv, når man går med den.
    Eller retter – at Axe_Idle er helt rolig, når man står stille – og så indsætte en “Axe_Walk” til, når man går.
    Jeg har forsøgt, men ved ikke helt, hvordan det skal gøres.

    Leif.

    1. Christian ". siger:

      Hej Leif

      Så skal der tilføjes lidt kode som går lidt ud over kurset :)
      Du kan lave Axe_idle og Axe_walk som du siger og så sætte det op inde i Animatoren med en parameter.

      Lav en parameter af typen “float” og kald den f.eks. speed. Denne vil vi gerne koble op med spillerens hastighed, for så kan du lave en transition fra idle og til Axe_walk i animatoren, som kræver at speed er over 0 (eller 0.1) før den afspiller og omvendt.

      Inde i koden kan man så bruge en reference til animatoren og så bruge f.eks. AnimatorReference.SetFloat(“Speed”,rb.velocity);
      Det kræver at AnimatorReference er en reference til Animatoren med animationen på og at der er en reference til spillerens rigidbody kaldet “rb” :)

      1. Leif Erik S. siger:

        Kunne det eventuelt laves enklere med, når jeg trykker på piletasterne.??
        Altså – som aktiverer bevægelsen, når jeg trykker på piletasterne – og dermed flytter min spiller.??

        1. Leif Erik S. siger:

          ps.
          Ved godt det ligger lidt udenfor rammerne af dette kursus.
          😇

        2. Christian ". siger:

          Hm altså jeg tror måske godt man kunne lave et lille “hack” i update()
          Hvis du skriver:

          if(Input.GetKey(KeyCode.UpArrow))
          {

          _Animator.Play(“Axe_Idle”);

          }

          F.eks.
          Men det skal være hvor “Animator” peger på din Animator på spilleren.
          Og hvor at den animation du vil spille når du trykker “pil op” hedder “Axe_Idle”. Men du kunne f.eks. godt lave en ny der hed “Axe_walk” :)

          1. Leif Erik S. siger:

            Tak Christian.

            Det virker.
            Jeg har fået min “Axe_Walk” til at virke, når jeg trykker på UpArrow.
            Og kan få den til at gøre det samme, når jeg går baglæns.

            Samtidig fik jeg den til at fungere, når jeg holder højre museknap nede. For det var reelt det, jeg ville forsøge at gøre.
            Jeg har desværre kun én hånd at bruge.
            Så min hensigt var at kunne manøvrere min spiller med musen, og samtidig kunne udføre de forskellige handlinger med musetasterne.
            Det eneste jeg så mangler er at få min spiller til at gå, når jeg trykker på museknappen.

            Jeg har kikket lidt på scriptet “FirstPersonController.cs” men kan sgu’ ikke lige finde koden til UpArrow eller DownArrow
            Jeg ved godt, det ligger uden for rammerne af denne tutorial, så det må vente til senere engang.

            1. Christian ". siger:

              Hej Leif

              Grunden til at du ikke kan finde det er fordi den henter data fra “Horizontal” og “Vertical” aksen fra Unitys Input manager. Hvis du tjekker edit -> project settings og input så vil du kunne se at der er nogle “axes”. Tryk på den lille trekant som peger som en pil og du vil kunne se alle de “axes” der er. Horizontal står to gange og du vil kunne se at deri stå “a” og “d” og også under alternative “up” og “down”. Musen på venstre burde være “mouse 0”. Så du kan prøve at ændre det og se forskellen :)

  • Aldin B. siger:

    Kan stadig ikke få det til at virke, når jeg laver første halvdel af swing animationen, og klikker over på 0:15, bliver øksen ved med at lægge sig fladt ned.

    1. Christian ". siger:

      Har du husket at copy+paste den første keyframe ind til slutningen af animationen?

      Sådan at:

      Keyframe1: Øksen står normalt
      Keyframe2: Øksen er roteret og i gang med sving
      Keyframe3: Kopi af Keyframe 1, så står normalt.

  • Aldin B. siger:

    Hej

    Jeg har lavet noget dumt med øksen. Dens “nul” position er sat til 0, -90, 0, da jeg på en måde er kommet til at bygge den sidelæns, så klingen vender til højre. Jeg ændrede Y til at være -90 for at rette klingen den rigtige vej. Når jeg så prøver at lave animationen til øksen, flyver den rundt i alle mulige mærkelige retninger :D Er der en hurtig smart måde jeg kan ændre Y til 0 igen, uden at jeg skal starte forfra med at lave de 2 cubes osv osv.? :)

    1. Aldin B. siger:

      Har fået fixet både WeaponsCamera og Axe til at være 0, 0, 0 nu, men når jeg vil lave en swing animation til den spasser den stadig helt ud og drejer rundt i alle axer, i stedet for at swinge som en “hammer”… Hjælp :D

      1. Christian ". siger:

        Okay, så det gør ikke noget hvis du kom til at bygge den sidelæns og det så fint ud, så kan du bare flytte dit weapons kamera :) Det er lige meget om det står i 0 eller hvordan det roteret. Hvis det ser helt underligt ud, så slet animationen og prøv igen (det ville jeg gøre). Hvis du ikke har prøvet animation med keyframes før så vil du komme til at prøve at få det til at se underligt/sjovt ud ofte i begyndelsen :D

      2. Christian ". siger:

        Bare husk at det er det øverste objekt (Axe) der skal står som blive animeret under animation. Hvis du kommer til at animere dens children, så vil det komme til at se forkert ud.

        1. Aldin B. siger:

          Okay, tak for svaret! Troede det var rotationen som måske var skyld i at øksen var besat af en dæmon :D

          Prøver lige at fixe det :)

          1. Aldin B. siger:

            Kan stadig ikke få det til at virke, når jeg laver første halvdel af swing animationen, og klikker over på 0:15, bliver øksen ved med at lægge sig fladt ned.

            1. Christian ". siger:

              HEj Aldin
              Det ser ud til at når du svarer på dit eget indlæg at jeg ikke får en besked om det. Nu er det også pænt lang tid siden at du skrev, så problemet er forhåbenligt løst.

              Til andre der ser dette, så kan det være fordi du har glemt at trykke på den røde knap der “optager” keyframen :)