27.11.2008, 16:48 | #1 (permalink) |
Registriert seit: 27.11.2008
Beiträge: 2
|
Kamera an Person in bewegendem Fahrzeug heften?
Hallo,
bin jetzt ganz neu mit Armed Assault eingestiegen, da ich vor langer Zeit mal OFP angespielt hatte und begeistert war. Habe mich dann auch recht schnell mit dem Editor auseinandergestetzt und landete schlussendlich beim erstellen eines Intros. Dazu hab ich eine Frage: Nach langen suchen bin ich leider immer noch nicht auf eine Lösung des Problems gestoßen, wie ich eine Kamera an eine Person hefte die in einem fahrenden oder fliegenden Vehicle sitzt. Immer wenn ich dies probiere bleibt die Kamera an einem festen Punkt stehen und das Gefährt verschwindet in der Ferne. Eine Kamera an das Vehicle selbst zu heften ist kein Problem und auch ausreichend erklärt. Habe schon mit Sachen wie cameraEffect rumgespielt, hatte aber keinen großen Erfolg. Das erstellen einer neuen Kamera funktionierte auch nicht, da sich das Vehicle bewegt und ich so keine Koordinaten habe. Gebe ich als target den Namen ein lande ich auch sonst irgendwo, aber nicht bei der Einheit die ich im Bild haben will. Muss man da vieleicht gar nicht den "Anheftbefehl" nehmen, oder hab ich vieleicht einfach nur ein Brett vor dem Kopf? Mir würde auch reichen bzw. gefallen in der Egoperspktive das Intro vortzusetzen, was beim nutzen der Missionskarte im Editor auch kein Problem darstellt (ist ja auch klar). Na ja, da das ganze nicht funktionierte, habe ich nach einer anderen Lösung geschaut und wollte dann im sich bewegenden Fahrzeug eine Kamerafahrt realisieren, bzw. eine Kameraeinstellung auf die Person richten. Geht aber auch nicht wirklich, da ja die Kamera auf das Vehicle fixiert ist. Gibt es für dieses Problem eventuell auch eine Lösung? Ich weiss, dass das eigendlich Sachen sind mit denen man nicht beginnt, möchte das aber trotzdem realisieren wenn das möglich ist. Muss übrigens noch sagen, das man auch als Leihe Aufgrund der verschiedensten Tutorials, Anleitungen und nicht zu vergessen des Guides "leicht" einsteigen kann und so schon einiges realisieren kann. Finde ich sehr gut und habe großen Respekt vor den Erstellern solcher Hilfsmittel. Gruß |
27.11.2008, 20:23 | #2 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Hier ein Beispiel, wie die Kamera einen Hilikopter folgt.
Die Kamera verfolgt aber jedes Objekt, welches du in die globale Varialble Kamera1ZielObjekt eingibst. z.B. Kamera1ZielObjekt = player Der Abstand der Kamera zum Objekt ist einstellbar im Skirpt: kamera1.sqf Code:
_Px = 0; //Position der Kamera neben dem Objekt _Py = -40; //Position der Kamera hinter dem Objekt (negativer Wert) _Pz = 2; //Position der Kamera über dem Objekt |
27.11.2008, 20:37 | #3 (permalink) |
Mach´s wie Vienna vorschlägt.
Im Editing Guide stehts ähnlich! 8.5 Kamera an ein Fahrzeug/Einheit heften - Seite 260
__________________
MR-MURRAY presents ArmA Editing Guide Deluxe Edition - English Version Download ArmA Editing Guide Deluxe Edition - German Version Download Visit me at Facebook! Mapfact Murray |
|
26.12.2008, 22:17 | #5 (permalink) |
Registriert seit: 11.04.2006
Beiträge: 52
|
Und genau da bin ich gerade, auf Seite 260 des Editing Guides, habe das dort aufgeführte kopiert und eingefügt, die relevanten Namen angepasst aber das Spiel zeigt mir eine Fehlermeldung an. Da es nicht schwer ist simples copy and paste zu betreiben habe ich keine Ahnung wo der Fehler liegt.
Das hier steht bei mir in der .sqs Datei: ~3 _camera camSetTarget osprey _camera camSetPos [0,0,0] _camera camSetFOV 0.700 _camera camCommit 0 @camCommitted _camera _camera cameraEffect ["internal","back"] ; Position der Kamera im/am/um das Fahrzeug _car = osprey ;Position der Kamera längs des Fahrzeugs (vorne/hinten/in) _dx = -6 ;Position der Kamera neben dem Fahrzeug (links/rechts/in) _dy = 0 ;Höhe der Kamera (unter/über/in) _dz = 2 #LOOP ;Die folgenden zwei Blöcke sind jeweils eine Zeile, was hier nicht möglich ist. _camera camSetTarget [(10 * sin (getdir _car))+(getpos _ car select 0), 10*cos (getdir _car)+(getpos _car select 1), (getpos _car select 2)] _camera camSetPos [(getpos _ car select 0) + _dx * sin (getdir _car) - _dy * cos (getdir _car), (getpos _car select 1) + _dx * cos (getdir _car) + _dy * sin (getdir _car), (getpos _car select 2)+_dz] _camera camSetFOV 0.900 _camera camCommit 0 @camCommitted _camera ;Um das Skript zu beenden, setzen wir eine Bedingung. Hier: Wenn unser Auto ;näher als 50 Meter an die Einheit (P1) kommt, soll die Szene beendet werden. ?P1 distance osprey < 50 : goto "Ende" goto "LOOP" #Ende P1 cameraEffect ["terminate","back"] camDestroy _camera exit Kann mir bitte jemand mitteilen was hier dran falsch ist? Laut Fehlermeldung steckt der Fehler (eine Klammer fehlt laut Meldung) irgendwo im zweiten Block. Vorschläge? |
27.12.2008, 19:58 | #6 (permalink) |
Jop!
Dein Vehicle heißt Osprey. Unten hast du aber _car! Da musst du dann schon ändern Viele Grüße Mr-Murray
__________________
MR-MURRAY presents ArmA Editing Guide Deluxe Edition - English Version Download ArmA Editing Guide Deluxe Edition - German Version Download Visit me at Facebook! Mapfact Murray |
|
28.12.2008, 13:05 | #7 (permalink) |
Registriert seit: 11.04.2006
Beiträge: 52
|
Hallo nochmal,
danke Mr-Murray für deine schnelle Hilfe, jedoch funzt das ganze noch immer nicht. Ich habe alle _car in _osprey umgeschreiben, die Fehlermeldung allerdings die schon vorher kam hat sich nicht geändert, sie zeigt weiterhin an das irgendwo eine Klammer fehlt. Ich poste jetzt nochmal das aktuelle Script in der Hoffnung so den Fehler leichter zu identifizieren. _camera camSetTarget osprey _camera camSetPos [0,0,0] _camera camSetFOV 0.700 _camera camCommit 0 @camCommitted _camera _camera cameraEffect ["internal","back"] ; Position der Kamera im/am/um das Fahrzeug _car = osprey ;Position der Kamera längs des Fahrzeugs (vorne/hinten/in) _dx = -6 ;Position der Kamera neben dem Fahrzeug (links/rechts/in) _dy = 0 ;Höhe der Kamera (unter/über/in) _dz = 2 #LOOP ;Die folgenden zwei Blöcke sind jeweils eine Zeile, was hier nicht möglich ist. _camera camSetTarget [(10 * sin (getdir _osprey))+(getpos _ osprey select 0), 10*cos (getdir _osprey)+(getpos _osprey select 1), (getpos _osprey select 2)] _camera camSetPos [(getpos _ osprey select 0) + _dx * sin (getdir _osprey) - _dy * cos (getdir _osprey), (getpos _osprey select 1) + _dx * cos (getdir _osprey) + _dy * sin (getdir _osprey), (getpos _osprey select 2)+_dz] _camera camSetFOV 0.900 _camera camCommit 0 @camCommitted _camera ;Um das Skript zu beenden, setzen wir eine Bedingung. Hier: Wenn unser Auto ;näher als 50 Meter an die Einheit (P1) kommt, soll die Szene beendet werden. ?P1 distance osprey < 50 : goto "Ende" goto "LOOP" #Ende P1 cameraEffect ["terminate","back"] camDestroy _camera exit Die Fehlermeldung lautet folgendermaßen: _camera camSetPos [(getPos _ |#| osprey select 0) + _dx * sin (getdir _os...´_osprey...´ Error Fehlende ) Entschuldigt wenn ich euch mit solchen Belanglosigkeiten nerve =( EDIT Hab da noch ein Anliegen: und zwar wieso wird einmal _osprey und ein mal _ osprey geschrieben (also mit Leerzeile dazwischen)? Ich hab experiment um alle _ ospreys ohne leerzeile geschrieben. Tatsächlich verschwand die oben genannte Fehlermeldung, jedoch wurde sie kurz vor dem Eintritt der neuen Kamerasequenz durch eine neue ersetzt -.- Geändert von GAanimal (28.12.2008 um 13:13 Uhr). |
28.12.2008, 15:28 | #8 (permalink) |
Du hast ein ganz anderes Problem! Du kennst den Unterschied zwischen globaler und lokaler Variable nicht!
Wie heißt dein fhz nun? Osprey oder _Osprey??? Also bitte entsprechend anpassen, dann klappt auch
__________________
MR-MURRAY presents ArmA Editing Guide Deluxe Edition - English Version Download ArmA Editing Guide Deluxe Edition - German Version Download Visit me at Facebook! Mapfact Murray |
|
01.01.2009, 19:36 | #10 (permalink) |
Registriert seit: 11.04.2006
Beiträge: 52
|
Es ist bei meinem Camscript ein Fehler aufgetaucht der mir völlig suspect erscheint. Ich habe die funktionierende Kamerasequenz kopiert und unter drangehängt, die Kameraposition editiert und mit einer Bedingung verknüpft.
Jedoch ist die zweite Kamerasequenz irgendwie fehlerhaft. Sie sieht wie folgt aus: #fortsetzung ;KAMERA AN FAHRZEUG SEQUENZ ZWEI _camera camSetTarget osprey _camera camSetPos [0,0,0] _camera camSetFOV 0.700 _camera camCommit 0 @camCommitted _camera _camera cameraEffect ["internal","back"] ; Position der Kamera im/am/um das Fahrzeug _car = osprey ;Position der Kamera längs des Fahrzeugs (vorne/hinten/in) _dx = 45 ;Position der Kamera neben dem Fahrzeug (links/rechts/in) _dy = -10 ;Höhe der Kamera (unter/über/in) _dz = 5 #LOOOP ;Die folgenden zwei Blöcke sind jeweils eine Zeile, was hier nicht möglich ist. _camera camSetTarget [(10 * sin (getdir osprey))+(getpos osprey select 0), 10*cos (getdir osprey)+(getpos osprey select 1), (getpos osprey select 2)] _camera camSetPos [(getpos osprey select 0) + _dx * sin (getdir osprey) - _dy * cos (getdir osprey), (getpos osprey select 1) + _dx * cos (getdir osprey) + _dy * sin (getdir osprey), (getpos osprey select 2)+_dz] _camera camSetFOV 0.700 _camera camCommit 0 @camCommitted _camera ;Um das Skript zu beenden, setzen wir eine Bedingung. Hier: Wenn unser Auto ;näher als 50 Meter an die Einheit (P1) kommt, soll die Szene beendet werden. ?esgehtweiter : goto "weiter" goto "LOOOP" #weiter Das Problem: Wenn die gepostete Sequenz beginnt hängt die Kamera nicht am Osprey sondern fixiert irgendeinen Punkt über dem Meer. Sie folgt dem Ding einfach nicht was ja eigendlich aufgrund des _camera camSetTarget osprey garnicht gehen kann. Kann jemand helfen? Schöne Grüße und frohes neues Jahr |
10.01.2009, 18:11 | #11 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Du musst das ordentlich programmieren.
.) die Variablen für das zu verfolgende Objekt und die Positionen der Kamera zum Objekt. .) die Kamera erstellen. .) das zu verfolgende Objekt der Kamera zuweisen. .) die Nachstellungsschleife der Kamera zum zu verfolgenden Objekt. .) die Kamera entfernen. In diesem Beispiel verfolgt die Kamera 10 Sekunden ein Objekt. Verfolgerkamera.sqs Code:
;zu verfolgendes Objekt _objekt = <hier Namen des zu verfolgenden Objekts anführen> ; Position der Kamera neben dem Objekt _Px = 0 ; Position der Kamera hinter dem Objekt (negativer Wert) _Py = -40 ; Position der Kamera über dem Objekt _Pz = 2 ;Kamera erstellen ShowCinemaBorder false _camera ="camera" camCreate [0,0,0] _camera CameraEffect ["internal", "back"] _camera camSetFOV 1 ;von der Kamera zu verfolgendes Objekt festlegen _camera camSetTarget _objekt; _zeit = time + 10 ;Schleife für die Dauer der Bedingung #verfolgen ;Kamera dem Objekt nachstellen _camera camSetPos (_objekt modelToWorld [_Px,_Py,_Pz]) _camera camCommit 0 @camCommitted _camera ? time < _zeit : goto "verfolgen" ;Kamera entfernen _camera CameraEffect ["terminate", "back"] camDestroy _camera Für eine weitere Verfolgung direkt nach der Schleife eine zweite Schleife einfügen. Es kann zuvor auch ein anderes zu verfolgendes Objekt angeführt werden. |
Stichworte |
kamera |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Kamera | lestatxtc | Editing | 12 | 02.06.2008 17:56 |
kamera | Mr.Cleaner | Editing | 3 | 09.12.2006 18:02 |