Omnitotem

Ihr habt ein Spiel mit PaC-DK gemacht oder seit gerade dabei? Dann zeigt etwas davon hier!
Post Reply
kraeftling
PaC-DK Newby
Posts: 14
Joined: 05 Mar 2015, 17:19
Location: Ukraine

Omnitotem

Post: # 82198Post kraeftling
15 Mar 2015, 17:10

ich hab im Leben nur LUA Text-adventures geschrieben, noch nie mit Grafik (vielleicht weil ich mich mit Malen nichts zu tun habe).
Jetzt will ich probieren aus den fertigen pics Animationen zu basteln um meine Horror-idee in ein Spiel zu schaffen. Das Spiel wird sehr unheimlich und gruselig sein (aber ohne Zombies und andere US cliches). So etwas wie Dark Seed mit Cronenberg und Laird Barron.

Jetzt mache ich Szene-designs, und lerne gerade die neue Beta 4. Zur Zeit heißt das Projekt "Omnitotem: Dark Sanity".
Image
Image
Image

Also, hier, zum Beispiel, habe ich denselben Raum, aber ich möchte was besonderes mit Fenstern und Licht arrangieren. Wie kann ich ein Video im Fensterfläche platzieren? Ich hab das im Help oder Tutorials nicht gefunden. Soll ich einfach eine Reihe pics in ein Objekt zusammenfassen, oder läßt sich einfach ein Videofile an die Stelle bringen? Na sagen wir, daß es ein Video hinter im Fenster abspielt, mit entsprechenden Lichtflecken am Boden (die sind nicht ein Video, natürlich, sondern pic Animation). Kann ich das tun, mit dem Video da?
Image

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: Omnitotem

Post: # 82199Post Zimond
15 Mar 2015, 19:46

Viele Bilder in ein Objekt packen wäre eine Möglichkeit. Für kurze Videos mit deutlich mehr als 30 Bildern gibt es den Befehl playanimation. In der Anleitung steht genau drin wie das geht.

Im Prinzip packst du deinen Kurzfilm in einzelnen Frames ins Projekt und achtest drauf das sie alle nummeriert sind zB :

myvideo001.jpg
myvideo002.jpg
myvideo003.jpg
myvideo004.jpg

Im playanimation Befehl gibst du dann nur myvideo an, sowie Postion, Größe und Geschwindigkeit.
Image

kraeftling
PaC-DK Newby
Posts: 14
Joined: 05 Mar 2015, 17:19
Location: Ukraine

Re: Omnitotem

Post: # 82200Post kraeftling
16 Mar 2015, 09:56

ja, danke, aber kann ich diese Animation HINTER das Raum platzieren, so wie in einem hinteren Layer? Zum Beispiel in Rahmen Fensters oder eines TV Funkgerätes? Oder soll ich darüber kümmern erst wenn ich die Animation bastle und dann das ganze als ein fertiges Objekt an die Szene platzieren?

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Omnitotem

Post: # 82201Post japanhonk
16 Mar 2015, 11:29

Hi,

ich hab das so, wie ben beschrieben noch nie ausprobiert, aber wenn es Objektbasiert ist, dann müsste es ja möglich sein, das "Filmobjekt" HINTER die Wand zu setzen, bzw die Wand als Mitte zu definieren.

Dazu hat jedes Objekt einen Regler, damit kann man bestimmen, ob z.B. eine Figur davor, dahinter, wann davor und dahinter laufen kann oder ob ein Objekt im Vorder- oder Hintergrund steht.

