PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [DynRPG] DynPEC



Kazesui
31.12.2013, 13:22
Dyn Picture Extended Commands ist einen Plugin der euch ein bisschen mehr Kontrolle über dem Pictures gibt.
Durch Kommentar Befehle könnt ihr jetzt fast alle Parameter des Picture befehl mit variabeln steuern. Ihr könnt jetzt auch das Bild horizontal spiegeln, und picture ids von bilder tauschen.
Es ist jetzt auch möglich ein ganzes Spritesheet zu laden und dann einzelnden Sprites effizient mit Pictures anzeigen zu lassen. Damit könnte man auch den Picture Folder viel übersichtlicher machen in dem man Spritesheets daraus macht, statt ein Tausende von Bilder.

Anleitung gibts im Readme file. Die befehle (in englisch) könnt ihr aber schon hier schauen:


@pec_set_color
(number) parameter#1: picture id
(number) parameter#2: red percentage
(number) parameter#3: green percentage
(number) parameter#4: blue percentage
(number) parameter#5: saturation percentage
/ Allows you to set the color component percentages of the
picture

@pec_get_color
(number) parameter#1: picture id
(number) parameter#2: variable id for red percentage
(number) parameter#3: variable id for green percentage
(number) parameter#4: variable id for blue percentage
(number) parameter#5: variable id for saturation percentage
/ Returns the current color component values to designated
variables. If you don't need a component, simply set the
parameter to 0

@pec_set_position
(number) parameter#1: picture id
(number) parameter#2: x coordinate
(number) parameter#3: y coordinate
/ Allows you to set the position of the picture

@pec_get_position
(number) parameter#1: picture id
(number) parameter#2: variable id for x coordinate
(number) parameter#3: variable id for y coordinate
/ Returns the current coordinates into designated variables

@pec_set_transparency
(number) parameter#1: picture id
(number) parameter#2: transparency percentage
/ Sets both upper and lower transparency of the picture

@pec_get_transparency
(number) parameter#1: picture id
(number) parameter#2: variable id for transparency percentage
/ returns the current transparency percentage to the
designated variable

@pec_set_magnification
(number) parameter#1: picture id
(number) parameter#2: magnification percentage
/ sets the magnification percentage of the picture

@pec_get_magnification
(number) parameter#1: picture id
(number) parameter#2: variable id for magnification percentage
/ returns magnification percentage to designated variable

@pec_set_rotation_angle
(number) parameter#1: picture id
(number) parameter#2: angle
/ sets the angle of the picture

@pec_get_rotation_angle
(number) parameter#1: picture id
(number) parameter#2: variable id for angle
/ returns the angle of the picture to designated variable

@pec_set_effect_strength
(number) parameter#1: picture id
(number) parameter#2: effect strength
/ sets the effects strength (rotation / wavering)

@pec_get_effect_strength
(number) parameter#1: picture id
(number) parameter#2: variable id for effect strength
/ Returns the effect strength to designated variable

@pec_is_flipped
(number) parameter#1: picture id
(number) parameter#2: switch id
/ returns on to selected switch if picture been flipped
otherwise selected switch is set to off

@pec_flip_picture
(number) parameter#1: picture id
/ flips the picture horizontally

@pec_create_sprite_sheet
(number) parameter#1: picture id
(number) parameter#2: frame width
(number) parameter#3: frame height
/ loads the full picture into memory as a spritesheet, and
loads the first sprite into the picture. The dimensions of
the sprites must be evenly dividable by the full size of
the image!

@pec_next_frame
(number) parameter#1: picture id
/ loads sprite to the right of the current sprite in the
spritesheet. If end of spritesheet has been reached, it
loops back to the first sprite of that row

@pec_jump_to_frame
(number) parameter#1: picture id
(number) parameter#2: column
(number) parameter#3: row
/ loads sprite directly based on specified row and column

@pec_destroy_sprite_sheet
(number) parameter#1: picture id
/ unloads spritesheet associated with the picture from
memory

