Habt ihr nen Schatten?!

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
Fugu
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 168
Registriert: 04.10.2005, 00:51
Kontaktdaten:

Habt ihr nen Schatten?!

Beitrag von Fugu »

...oder zumindest ne Ahnung bzw. Erfahrung ob man SchattenMaps in AGS einbauen kann? Sprich nen transparenten Schattenlayer der über über character und background liegt...Bisher hab ich nur herausbekommen, wie man im Hi-ColorModus Transparenzwerte bei Objekten bzw Charaktären einstellen kann.
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Du könntest einfach ein bildschirmgroßes Objekt benutzen.
Für unterschiedlich starke Schatten nimmst Du dann einfach mehrere Objekte. Wichtig ist, dass die Baseline des Objektes ganz am unteren Bildrand ist, damit es über allen anderen dargestellt wird.
Allerdings verlangt das AGS performancemäßig einiges ab.

Zusätzlich kann man Objekte und Sprites auch mit Hilfe der Regions und deren Lichtwerten abdunkeln.

So lassen sich durchaus schöne Effekte erzielen.

Nachtrag: Es gibt auch noch den Befehl SetAmbientTint, damit müsste einiges zu machen sein.
Use gopher repellent on funny little man
Benutzeravatar
Fugu
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 168
Registriert: 04.10.2005, 00:51
Kontaktdaten:

Beitrag von Fugu »

..danke für den Tip!
Hatte mir das auch schon so in der Art überlegt...naja muss mal etwas mit dem Effekt herumexperimentieren, das mit den Performanceeinbußen ist natürlich so ne Sache...
Gibts Beispiel-AGSGames, die solche Effekte bereits benutzen?
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Fightmeyers NoisyMountain enthält eine Dunkelkammer, soweit ich mich erinnere, war das rote Licht mit der selben Methode sehr schön umgesetzt.
Use gopher repellent on funny little man
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

Stimmt. Ich habe dort mit dem SetAmbientTint Befehl gearbeitet. Der verändert die Farbwerte aller Objekte und Charaktere eines Raumes. Ich weiß nicht, in wiefern man den nur auf ein bestimmtes Objekt oder Char anwenden kann. Bei mir hats damals gepaßt, weil ja eh alles eingefärbt werden sollte.
Benutzeravatar
Fugu
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 168
Registriert: 04.10.2005, 00:51
Kontaktdaten:

Beitrag von Fugu »

interessant...mich würden halt besonders Schattenmaps interessieren, die nicht durchgehend nur den Farbwert verändern, sondern, wie zB bei Schatten unter Bäumen, hier und da Licht durch lassen...aber das müsste ja prinzipiell mit Objekten zu regeln sein...solang es net die Performance tötet, und einigermaßen sauber aussieht...

da fällt mir ein..wie sieht es eigentlich bei Charaktären aus? Also nicht- transparente Charas mit nem transparenten Schattenspot darunter...jemand ne Ahnung?
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Entweder einen zweiten Charakter, der dem ersten folgt, oder ein Objekt (dann müßte dieses Objekt allerdings in jedem Raum gesondert existieren).

Mit einem Objekt würde das ganze so aussehen:
In der repeatedly_execute:

Code: Alles auswählen

if (player.Room==2) {
  CallRoomScript(50);
}
else if (player.Room==3 || player.Room==4) {
  CallRoomScript(30);
}
Im Room Script:

Code: Alles auswählen

function on_call(int value) {
  oSchatten.Transparency=value;
  oSchatten.X=player.x-15;
  oSchatten.Y=player.y+5;
  oSchatten.Baseline=player.y-1;
}
In jedem Raum muss ein Objekt mit Namen Schatten existieren, der Parameter in der rep_ex legt die Transparenz für die Räume fest. (Natürlich kann man das auch anders lösen. Ich bin mir auch nicht sicher, ob Objekte in unterschiedlichen Räumen den gleichen Namen haben dürfen, wenn nicht, nennt man die Objekte halt Schatten1, Schatten2 usw.)

Mit einem Charakter wäre es noch einfacher, schau dir den Befehl Character.FollowCharacter an. Du musst nur dem Schattencharakter Transparenz geben und seine Baseline auf 0 setzen.

Es heißt übrigens Charaktere. ;)
Use gopher repellent on funny little man
Benutzeravatar
Fugu
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 168
Registriert: 04.10.2005, 00:51
Kontaktdaten:

Beitrag von Fugu »

...wiedermal vielen dank!

wenn ich den Charakterschatten über Objekte löse, könnte ich so jedoch auch der jeweiligen Raumbeleuchtung angepasst die Schattenposition/form variieren (zB Schatten an der Wand oder Boden...ob das jedoch insgesamt gut aussieht...muss man sehn).

danke jedenfalls

Charaktere..sheise stümmt ja :oops:
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Die Form/Position des Schattens kannst Du auch variieren, wenn Du einen Charakter als Schatten nimmst.
Mit cSchatten.ChangeView(x); kannst Du den Schatten ändern.

Auch noch möglich wäre es mit folgendem:

Code: Alles auswählen

function drawShadow(int width, int height, int transparency) {
  DynamicSprite* shadow = DynamicSprite.CreateFromExistingSprite(10);  // 10=Schattensprite
  shadow.Resize(width, height);
  RawDrawImageTransparent(player.x-width/2, player.y-height/2, shadow.Graphic, transparency);
  shadow.Delete;
}
In der rep_ex:

Code: Alles auswählen

  RawSaveScreen();
  drawShadow(...);
  RawRestoreScreen();
Keine Ahnung, wie gut das hinhaut, ist mehr als Denkanstoß gedacht.
Use gopher repellent on funny little man
Benutzeravatar
Fugu
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 168
Registriert: 04.10.2005, 00:51
Kontaktdaten:

Beitrag von Fugu »

khrismuc du bist der kuhlste...danke!! :D
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

NP, berichte mal, was hinhaut, wenn Du rumprobiert hast, ich hab das alles mehr ausm Gedächtnis hingeschrieben, wahrscheinlich muss das meiste noch bissl verändert werden, damit es auch funzt, vor allem die letzte Methode.
Use gopher repellent on funny little man
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

MIch würde dann auch mal was downloadbares interessieren, wo man kurz n Eindruck bekommt, wie das ganze dann in echt aussieht....wennn das möglich ist...
Benutzeravatar
Fugu
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 168
Registriert: 04.10.2005, 00:51
Kontaktdaten:

Beitrag von Fugu »

werds mal ausprobiern...sobald ich was hab zeig ichs
Benutzeravatar
Find dA real
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 233
Registriert: 28.12.2005, 00:16

Beitrag von Find dA real »

ist ja schon bißchen her - aber: hast du es fertig? würde mich interessieren...
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

Nu ja, bei mir sieht's so aus...
---------------------------
Illegal exception
---------------------------
An exception 0xC0000005 occured in ACWIN.EXE at EIP = 0x004053D0 ; program pointer is +1004, ACI version 2.71.892, gtags (6,83)

AGS cannot continue, this exception was fatal. Please note down the numbers above, remember what you were doing at the time and notify CJ on the Tech forum.

in Global script (line 5)
from Global script (line 16)


Most versions of Windows allow you to press Ctrl+C now to copy this entire message to the clipboard for easy reporting.
---------------------------
OK
---------------------------
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Antworten