Wenn also die Wand auf "Mitte" steht und der Film auf "hinten", dann steht die Wand mit dem Fenster ( das muss dan ein PNG File sein, damit das Fenster "leer" bleibt, also ohne Hintergrund ( eben ein Loch in der Wand ! ) und dahinter läuft der Film ab, also ist auch nur durch das Fenster der FIlm zu sehen, den Rest verdeckt die Wand
Gruß

Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

DeinTroll
Experienced PaC-DK User
Posts: 561
Joined: 07 Sep 2011, 21:33
Location: In der Ortenau
Contact:

Re: Omnitotem

Post: # 82202Post DeinTroll
16 Mar 2015, 18:28

Dafür musste halt den Hintergrund nicht als Hintergrund, sondern als Objekt einfügen. Damit du hinter ihm noch etwas platzieren kannst.
Image

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: Omnitotem

Post: # 82204Post Zimond
16 Mar 2015, 20:01

Nein, eine Animation mit Playanimation ist immer im Vordergrund und recht eckig. Macht aber nichts, du brauchst ja nur den Ausschnitt des Fensters nehmen und vor deinen Film packen, so hab ichs in Alühn 2 gemacht mit der Portaltür.

Image
Image

kraeftling
PaC-DK Newby
Posts: 14
Joined: 05 Mar 2015, 17:19
Location: Ukraine

Re: Omnitotem

Post: # 82205Post kraeftling
17 Mar 2015, 23:16

vielen Dank, jetzt hab' ich das verstanden

kraeftling
PaC-DK Newby
Posts: 14
Joined: 05 Mar 2015, 17:19
Location: Ukraine

Re: Omnitotem

Post: # 82644Post kraeftling
20 Sep 2015, 12:10

Okay, ich bin jetzt grad am Voice recording un hab ein Paar Fragen.

1. Wie kann ich ein Cycle machen so dass der Soundfile der sich abspielt ist nicht der einzelne, sondern ich hab eine Reihe von Files die sich der Reihe nach abspielen (für demselben State), so wie ein Loop von Sound Files. Z.B. 001.ogg, 002.ogg, 003.ogg - und dann noch mal wieder von Anfang an 001.ogg usw.

2. In Version 3 kann ich schon die animierte GIFS verwenden? Und wie verwende ich die MP4 Videos, wie kann ich die abspielen? ZB, in meinem Spiel hab´ ich einen TV in jedem Room, und am TV möchte ich MP4 abspielen. Wie komme ich dazu?

Vielen Dank!

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Omnitotem

Post: # 82645Post japanhonk
20 Sep 2015, 16:16

Hi,

wenn Du eine Playlist abspielen willst, dann nutze Stringvariablen, in die Du den Namen des abzuspielenden Files reinschreibst. Dann schreibst Du eine Funktion, die einen Zähler abfragt und dann entsprechend die Variable neu setzt.

z.B.

ifnot_obj (music_timer;0) ---> soll Sound abgepsielt werden ?
{
ifnot_num (music_counter;10) ---> wurde das letzte Stück schon gespielt ?
setnum (music_counter;+1) ---> wenn nicht, dann Zähler +1

if_num (music_counter;>9)
setnum (music_counter;0) ---> wenn es von Vorne anfangen soll

playsound ([current_soundfile])
setobj (music_timer;<Zustand für Geschwindigkeit>)
}

Im letzten Frame des Objektes music_timer steht dann der Aufruf der Funktion

Wenn das Objekt music_timer auf 0 steht, wird die Funktion nicht mehr ausgeführt.

Gruß

Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

kraeftling
PaC-DK Newby
Posts: 14
Joined: 05 Mar 2015, 17:19
Location: Ukraine

Re: Omnitotem

Post: # 82646Post kraeftling
20 Sep 2015, 18:21

Danke, was aber bedeutet <Zustand für Geschwindigkeit>, soll da was besonderes stehen?

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Omnitotem

Post: # 82647Post japanhonk
20 Sep 2015, 21:00

Zustand bedeutet : Zustand des Objektes, das als Timer fungiert.

setobj (Ampel;1 ) Zeigt z-B das Bild einer grünen Ampel
setobj ( Ampel;2) Zeigt z.B das Bild einer roten Ampel.

Das Objekt Ampel hat also 2 Zustände. Wenn Du alle 30 Frames je Zustand ablaufen lässt und Skriptzeilen in die Frames einträgst, werden diese Befehle eben erst mit Ablaufen des jeweiligen Bildes / Frames aktiv. Je nachdem, wie schnell die 30 Bilder in Zustand 1 und 2 ablaufen sollen, endet der Timer dann eben mal schneller oder mal langsamer.

Nur, dass ich als Timerobjekt eben normalerweise KEINE Grafiken einfüge ( Außer in der Entwicklungsphase des Spiels )

Zustand 1 kann ich z.B. einstellen auf 1 Bild pro Sekunde. Zustand 2 auf 5 Bilder / Sek usw.

Wenn ich jetzt einen langsamen Timer brauche, wähle ich Zustand 1, nach 30 Bildern / Frames ( = 30 Sek ) wird dann die Skriptzeile in Frame 30 ausgeführt und die Funktion startet dann das Timerobjekt mit der benötigten neuen Geschwindigkeit / Zustand neu.

Da Timerobjekt ist also sowas , wie eine Eieruhr, die Du aufziehst und die nach der eingestellten Zeit dann rappelt. Das verbraucht keine Rechenzeit für Funktionen und es hat sich als sinnvoll erwiesen, wenn ich sehen möchte, ob der Timer auch läuft. ( Habe dann eine kleine Uhr als Bild gesetzt im Anywhere Raum )

Alles klar ?

Gruß

Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

kraeftling
PaC-DK Newby
Posts: 14
Joined: 05 Mar 2015, 17:19
Location: Ukraine

Re: Omnitotem

Post: # 82648Post kraeftling
20 Sep 2015, 21:33

Danke! Ich brauche nach jedem Click auf einen Objekt einen nächsten Sound abzuspielen aus einer Liste von Files, und diese Liste wiederholt sich in einem Loop. Ich könnte natürlich einfach den State des Objektes wechseln nach jedem Click, aber vielleicht gibt es bessere Wege?

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Omnitotem

Post: # 82649Post japanhonk
20 Sep 2015, 21:51

Ach, du willst das per Click machen ??

Das ist ja noch viel einfacher... Meine Variante würde eine Playlist abspielen...

Dann rufst Du die Funktion per on (click) auf und vergisst mal die Objekte.
In die Funktion solltest Du dann aber als erstes einen stopsound Befehl schreiben, um evtl noch laufende Sounds zu beenden. Du musst dann noch eine Liste erstellen, in der die Sounds den Zählern zugeordnet sind.



on (click)
{
stopsound ([current_soundfile])

if_num (music_counter;<10) ---> wurde das letzte Stück schon gespielt ?
setnum (music_counter;+1) ---> wenn nicht, dann Zähler +1

if_num (music_counter;10)
setnum (music_counter;0) ---> wenn es von Vorne anfangen soll


if_num (music_counter;1)
setstring (current_soundfile;sound_1.ogg)
if_num (music_counter;2)
setstring (current_soundfile;sound_2.ogg)
if_num (music_counter;3)
setstring (current_soundfile;sound_3.ogg)
if_num (music_counter;4)
setstring (current_soundfile;sound_4.ogg)

usw...

playsound ([current_soundfile])

}

Du kannst natürlich auch statt der Stringvariablen current_soundfile gleich die Namen und den playsound Befehl einsetzen, dann must Du aber für den Stopsound Befehl die Liste auch nochmal schreiben.

Gruß

Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

kraeftling
PaC-DK Newby
Posts: 14
Joined: 05 Mar 2015, 17:19
Location: Ukraine

Re: Omnitotem

Post: # 82651Post kraeftling
23 Sep 2015, 11:07

Vielen Dank! :thumbup:

kraeftling
PaC-DK Newby
Posts: 14
Joined: 05 Mar 2015, 17:19
Location: Ukraine

Re: Omnitotem

Post: # 82652Post kraeftling
23 Sep 2015, 12:02

Noch mal eine Kleinigkeit bezüglich Syntax zu erklären: wie füge ich if-then-loop innen eines existierenden if-loops (also, nested ´if´ loop) ein? ZB ich möchte für jeden State des Objektes den obengenannten Code einsetzen, d.h. für jeden State des Objektes soll es eine um eine andere Liste von Sounds handeln.

In LUA muß ich ´end´ am Ende jedes ´if-then´Loops platzieren.

Soll ich einfach mehrere ´if-then´ loops mitten einander stellen, ohne irgenwelchen End-syntax?

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Omnitotem

Post: # 82653Post japanhonk
23 Sep 2015, 18:06

Schon mal den Abschnitt über geschweifte Klammern gelesen ??


on (click )

{

if_obj ( ampel;1)
{
if_obj (knopf;2)
{
setobj (knopf;1)
setobj (ampel;2)
break()
}
if_obj (knopf;1)
function ( do_nothing )
}

}


If / Then gibt es übrigens ( syntaxmäßig ) nicht bei uns. Es gibt nur If...


Gruß

Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

kraeftling
PaC-DK Newby
Posts: 14
Joined: 05 Mar 2015, 17:19
Location: Ukraine

Re: Omnitotem

Post: # 82654Post kraeftling
23 Sep 2015, 19:25

Schon mal den Abschnitt über geschweifte Klammern gelesen ??
Haha, ja, tschuldigung, :oops: es fiel mir so schwer diese verdammte Grafik und Sprites zusammenzubasteln daß ich hab bloß den eigentlichen Code für später verschoben, aber jetzt ist schon (endlich!) gerade die Zeit die Docs zu lesen! :lol:
Es gibt nur If...
heh, aber jetzt sehe ich daß es ´break ()´ doch noch gibt!

Danke, das war sehr hilfreich denn ich hab LUA auch so chaotisch gelernt!i Ich schäme mich...

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Omnitotem

Post: # 82655Post japanhonk
23 Sep 2015, 21:33

"ich schäme mich"...


joa, ist ein Anfang... :ugly:

Aber Du weißt ja ... wer ohne Schuld ist, der werfe das erste Schwein....

war doch so, oder ??

Bei uns auf´m Land.... :mrgreen:


Das break ist in If Scripts schon wichtig. Da ja eine erfüllte Bedingung direkt nach einem If steht, wäre das ja nur eine Zeile.

Will man mehrere Zeilen ausführen, muss das in geschweifte Klammern. Damit dann die Abfrage dann aber auch wirklich aufhört und nicht mit dem "quasi-else" Teil weitergeht.

Gruß

Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

kraeftling
PaC-DK Newby
Posts: 14
Joined: 05 Mar 2015, 17:19
Location: Ukraine

Re: Omnitotem

Post: # 82657Post kraeftling
26 Sep 2015, 23:28

Ich hab im Spiel so einen total bescheuerten Kommentator, der muß manchmal was zum Spiel aussagen, wobei er aus der unteren rechten Ecke so reinschlitzt. Er sagt was und dann wieder sich nach rechts unten rausschiebt. (Vielleicht in bißchen kleiner wird er auch aufm Bildschirm.)
Wie soll ich besser diese Prozedur einstellen? Einen State und eine neue Animation für jede aussage? Wie viele States überhaupt kann ein Sprite haben?
Image

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Omnitotem

Post: # 82658Post japanhonk
27 Sep 2015, 08:28

Ähh...Sprites sind - genau, wie Bobs - hier nicht relevant.


Und wenn Du meine Erklärungen gelesen hast, müsste daraus hervorgehen, wie man mit Objekten umgeht und wieviele Zustände sie haben können.

1 Objekt kann 10 Zustände haben, jeder davon kann mit bis zu 30 Grafiken gefüllt und animiert werden.

Wo aktuell die Objektgrenze liegt, weiß ich nicht mehr, glaube , es war mal bei ca 2000 Objekten, kann aber auch höher sein heute...


Gruß

Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

Post Reply