Jump to content

UDK ucionica


hr0nic
 Share

Recommended Posts

Posto nas ima ovde koji nesto raduckamo ili se interesujemo za UDK (unreal development kit), resio sam da otvorim temu na kojoj cemo kaciti neka resenja do kojih smo dosli radeci u njemu. Znaci bilo bi lepo kad bi ovde podelili ono sto smo do sada savladali u udk, a da bude svima od koristi. Mislim ako imate volje.... i nemojte samo da postavljate pitanja tipa kako da napravim celu igru hehe :)

 

evo da pocnem :

 

Vecina ljudi postavlja pitanje da li moze da se ukloni default puska i hud, recimo ako im treba za neku prezentaciju gde ne treba da se puca i unistava :) Evo resenja, veoma lako i jednostavno:

 

Iskljucivanje puske :

 

view>world properties > pod jezickom WorldInfo nadjite liniju > no default invertory for player > chekirajte kockicu

 

Skidanje HUD-a :

 

-otvorite Kismet (malo zeleno K u gorenjm meniju)

-desni klik na radnu povrsinu>New Event>Level Loaded

-desni klik na radnu povrsinu>New Action>Toggle>Toggle HUD

-desni klik na radnu povrsinu>New Variable>Player>Player

 

e sad povezivanje:

 

kockicu loaded and visible povezite sa hide kockicom na toggle hud, a krug sa playerom sa kockom target na toggle hud

 

tako ste iskljucili HUD

 

evo i uslikano kako treba da izgleda

defaultinv.jpg

hudoff.jpg

 

 

eto toliko za pocetak, nadam se da ce nekom da koristi, mozda danas postavim jos nesto :)

Link to comment
Share on other sites

Evo situacije... Napravili ste recimo dve prostorije, povezane hodnikom, imate jedna vrata koja se aktiviraju kad igrac predje preko triggera, ostanu otvorena 3 sec, i opet se zatvaraju.

 

Za ovaj primer sam napravio jednu kocku 200x200x10 (200M u cinemi = 2M u UDK) u cinemi koju koristim za ovakve situacije, naravno mozete da iskoristite i neku platformu iz vec gotovih aseta u udk.

 

---Evo kako bi izgledao raspored u levelu :

Scena ima tri svetla (desni klik na radni prozor>add actor>Add Light(point)) i player start (desni klik>add actor>add PlayerStart).

th_level1.jpg

 

---Obelezite objekat koji ce se koristiti za vrata, desni klik>Convert>Convert StaticMeshActor to Mover , sada objekat mozemo da koristimo u mateene sekvenci kao mover :)

th_konvertmover.jpg

 

 

---Otvorite Kismet(malo zeleno K u gorenjm meniju), desni klik>New Matinee, dva puta klik na Matinee, kad se otvori Matinee editor, zatvorite prozor Kismeta koji je iza, da biste videli radnu povrsinu editora, slobodno malo pomerite Matinee prozor da biste videli objekat(vrata).

---Selektujte objekat koji smo konvertovali u Mover(vrata), predjite na Matinee prozor, desni klik>Add New Empty Group

th_matinee.jpg

 

---Desni klik na New Group>Add New Movement Track, ako izbaci neko upozorenje samo kliknite na YES:)

th_matineesekundara.jpg

 

 

---U Matinee prozoru videcete vremensku liniju sa koracima od 0.5sec, odskrolujte tockicem misa da biste odzumirali malo,

uocicete da je po defaultu obelezeno vreme od 5sec, to cemo da koristimo za celu sekvencu otvaranja vrata.

 

 

---Pazite da vam je movement obelezen, i naravno objekat koji pomeramo selektovan, crni marker stoji naravno na 0.00 vremenskoj liniji

th_matinee3.jpg

 

---Klik na Add Key, pomerite marker na 5.00 sek na vremenskoj liniji, pomerite vrata recimo u levo za celu duzinu objekta, dodajete jos jedan Add Key, (sada cete primetiti da se pojavila zuta linija koja pokazuje putanju u editoru)