Den Download zum Plugin könnt ihr hier finden:
Download (http://rpgmaker.net/engines/rt2k3/utilities/57/)

http://rpgmaker.net/media/content/users/3355/locker/dynpec.png

G-Brothers
04.01.2014, 17:06
Wieso entdecke ich das erst jetzt? D:

Zum Schluss werfe ich noch eine Idee in die Runde, zum Thema "Animieren mit Pictures"
http://www7.pic-upload.de/28.12.13/em137thax8tt.pngEin Picture als Sprite-Template. :bogart: Sprich: Beim normalen Show Picture spielt es die Animation im Loop ab, auch bei Move Picture, was der eigentliche Clou wäre.
Wie beim CharExpand-Patch würde man die Frame-Aufteilung und Geschwindigkeit mit dem Namen der Datei regeln.
Es ist wirklich nicht mehr als eine kleine Idee, die ich teilen wollte. Um genau zu sein, würden mir noch sehr viele Andere einfallen, aber diese hier hatten wir wahrscheinlich noch nicht. :DNur drei Tage später wird etwas Ähnliches released. Zufälle gibt's! :O Aber ich merke schon, dass damit nur ein Picture auf einmal berechnet werden kann (anstatt benötigte 8 ), und Skalierungen nicht möglich sind.
Sehr schade, das hätte ich aus performancetechnischen Gründen echt gebrauchen können.

Kazesui
04.01.2014, 19:25
Aber ich merke schon, dass damit nur ein Picture auf einmal berechnet werden kann (anstatt benötigte 8 )
Wie meinst du das? Es soll gut möglich sein ein Spritesheet pro Bild zu machen, und dann auf diese "gleichzeitig" zu arbeiten.


und Skalierungen nicht möglich sind
Bug. Ist jetzt behoben geworden.

Oktorok3
04.01.2014, 19:38
Ich habe mal so einiges durchgetestet. Fast alles funktioniert soweit tadellos.
Die Picture-Sättigung und Effect strength funktionieren leider nicht.

Ich hoffe, auch das ist leicht zu beheben.

Kazesui
04.01.2014, 19:53
Sicher @picture-sättigung? Funktioniert bei mir.
Effect Strength war allerdings nicht drin, stimmt. Soll jetzt auch behoben sein

Oktorok3
04.01.2014, 20:01
Oh, stimmt! Ich habe da wohl eine falsche Zahlenvarianz verwendet, nach der Denkweise 0=Grau.
Schön, das der Rest auch schon behoben sein müsste. Das ging schnell!

EDIT: Okay, das "sein müsste" kann gestrichen werden. Nach meinem Test ist "sein müsste" ein "ist".

G-Brothers
04.01.2014, 20:52
Hoppla, mein Fehler. Hatte ein paar IDs zum Auswechseln übersehen. xP

Bug. Ist jetzt behoben geworden.
Vergiss, was ich geschrieben hab: Dieses Plugin wird in meinem Projektordner bleiben. :hehe: Jetzt habe ich aber nur noch das Problem, dass die Version mit dem Bugfix angeblich nicht mit meiner Version vom DynRPG kompatibel ist.
Ich hab jedenfalls die aktuellste Version, die man kriegen kann.

Cherry
04.01.2014, 21:05
Welche? Die ganz aktuellste ist v0.20, da sind wir aber noch am Testen drum ist die nur im Forum verlinkt. Es sollte aber nach Möglichkeit noch keiner Plugins machen die nur mit 0.20 gehen... eben deswegen.

G-Brothers
04.01.2014, 21:17
Es ist die von der Hauptseite (http://cherrytree.at/cms/lang/de/download/?did=20). Zum Rumprobieren habe ich das RPG_RT und den dynloader aus dem Testprojekt zum Plugin rüberkopiert. Die haben laut den Eigenschaften die v0.20 intus.

Edit:

-@pec_next_frame
Klickt man bei dem Beispielmensch so lange weiter, bis das Ende des Sets erreicht ist, springt der Frame nicht wieder zum 1.Sprite (ReadMe), sondern es geht ins Nichts weiter!Das liegt nicht am Plugin, sondern an einer Variabel, die nicht zurückgesetzt wird. :D

Oktorok3
04.01.2014, 21:17
Verbesserungensvorschläge:
-@pec_flip_picture
Man sollte am besten den Flipstatus per Zahl (0/1) (auch Variable) bestimmen können, da man dann auch prüfen(bzw. besser bestimmen) kann, ob sich das Bild im gespiegelten Zustand befindet, oder nicht.
-Wäre gut, wenn auch vertikales Spiegeln möglich wäre.

Bugs:
-@pec_flip_picture
(Zudem scheint auch dort ein Bug zu sein->Beispielprojekt->Magier mal öfter anklicken)
Download Testprojekt (http://share.cherrytree.at/showfile-12534/dynpec_test.zip)

-@pec_next_frame
Klickt man bei dem Beispielmensch so lange weiter, bis das Ende des Sets erreicht ist, springt der Frame nicht wieder zum 1.Sprite (ReadMe), sondern es geht ins Nichts weiter!

Kazesui
05.01.2014, 00:46
Ja, es gab anscheinend ein Problem mit dem flip picture. Lag daran dass ich die RPG::Image pointers vom Pictures mit neue RPG::Image pointers ausgewechselt habe. Darf man anscheinend nicht, weil das wird nach einem Erase Picture zum ursprünglichen pointer rückgesetzt, egal ob es diesem Pointer noch gibt oder nicht. Vielleicht aber nicht wirklich ganz komisch dass der maker sich so verhält, hatte aber gehofft dass dies nicht der fall wäre.
Ich habe jetzt das @pec_swap_picture_id befehl rausgemacht, weil der nicht mehr so praktisch ist wenn ich die Pointers der Bilder nicht einfach tauschen kann.
Problem is aber jetzt behoben, und dein Test Projekt sollte jetzt einwandfrei laufen.

@pec_is_flipped wurde dazu gelegt damit man sehen kann ob das Bild geflippt wurde oder nicht. Dazu wurde auch ein menge andere Befehle dazugefügt um Werte des Bild lesen zu können.

wegen pec_next_frame:
Wenn du genauer am event des beispiel Menches guckts, merkst du dass pec_jump_to_frame benutzt wurde, und nicht pec_next_frame. Im beispiel wird pec_jump_to_frame von Variablen gesteuert, und versucht am ende Sprites zu holen die einfach nicht existieren. Desshalb siehst du da auch nichts mehr.

Der Plugin wurde jetzt auch mit das alte SDK geschrieben, damit ältere Versionen auch das Plugin benutzen kann.

Oktorok3
05.01.2014, 15:17
EDIT: @next frame-> stimmt, mein Fehler!

Okay! Das sieht schon wirklich gut aus. Ich habe jede der neuen Funktionen bereits mal getestet und sie funktionieren alle fehlerlos! Danke Kazesui, das macht das ganze schon wieder wertvoller!

Noch ein paar Dinge und Verbesserungsvorschläge, die mir bei meinen Tests aufgefallen, oder in den Sinn gekommen sind:

(@Cherry -> Ich verstehe. Dann muss ich das freilich von der Liste streichen...)
-Würde es auch gehen, dass du einstellst, beliebig viele Befehle in einem einzigen Kommentar abzufragen? Das wäre natürlich noch komfortabler und ginge dann auch schneller, wenn man mal irgendwo (bei Abfrage(get) oder Bestimmung(set)) mal etwas ändern will - seien es Zahlen oder Variablennummern. Klar geht es auch so, aber falls das keine großen Umstände macht, dann wäre das erfreulich!

-@pec_get_rotation_angle
Bei einem Picture, das sich die ganze Zeit rotiert, wird die gesamte Rotation abgefragt (wie viel Grad sich das Picture bisher -jede Rotation miteinbezogen- gedreht hat). Das ist natürlich auch nicht schlecht, wenn man das abfragen kann. Doch vielleicht sollte da noch eine Parameterabfrage von nur 360° insgesamt dazu (z.B. Uhrzeit->45°=3Uhr; Hebelstellung -wenn auf 30°- Endboss-Tür geöffnet...). Denke, das wäre auch sinnvoll.

-Kannst du eventuell auch eine Funktion zum Stoppen einer aktuellen Picturebewegung und eine zum Weiterbewegen einbauen? Das wäre (selbstverständlich, wie ich denke) ebenfalls äußerst praktisch (Also: Pause; Play)!

(PS: Weiß nicht, ob du das übersehen hast, aber ist dir auch die vertikale Spiegelung möglich einzubauen?)

Cherry
05.01.2014, 15:49
Mehrere Befehle in einem Kommentar sind DynRPG-seitig nicht vorgesehen. Man hat zwar die Möglichkeit, den ganzen Kommentar auszulesen und zu verarbeiten, man könnte also theoretisch händisch im Plugin was parsen (normal bekommt das Plugin nämlich den Befehl und die Parameter schon fertig geparst und im Falle von V- und N-Präfixen schon dereferenziert), aber das ist umständlich und nicht wirklich sinnvoll weil dann die Befehle im Kommentar auch alle zu einem Plugin gehören müssten, und so weiter...

Kazesui
05.01.2014, 17:37
Die Grad gehen nur über 360 wenn man der Rotations Effekt benutzt (statt das Kommentar Befehl), und es ist da wirklich nicht schlimmer als dass du einfach mod 360 machen kannst um die Grad von 0 bis 359 gehen zu lassen.

Vertikale Spieglung wäre möglich, aber mag ich grad nicht reinmachen aus grunde ähnlich dazu wieso ich @pec_swap_picture_id rausgenommen habe.
Anhalten einer Picturebewegung hab ich auch nicht vor zu machen, weil da wirds wahrscheinlich besser sein einfach selber das Bild mit Variablen zu steuern.

Oktorok3
05.01.2014, 19:42
Hm, in Ordnung.
Na okay. Schade eigentlich um die vertikal und ID-swap Funktion, aber wenn das technisch zu problematisch und buganfällig ist. Na wer weiß, vielleicht kommt das ja noch.

G-Brothers
05.01.2014, 21:37
Ich feiere gerade die Spritesheet-Funktionen. Die ist echt wie gemacht für meine aktuelle Baustelle. Dank diesem Plugin fällt nun die Sorge weg, dass mein Gebastel auf schwächeren Rechnern ruckeln könnte.
Vielen Dank dafür. Du hast einen armen Irren eifrigen Makerer damit sehr glücklich gemacht. :hehe:

BDraw
24.01.2014, 22:45
Ein wunderbares Plugin. (: Das ist kompatibel mit dem PicturePointer-Patch, oder? Im Zusammenspiel sollte es damit recht komfortabel sein, selbst komplexe Anzeigen ziemlich leicht anzuzeigen. Außerdem ermöglicht das Plugin endlich auch so Gimmicks wie den Spieler selbst manche Farben einstellen zu lassen, á la den älteren Tales of- oder Final Fantasy-Spielen.

Eine andere kurze Frage allerdings:
Es wäre nicht etwa möglich, dem Maker zu sagen, dass er ein Bild nur horizontal vergrößern (also praktisch in die Breite ziehen) soll, oder? Für Balkenanzeigen wäre das unglaublich praktisch.

Kazesui
25.01.2014, 00:38
Ich glaube dass es mitm PPP kombinierbar ist, ja. Wegen Bild nur horzontal vergrößeren, möglich wärs, aber wäre um einiges mehr aufwendig als das meiste andere das es schon in diesem Plugin gibt. d.h. ob ich das reinmache, dann wirds wahrscheinlich ein bisschen dauern.

Stray
28.10.2015, 18:18
Hey, ich bräuchte das Plugin. Allerdings ist der Downloadlink nicht mehr aktiv.

MarcL
28.10.2015, 18:40
Hoffe das ist alles ^^; habs nur schnell aus meinem Projektordner rauskopiert...
22868

Stray
28.10.2015, 19:08
Du bist meine Rettung, danke. :D