Please login or register.

Login with username, password and session length
Advanced search  

News:

For WME related articles and tutorials visit WME Resource Center.

Author Topic: Kamera neustále na postavě  (Read 1235 times)

0 Members and 1 Guest are viewing this topic.

TomGamer

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 15
    • View Profile
    • http://tomgamer.com
Kamera neustále na postavě
« on: November 11, 2015, 06:12:44 PM »

Ahoj,

mám takový problém a zatím jsem na něj nenalezl řešení.

Mám jedno dlouhou scénu a aktor se při vstupu zobrazuje v její půlce. Kamera jde od začátku až na něj.

Chtěl bych aby na takto velké scéně automaticky kamera začla na aktorovi a pak se pohybovala jen v této scéně s ním.

Video s problémem:
https://www.youtube.com/watch?v=670Cn5uLEqc

Ví někdo jak to nastavit? Zatím jsem nenašel řešení.

Díky
Logged
http://tomgamer.com - I love games!
http://gamingcats.com - We love games!

NAItReIN

  • Lurker
  • *
  • Karma: 1
  • Offline Offline
  • Posts: 41
    • View Profile
Re: Kamera neustále na postavě
« Reply #1 on: November 11, 2015, 11:21:13 PM »

Mám jedno dlouhou scénu a aktor se při vstupu zobrazuje v její půlce. Kamera jde od začátku až na něj.
Chtěl bych aby na takto velké scéně automaticky kamera začla na aktorovi a pak se pohybovala jen v této scéně s ním.
Do scene_init.script tejto scény vlož nasledujúci riadok:
Code: WME Script
  1. Scene.SkipTo(Object);
, kde Object je názov premennej obsahujúc referenciu na postavu. Predpokladám, že to bude pod názvom actor.

Doplnenie pôvodného príspevku:
Ešte ma napadla jedna vec. Neskúšal som to, je to len nápad. Napíš si metódu, aby sa ti ten kód volal vždy, keď urobí postava krok. Vieš ako to myslím? Keď sa postava pohne tak sa zavolá tvoja metóda, ktorú definuješ. Napríklad takto:
Code: WME Script
  1. method NastavKameru()
  2. {
  3.    Scene.SkipTo(actor.X, actor.Y);
  4. }
  5.  
Tie súradnice možno bude treba určiť inak, ale to už určite zvládneš.
A teraz, napríklad takto:
Code: WME Script
  1. on "Krok"
  2. {
  3.    this.NastavKameru();
  4. }
« Last Edit: November 12, 2015, 01:58:03 PM by NAItReIN »
Logged

NAItReIN

  • Lurker
  • *
  • Karma: 1
  • Offline Offline
  • Posts: 41
    • View Profile
Re: Kamera neustále na postavě
« Reply #2 on: November 12, 2015, 05:48:48 PM »

V podstate nie je ani potrebné definovať novú metódu, stačí, keď budeš volať
Code: WME Script
  1. Scene.SkipTo(VypocetSuradniceX, VypocetSuradniceY);
na každú udalosť, ktorá nastane. Ja som napisal krok. Vždy keď sa prehrá tento snímok tak sa zavolá spomínaná metóda.
Logged

TomGamer

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 15
    • View Profile
    • http://tomgamer.com
Re: Kamera neustále na postavě
« Reply #3 on: November 15, 2015, 07:11:34 PM »

NAItReIN: Děkuji za reakci. Scene skip to object / actor funguje.

Ale nějak nechápu ty výpočty součadnice X a Y aby se kamera držela na actorovi?


Díky.
Logged
http://tomgamer.com - I love games!
http://gamingcats.com - We love games!

NAItReIN

  • Lurker
  • *
  • Karma: 1
  • Offline Offline
  • Posts: 41
    • View Profile
Re: Kamera neustále na postavě
« Reply #4 on: November 15, 2015, 07:35:17 PM »

Code: WME Script
  1. Ale nějak nechápu ty výpočty součadnice X a Y aby se kamera držela na actorovi?
Myslel som to tak, že pravdepodobne budeš potrebovať iné súradnice ako je pozícia postavy, čiže actora. Preto som napísal, že ich bude treba určiť, vypočítať.
Logged

TomGamer

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 15
    • View Profile
    • http://tomgamer.com
Re: Kamera neustále na postavě
« Reply #5 on: November 15, 2015, 10:27:21 PM »

NAItReIN: aha děkuju no v podstatě jsem ten začátek scény vyřešil pomocí skip to actor ale teď bych potřeboval aby se ta kamera buď posouvala rychleji nebo držela na actorovi při chození což by pro mě bylo nejlepší :) Nevíš jak na to? :) Díky.
Logged
http://tomgamer.com - I love games!
http://gamingcats.com - We love games!

NAItReIN

  • Lurker
  • *
  • Karma: 1
  • Offline Offline
  • Posts: 41
    • View Profile
Re: Kamera neustále na postavě
« Reply #6 on: November 16, 2015, 04:28:21 PM »

Ahoj, netestoval som to, ale myslím, že by to mohlo byť aspoň čiastočné riešenie.

1. Keď sa zobrazí scéna, ktorá má na výšku viacej pixelov ako je rozlíšenie obrazovky, odporúčam zavolať metódu
Code: WME Script
  1. Scene.SkipTo(actor);
.
2. V prípade, že používaš 2D postavy, otvor si nástroj SpriteEdit a pre smer rr a ll na vhodne zvolených snímkoch napíš do poľa Event názov tvojej udalosti, napríklad
Code: WME Script
  1. krok
.
Otvor si actor.script a napíš tam:

Code: WME Script
  1.  
  2. // Vypočítame si pozíciu v smere osi X
  3. // SirkaSceny nie je premenná, je to konkrétne číslo, ktoré nepoznám, ale ty si ho tam ľahko dopíšeš
  4. // Napríklad šírka scény bude 1400 pixelov
  5. var PoziciaX = SirkaSceny / 4;
  6.  
  7. // Vypočítame si pozíciu v smere osi Y
  8. // SirkaSceny nie je premenná, je to konkrétne číslo, ktoré nepoznám, ale ty si ho tam ľahko dopíšeš
  9. // Napríklad výška scény bude 600 pixelov
  10. var PoziciaY = VyskaSceny / 4;
  11.  
  12. on "krok"
  13. {
  14.   // Pri použití metódy SkipTo() kamera doslova skáče,
  15.   // preto použijeme metódu ScrollTo(), ktorá zabezpečí plynulé posúvanie scény v danom smere
  16.   Scene.ScrollTo(PoziciaX, PoziciaY);
  17. }

Nezabudni niekde do skriptu, napríklad do game.script napísať tento riadok kódu:
Code: WME Script

Vyskúšaj ako to bude fungovať. Podľa toho by sme to ďalej doladili.
Logged
 

Page created in 0.358 seconds with 18 queries.