---U gornjem delu Matinee editora videcete zeleno dugme za STOP, klik na njega, ovim ce se sekvenca vratiti na pocetnu vrednost, i moci cete da pregledate animaciju na PLAY u Matinee.

 

ZAVRSILI SMO ANIMIRANJE VRATA :)

 

DELIM OVO NA DVA DELA (mislio sam da ce krace da ispadne) ! Sledeci deo, triggeri i Kismet skripta :)

 

p.s.

cesce cuvajte projekat, desava se da puca ko blesav kad se radi u Matinee-u :/

Link to comment
Share on other sites

Ovo je cool, ja sam iz jednog video tutoriala naučio ovaj rad sa vratima ali dobro da sada ima na srpskom :) Ono što me interesuje je kako da se trigger uradi da ne reaguje na blizinu, već da se recimo na ekranu pojavi "Click F to open door" i da se vrata otvore na klik?

 

Ako nisi planirao, a umeš ovo da obaviš, bilo bi lepo da dodaš u nastavak tutoriala :) ne mora odma' već nekad, kad stigneš...

 

 

Takođe, vrrrlooo interesantno će biti da se nauči (a i za to jurim tutorial) kako da se importuje karakter ili oružje (oba sa sve animacijom) u UDK... Npr AK-47, od modelovanja za UDK, preko animacije, do efekata u UDK... isto i za npr NPC likove :) Znam da sam sada preterao i da je za to potrebno baš mnogo, ali ako je neko voljan, ima vremena... bilo bi korisno.

Link to comment
Share on other sites

Da, ja ovo sad iz glavudze radim, naravno sve sam naucio iz raznih tutorijala i mnogo mnogo provaljivanja, i planiram da ovo do kraja bude jedna mala mapa, evo cim odradim ove osnovne triggere, pisem za te zezancije sa pitanjima i otvaranjima i sta vec sve:) IDEMO REDOM heh, pa dokle doguramo:)

Link to comment
Share on other sites

OK :) Evo drugog dela, zanimljivog.

 

---Zatvorite Matinee prozor , zatvorite Kismet prozor ako vec niste.

---Namestite pogled ispred vrata, desni klik>Add Actor>Add Trigger

th_triger1sl.jpg

 

---Skalirajte i uklopite trigger da bude priblizno kao na slici.

th_trigger2sl.jpg

 

---Neka trigger bude selektovan, otvorite Kismet (zeleno K :) ), desni klik>New Event Using Trigger_0>Touch

th_3kism.jpg

 

---Povezite sve kocke kao na slici, na matinee Completed kocki desni klik>Set Activate Delay, unesite vrednost 3.00

th_tr5sl.jpg

th_trigger4sl.jpg

 

---I za kraj, obelezite trigger u kismetu, i dole u opcijama unesite 0 na Max Trigger Count

th_tr5sl.jpg

 

 

---Sacuvajte, >Build All, pa pustite i isprobavajte... :)

 

Eto to je to ukratko, videcu da prosirim jos nesto kasnije, pa cemo samo da dodamo na ovu scenu :)

 

Ako sam nesto zeznuo samo mi javite, ili pitajte sta nije jasno .....

Link to comment
Share on other sites

Evo kako treba da izgleda

 

 

znaci napravili smo trigger koji aktivira matinee sekvencu, u Kismetu smo mu rekli da kad Matinee zavrsi sekvencu, krene reverse,

ali pre toga ima cekanje od 3sek. i to je to :) U sledecem primeru, kad odradim, ubacicemo neke komentare za igraca i triggere

za interkciju, da malo komplikujemo sve ovo :) naravno i malo zvucnih zajebavancija....

 

i da, ono trigger count, sto smo stavili na vrednost 0, omogucava beskonacno aktiviranje triggera...

Link to comment
Share on other sites

Sto se tice otvaranja vrata na tastaturu isti sam problem imao u svom engineu :)

Osnovna ideja je da se uradi raycast (ili dobijanje map obj-a pomocu ray-a, slicno je) pa se proveri da li su vrata prva i ako jesu reaguje se na event. U CTF mapama postoje vozila koja mogu da se koriste pa vidi kako se use event tu odradio i isto primeni za vrata.

Link to comment
Share on other sites

