Kameraflug?

Posted By: Disaster

Kameraflug? - 02/20/07 11:27

Hi
Ich möchte einen Kameraflug durch mein Level erstellen
Macht man das mit Path's oder gibt es da eine andere Möglichkeit?
Und wie funktioniert das dann? Ich habe mir schon ein Tutorial über pathfinding durchgelesen, weiß aber nicht wie ich das auf eine View anwenden könnte
Bitte helft mir

mfg
Disaster
Posted By: Artus

Re: Kameraflug? - 02/20/07 11:37

Ja, mit Pfaden kann man das wohl am besten verwirklichen, um die Camera dann darauf zu bekommen einfach die Entity, die den Pfad entlang fliegt mit my.invisible=on; unsichtbar machen und mit vec_set den Pan-Vektor und den Positions-Vektor auf die Camera übertragen.

...
vec_set(camera.x,camera_entity.x); //Position
vec_set(camera.pan,camera_entity.pan); //Ausrichtung
...
Posted By: P_G

Re: Kameraflug? - 02/20/07 13:50

Hi,

Wirf einen Blick auf das folgende Beispiel:

Kameraflug

Gruß,

P_G
Posted By: Disaster

Re: Kameraflug? - 02/20/07 20:19

ich habe mal den Beispielcode ausprobiert, allerdings erkennt die engine den pfadname beim start nicht und meldet einen error
und auch sonst werden errors gemeldet das invalid arguments im code enthalten sind

Wie genau bringe ich eigentlich ein model dazu einem pfad zu folgen? in dem tut das ich gelesen hab stand nur wie ich einen pfad erstelle
Posted By: nz2004

Re: Kameraflug? - 06/15/07 09:56

Ich habe dassselbe Problem....also irgendwie will das nicht

function camera_path(path_000)
{
me = ent_create(NULL,nullvector,NULL);
path_set(me,path_000);
var dist = 0;
var vLastPos[3];
var vDir[3];
while(1)
{
path_spline(me,camera.x,1);
dist += 5*time_step;
vec_diff(vDir,camera.x,vLastPos);
vec_to_angle(camera.pan,vDir);
vec_set(vLastPos,camera.x);
wait(1);
}
}

Der Pfad heißt path_000. Ansonsten muss ich doch nichts ändern, oder? Bekomme aber immer eine Fehlermeldung, "path_spline(me,camera.x,1)" sei eine "bad function"

??

Könnt ihr mir da weiterhelfen?
Posted By: rvL_eXile

Re: Kameraflug? - 08/28/07 20:25

Probiert mal das aus... Macht einfach einen Wüfel im MED (muss nicht geskinnt sein), den ladet ihr in euer Level.
Dann setzt ihr einfach mal einen Path im WED.
Jetzt Inkludiert ihr das Script im WED.

Code:

//Set the Values in the WED / Object Properties
//skill1: Speed 10
//skill2: Nodes 10
action follow_Path
{
my.light=on;



// find first waypoint
var Node;
Node = path_scan(me,my.x,my.pan,vector(360,180,200));
if(Node == 0){return;} // no path found

//get the nodes position
var Node_pos[3];
path_getnode(my,Node,Node_pos,null);

var DistToNode;
var myang[3];
var Rotation;

while(1)
{

//////////////////////////////////////////
//Path Following
//////////////////////////////////////////
DistToNode = vec_dist(Node_pos,my.x);

// near target? Find next waypoint of the path
if(DistToNode < 10)
{
Node = path_nextnode(my,Node,1);
if(Node == 0){Node = 1;}
path_getnode(my,Node,Node_pos,null);
}

vec_set(temp,Node_pos);
vec_sub(temp,my.x);
vec_to_angle(myang,temp);

vec_set(temp,camera.x);
vec_sub(temp,my.x);
vec_to_angle(my.pan,temp);
/////////////////////////////////////////

my.skill21 = ((180-abs(Rotation))/180)*my.skill1;

vec_for_angle(my.skill24,myang);
my.skill24 *= my.skill21;
my.skill25 *= my.skill21;
vec_scale(my.skill24,time_step);

c_move(me,nullvector,my.skill24,ignore_passable|ignore_passents);

wait(1);
}
}



Wenn ihr das geatn habt, müsst ihr eine Function für die Cam setzen. Probiert dies mal mit einem Entity Pointer und gebt in der Function ein Cam=my;

Dann dem Camera Model welches ihr eingefügt habt, die Action und den Path zuweisen. Und nätürlich die Skills, SKill1=Speed(WIe schnell die Cam fliegen soll) Skill2=Pathnodes(Gesamtzahl der Nodes die euer Path hat, hier eintragen)

Hoffe ich konnte euch damit was helfen...

cYa Sebastian
Posted By: jermy

Re: Kameraflug? - 08/29/07 05:34

Quote:

Ich habe dassselbe Problem....also irgendwie will das nicht

function camera_path(path_000)
{
me = ent_create( NULL ,nullvector,NULL);
path_set(me,path_000);
var dist = 0;
var vLastPos[3];
var vDir[3];
while(1)
{
path_spline(me,camera.x,1);
dist += 5*time_step;
vec_diff(vDir,camera.x,vLastPos);
vec_to_angle(camera.pan,vDir);
vec_set(vLastPos,camera.x);
wait(1);
}
}

Der Pfad heißt path_000. Ansonsten muss ich doch nichts ändern, oder? Bekomme aber immer eine Fehlermeldung, "path_spline( me ,camera.x,1)" sei eine "bad function"

??

Könnt ihr mir da weiterhelfen?




ich denke dass die my-entity fehlt da ja gar keine erstellt wurde?
Posted By: qwertzui

Re: Kameraflug? - 08/30/07 10:42

Also ich als ne Faulesau. nehme einfach die camara_move Action aus den A5 Templates


(hoffe das funtzt auch bei den a7 usern)

ps: in Aum6 Gibt es ein Script (Cam path) was euch alle helfen könntet...

noch ein ps: Der code ist sehr veraltet!


3D Gamestudio version: 6 Commercial
Posted By: TheThinker

Re: Kameraflug? - 08/30/07 14:18

Hi,
Erstmal: was nutzt ihr für eine Sprache Lite-C oder c-script.
Im Prinzip funktioniert das Beispiel aus dem Manual schon. Ist nur etwas missverständlich und eigentümlich geschrieben. Normalerweise kann man in c-script keine Strings (Name des Path in dem Beispiel) als Parameter übergeben. Auch in Lite-c, korrigiert mich wenn ich falsch liege, könnte das nicht so funktionieren. eigentlich müsste es dann doch:
function camera_path(STRING* pathname)
heißen.
Zudem sollte euch klar sein, das die function nicht automatisch startet, sondern von einer anderen function aufgerufen wird z.B.
function main()
{
...
camera_path("Pathstring");
...
}
Erst hier wird der Name des Paths der Funktion übergeben.

MfG,
Patrick
© 2024 lite-C Forums