Slik lager du en animert foss

Er du klar til å kjempe mot en annen farlig fiende i spillet ditt? En fiende? Ja, det er forestillingen!

Som vi diskuterte i min siste artikkel, vil dårlig ytelse drepe et godt spill.

På mobil- og webplattformer, spesielt, er ytelsen et veldig stort problem. Men dette er ikke bare et aktuelt problem: Tidligere var PCer og konsoller mindre kraftige enn i dag. Og ved å søke i det siste, kan vi finne gode og smarte løsninger.

I dag lærer du hvordan du legger en flott foss inn i spillet ditt uten forringende ytelse.

Vi bruker de følgende elementene:

  • Enhet 5 (det er gratis: last det ned nå!)
  • En tekstur som denne:

Og ... stopp! Det er slags magi!

Fossen Effekt

Sjekk videoen nedenfor:

Dette er en flott foss, ikke sant? Jeg elsker det. Jeg vil virkelig gjerne sette en foss så i spillet mitt. Men hvordan?

Vi kan starte med en dekonstruksjonsteknikk. Se på scenen med oppmerksomhet: hvilke deler er den laget av?

  • elva (på toppen)
  • fossen (vertikal)
  • elva (på bunnen)
  • litt damp der fossen slutter
  • noen spray der fossen starter og slutter

Vi kan gjøre det med et par ting, uten å drepe ytelsen.

Men først vil jeg forklare deg ...

Hvorfor kan vi ikke bruke "Real Water" på mobilen?

I et 3D-spill er det laget vann med spesifikke shaders og komponenter (som partikler) som koster mye tid i renderingfasen. Av denne grunn anbefales ikke løsninger på høyt nivå for et mobilspill.

Denne opplæringen er skrevet for å foreslå en enkel måte å sette en foss inn i et spill uten å miste FPS.

1. Opprett den første scenen

  • Åpen enhet
  • Lag tre fly som i eksemplet nedenfor
  • Lag tre materialer med Mobile / Particle / Alpha Blended shader (kalt Waterfall_bottom, Waterfall_main, Waterfall_top).
  • Legg til alle tre materialene teksten "waterfall_texture".

2. Koden

  • Kjernen til denne ideen er å bruke Animated UV Map.
  • Opprett et nytt skript i c # (navn det "ScrollUV").
  • Sett inn dette veldig kort koden:
bruker UnityEngine; bruker System.Collections; offentlig klasse Waterfall_UV: MonoBehaviour public float WF_speed = 0.75f; offentlig gjengjør WF_renderer; void Start () WF_renderer = GetComponent();  ugyldig oppdatering () float TextureOffset = Time.time * WF_speed; WF_renderer.material.SetTextureOffset ("_ MainTex", ny Vector2 (0, TextureOffset)); 
  • Lagre filen og legg til dette skriptet til alle fly.

3. Juster tallene

Du må justere flisene på teksturene i de tre materialene som passer til planens størrelse.

Du må også justere hastigheten: vertikalplanet skal være raskere enn de andre.

Den endelige effekten skal være slik:

Og ... det er ferdig. Trykk på spill og se resultatet.

Bonus: Et partikkelsystem

Hvis du vil legge til noen partikler for å legge til flere effekter til fossen din, er det noen ideer.

Merk: Teksturene er laget med Paint eller lignende. De er veldig, veldig enkle, så noen kan lage teksturer som det.

Sprøyte

Opprett en PS og kalt den "PS_spray". Flytt den i scenen din til den er på bunnen av fossen.

Bruk disse parameterne:

Dupliser det og flytt det til det er på toppen av fossen.

Damp

Opprett en PS og kalt den "PS_steam". Flytt den i scenen din til den er på bunnen av fossen.

Bruk disse parameterne:

Bonus 2: Lava

Dette er et enkelt triks for å ha lava foss: endre farge på tekstur slik:

Du vil kanskje øke de maksimale partiklene av dampen; og husk å fjerne spraypartiklene.

Konklusjon

Noen ganger er den raske løsningen også den beste løsningen.

Denne veiledningen, for eksempel, ble født tidligere, i løpet av 90-tallet, da PCer var mindre kraftige enn i dag, og utviklere måtte finne noen kreative løsninger for å jobbe med sine begrensninger.

Tricket på et animert UV-kort er perfekt for mange situasjoner.

For eksempel,du kan bruke den til å animere en bakgrunn. Eller, hvis tekstur har flere fliser (som en "ramme fra en tegneserie"), kan du lage en kort kinematisk sekvens. Den eneste grensen er fantasien din.

Hvorfor er det veldig viktig å forstå teknikker som dette i dag? Fordi du alltid, i spillet dev, finner du grenser at du må finne en vei rundt. Og å studere fortiden er etter min mening den beste måten å lære for fremtiden.