Odlično... e sad malo teže pitanje :)

 

Želim da mogu da otvorim vrata samo ako posedujem određeni predmet ili ako sam pre toga obavio određene akcije?

 

Npr, samo ako imam ključ ili samo ako sam u igri završio misiju koja je preduslov za otvaranje vrata (ukucao šifru pored vrata, platio ulaz i sl...)? Naravno, ovo je programiranje??? Ali me interesuje koliko je komplikovano da bi znao da li da imam takve ideje u izradi kocepta igre...

Link to comment
Share on other sites

Odlično... e sad malo teže pitanje :)

 

Želim da mogu da otvorim vrata samo ako posedujem određeni predmet ili ako sam pre toga obavio određene akcije?

 

Npr, samo ako imam ključ ili samo ako sam u igri završio misiju koja je preduslov za otvaranje vrata (ukucao šifru pored vrata, platio ulaz i sl...)? Naravno, ovo je programiranje??? Ali me interesuje koliko je komplikovano da bi znao da li da imam takve ideje u izradi kocepta igre...

 

Pazi skoro sam blizu resenja da se sve to moze uraditi u Kismetu, bez (mozda malo) programiranja, tj vec imam nesto, ali ne bih da kacim dok bas dobro ne odradim, treba jedno dva lista tutorijala samo za Kismet :)

 

 

Svaka cast za temu, potpuni rispekt i podrska!

 

hvala hvala, nadam se da ce ljudi imati koristi od ovoga :)

 

Pretpostavljam da bi u Trigger Used imao par if-ova koji bi proveravali da li imas odredjene predmete.

 

tako nekako, tj verovatno kad bi se programiralo, sto nazalost ne znam dobro(tj skoro nikako ne znam), ali imam neku viziju kako bi se uradilo u Kismetu:

 

recimo imas Trigger, e sad on moze da ima mnogo funkcija, mi iskoristimo trigger kao object variable u kismetu, kad igrac naleti na njega aktivira get invertory ili ako ne mora da se skuplja samo aktivira remote event koji tamo aktivira dalje triger koji ce da otvori vrata ili sta vec... mislim isprobao sam slicno nesto, samo to bas mora da se dobro razradi.... radi ovako kad je samo za jedna vrata ili jednu akciju, ali dosta je zaguljeno ako mora dosta stvari da zavisi jos od tog pokupljenog objekta... uhhh boli glava vec :)

 

Link to comment
Share on other sites

hvala syndrome na savetu,osnove su svakako bitne, ja bi ipak ovde da se zadrzim vise na iskoriscenju Kismeta i Matinee-a, ali nije lose ako vec neko moze da ubaci i neki kod ovde, i da nam objasni kako i sta... naravno da ima veze sa UDK... naravno gledamo da isto tako dodjemo do resenja na najjednostavniji nacin, zamisli da sam ovde napisao da za jedan onaj trigger treba ovo da se otkuca :

 

Begin Object Class=SeqEvent_Used Name=SeqEvent_Used_2

bAimToInteract=False

Originator=Trigger'Trigger_1'

MaxTriggerCount=0

MaxWidth=169

OutputLinks(0)=(Links=((LinkedOp=SeqAct_Interp'SeqAct_Interp_0')),DrawY=76)

OutputLinks(1)=(DrawY=96)

VariableLinks(0)=(DrawX=416)

VariableLinks(1)=(DrawX=492)

ObjInstanceVersion=1

ParentSequence=Sequence'Main_Sequence'

ObjPosX=368

ObjPosY=8

ObjName="Trigger_1 Used"

DrawWidth=116

DrawHeight=105

Name="SeqEvent_Used_2"

ObjectArchetype=SeqEvent_Used'Engine.Default__SeqEvent_Used'

End Object

 

verovatno programerima je smesno, ali level dizajnerima nije...

Link to comment
Share on other sites

Kako najbolje kompresovati-spakovati igru kada je sve gotovo, da bi mogla da se igra na drugom kompjuteru?

(neinteresuje me "cooking" za konzole)

 

Napravio sam neki mali nivo, ali nisam zadovoljan finalnim exe. fajlom zato sto je prevelik

(oko 120 MB za nekoliko modela i malo peska).

 

Na netu je tesko naci dobar tutorijal za tako nesto, i uglavnom su mnogo komplikovani.

Mora mnogo toga da se odradi, korak po korak...dali postoji neka skripta koja bi to ubrzala ?

Link to comment
Share on other sites

tnx nitro :)

 

@ostrvo

 

za sad nisam ni ja naleteo na neku skriptu koja to radi, ali stvarno je tesko da bez muke spakujes ispod 100MB, pogotovo sto instaler

pakuje i directx fajlove i jos gomilu stvari uz to, pored same igre. Jedino sa cime bi mogao da se zanimas je da pregledas ovaj blog

http://forecourse.com/?p=141 , ako vec nisi... lik je sve spakovao na 10tak MB , ali opet, sam unreal je velika glondza od engina,

nisu tu u pitanju samo modeli i texture koji zauzimaju prostor...

Link to comment
Share on other sites

evo sledece situacije, dodao sam jos jedna vrata(1 na sl.) i jednu prostoriju(p3 na sl.), iz udk aseta sam iskoristio ove dve konzole sa bocama (t1 i t2)

 

th_1sl.jpg

 

na prvoj konzoli igrac otvara prva vrata(na klik "e"), i upozorenje se ispisuje na ekranu da igrac ima 10sek fore da dodje do prostorije 2, pre

nego sto se most pomeri, naravno uz pratnju zvuka alarma :) u prostoriji 2 se nalazi prekidac za ukljucenje svetla u prostoriji 3. koji istovremeno startuje alarm i pocinje redom da sa sklanja pod u prostoriji 2 :)

u prostoriji 3 bice prekidac koji resetuje alarme i vraca most i prostoriju na predhodno stanje.

 

kako bi trebalo da izgleda

 

 

uskoro resenje (cim se pokupim) :)

Link to comment
Share on other sites

ceo dan me zeza net, padne kisa malo i on ne radi @!#!@$#@!

da krenemo dalje...

 

za nastavak sam iskoristio asset S_HU_Deco_SM_StorageTanks03 , ima jednu zanimljivu konzolu na sredini ispred koje cemo postaviti trigere.. evo kako mozete da uredite scenu da bi mogli lakse da pratite desavanja :)

th_01x.jpg

 

kao sto sam u nekom predhodnom postu napisao, za pravljenje ovih platformi, koristim model 200x200x10 (ovo su c4d jedinice),

kad bi gledali realno to bi bilo kao 2Mx2M

th_02x.jpg

 

krecemo od prve konzole, postavite dva triggera ispred konzole kao na slici ispod (desni klik>add actor>add trigger), skalirajte ih i uklopite otprlike kao na slici

th_03x.jpg

 

---ova dva triggera upotrebicemo za otvaranje prvih vrata i za aktiviranje poruka i pokretanje platformi.

 

---kopirajte ona prva vrata sto smo pravili u prvom postu, i postavite ih kao na slici.Steta je sto moramo opet da uradimo celu animaciju u Matinee editoru izpocetka, jer to ne moze copy/paste.Dakle odradite isto kao i za prva (tj druga) vrata postupak u Matinee, na 5 sekundi otvaranja.

 

---Selektujte prvi trigger, otvorite Kismet, desni klik>New Event Using Trigger_x>Touch

---Opet desni klik>New Action>Voice/Announcements>Play Announcements

---Klik na play announcements, dole u properties na polje announcement text unesite recimo :Pritisni E

---Ne zatvarajte Kismet, minimizujte Kismet prozor, otvorite content browser: view>Browser Windows>Content Browser

---Nadjite u kolekciji UDK Cool Abient Sounds zvuk koji nosi naziv VehicleHorn, obelezite ga, ne zatvarajte content browser, maximizujete Kismet editor, obelezite Play Announcements nod i dole u properties nadjite polje Announcement Sound, i samo kliknite zelenu strelicu, automatski ce da ucita onaj selektovani wave fajl

 

th_04x.jpg

 

---U kismetu sad povezite trigger sa play announcemets sa touched ide na IN

---Obelezite trigger,u trigger properties nadjite max trigger count i postavite na 0

 

---Spustite Kismet, obelezite drugi trigger ispred konzole, vratite se u kismet, desni klik>new Event Using Trigger_x>Used

---Obelezite onaj Play Announcement pa onda ctrl+c pa ctrl+v (hehe)

---Ovaj trigger_x used ( _x je redni broj triggera da ne bude zabune, mozda se razlikuje) povezite sa Used kocke na IN kocku od

Play Announcements , i opet sa Used na Matinee sekvencu koju ste napravili za ova prva vrata na Play.

---Opet obelezite trigger used i dole properties nadjite polje Aim To Interact, odcekirajte kocku (ovim izbegavamo da mora precizno da se nanisani trigger)

---Obelezite Play Announcement koji je povezan sa triggerom used, unesite neki text koji obavestava igraca sta ce da se desi :)

ja sam u polje Announcement text stavio "Vrata su otvorena, imate 10 sek. da predjete most"

---Desni klik na Out kocku od Play Announcement>Set Activate Delay unestite 10

 

Kismet sada treba da izgleda ovako (bez ovih komentara gore, to je cisto za orijentaciju :) )

th_05x.jpg

 

sacuvajte ovo, build all, isprobajte...

 

sledi pomeranje platformi sa mosta i aktiviranje svetla i alarma u trecoj prostoriji, i na kraju resetovanje svega :)

 

 

 

 

 

Link to comment
Share on other sites

Ja sam pokusao da uradim ono sto je mratchny pitao(sa kljucem), i zapeo na samom kraju, vrata nece da se otvore...

evo seme:

http://s979.photobucket.com/albums/ae277/b...smetpicture.jpg

 

znaci... var bob = false; kljuc on touch = hide; i var bob = true;

 

onda trigger on touch provera dal je var bob= true, ako jeste, pokrece vrata...

 

kljuc radi, al zato vrata ne...a ako stavim izlaz sa triggera na matinee na false onda rade, i to bez kljuca...

 

 

evo slike:

http://s979.photobucket.com/albums/ae277/b...rent=udkpic.jpg

Link to comment
Share on other sites

uf prijatelju, kako si ti dosao do toga :) skoro sve ima ali to nista ne radi...

 

evo kako treba da bude u kismetu

 

kljucvrata.jpg

 

 

fali ti jos jedan trigger, i ta donja grupa je skroz okrenut redosled,

ako te ne mrzi sacekaj da zavrsim ono zapoceto, pa ce i ovo doci na red, korak po korak...

 

ovako ce da izgleda u levelu, bitno je da se igracu daje do znanja sta se desava u igri, znaci lepo je kad izlaze komentari

th_kljuceeevi.jpg

 

i evo probe

 

Link to comment
Share on other sites

@hronic: uradio sam po ugledu na tutorial iz top down igre...

uspeo sam... :P:) samo sam stavio max trigger count na 0, da radi svaki put kad stanem...:) da, i okrenuo sam redosled kljuc...

 

http://www.youtube.com/watch?v=I4mQ46n8T3Y

 

//jel postoji neka tema za zadatke, npr neko kaze uradite to i to i onda svi da pokusamo da resimo, tako mozemo da vezbamo i usput da uradimo sve sto jedna fps igra treba da ima?//

Link to comment
Share on other sites

bravo, odlicno, cini mi se da sam cak u prvom postu napomenuo za taj max trigger count, veoma bitna stavka u nekim situacijama :)

drago mi je da si uspeo da odradis :)

 

sto se tice tih zadataka, mozes sam da postavis neki zadatak, pa kad ga resis i isprobas, postujes ovde resnje...

dobro je da ova tema bude za gotova resenja, da bi bilo preglednije...

Link to comment
Share on other sites

Imam par problema oko 3D Buzz Kismet video tutorijala.

 

1. MaterialInstance->SetVectorParam ne postoji, tako da taj nacin za menjanje boje materijala otpada. Jel postoji neki drugi nacin to da se izvede?

 

2. Switch->DelayedSwitch ne postoji, pa ne mogu da izvedem countdown tim putem. Koja je zamena za ovo?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...