heady89@Posted: Sun Nov 11, 2012 6:26 pm :
I've searched through some old threads about this issue back in the days and was just wondering if anyone ever came up with a solution.
That is to pretty much display your playable char infront of camera from i.e the func_cameraview without it getting "hidden".

I know ID did it with cinematics actor but what i am more interested in is to have the actual playermodel, alive and controllable, but viewed from a static camera.



The Happy Friar@Posted: Sun Nov 11, 2012 8:17 pm :
Resident Evil style you're thinking?



heady89@Posted: Sun Nov 11, 2012 8:50 pm :
The Happy Friar wrote:
Resident Evil style you're thinking?

Yes, thats a good example.



amd2@Posted: Mon Dec 31, 2012 1:39 pm :
Nobody know that?

? :cry:



bladeghost@Posted: Mon Dec 31, 2012 4:41 pm :
something must be broken or missing, even from 2007 this fellow still didn't get an answer, and I believed a target_setInflunce would work as well.
http://www.doom3world.org/phpbb2/viewtopic.php?f=1&t=19828&hilit=target_setInfluence

I've tried this also and with other cameras too, securitycam etc...
in essence switchToView should work, obviously there's some code missing, that's my 24 cents....
I don't have the time for that but I'd look in scripts and def files...for the culprit, I'm sure it's in there somewhere, just have to take some time to find out why it's not firing. (out of curosity) I may look later.... but for now that's what comes to mind....as it just might not be implimented and just has to be added? with some of the things this tech can do I don't see why this can't function and be used as such..... anyone find anything let us know and I'll do the same.... :wink:



S@TaNiC@Posted: Sat Jan 19, 2013 7:47 pm :
Should be easy enough in the SDK just need to unsurpress the player entity from the renderview same as mirrors.

Anyway heres a little script hack using pm_thirdperson cvars.

Code:
void main(){
  while(1){   
   
    sys.setcvar("pm_thirdperson",1);
    sys.setcvar("pm_thirdpersonangle",0);
   
    while (sys.getcvar("pm_thirdPerson")){
     
      vector playerpos = $player1.getWorldOrigin();
      vector tnPos = $target_null_1.getWorldOrigin();
     
      //Distance
      playerpos_z += sys.strToFloat(sys.getcvar("pm_normalviewheight"));
      vector distance = tnPos - playerpos;
      vector normdist = distance;
      normdist_x = abs(distance_x);
      normdist_y = abs(distance_y);
      normdist_z = playerpos_z;
      sys.setcvar("pm_thirdpersonrange",$target_null_1.distanceToPoint(normdist));
     
      //Angle
      vector camangle;
      distance_x = distance_x * -1;
      camangle=sys.VecToAngles(distance);

      vector viewangles = $player1.getViewAngles();
      float viewangle = viewangles_y;

      sys.setcvar("pm_thirdpersonangle",viewangle+camangle_y);
     
      //Height
      float height = (tnPos_z - playerpos_z);
      if (height > 20){
        height = 20;
      }
      if (height < -20){
        height = -20;
      }
      sys.setcvar("pm_thirdpersonheight",height);
     
      sys.waitFrame();
    }
  }
}


and a test map to go with
Code:
Version 2
// entity 0
{
"classname" "worldspawn"
// primitive 0
{
brushDef3
{
  ( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 0 1 -232 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 -1 0 -328 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 1 0 -320 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( -1 0 0 -408 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 1 0 0 400 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
}
}
// primitive 1
{
brushDef3
{
  ( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 0 1 -232 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 1 0 0 -528 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 1 0 -320 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( -1 0 0 -408 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 -1 0 312 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
}
}
// primitive 2
{
brushDef3
{
  ( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 0 1 -232 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 -1 0 -328 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 1 0 0 -528 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 1 0 -320 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( -1 0 0 520 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
}
}
// primitive 3
{
brushDef3
{
  ( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 0 1 -232 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 -1 0 -328 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 1 0 0 -528 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( -1 0 0 -408 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 1 0 320 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
}
}
// primitive 4
{
brushDef3
{
  ( 0 0 1 -232 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 -1 0 -328 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 1 0 0 -528 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 1 0 -320 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( -1 0 0 -408 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 0 -1 224 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
}
}
// primitive 5
{
brushDef3
{
  ( 0 0 -1 0 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 -1 0 -328 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 1 0 0 -528 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 1 0 -320 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( -1 0 0 -408 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
  ( 0 0 1 -8 ) ( ( 0.0078125 0 0 ) ( 0 0.0078125 0 ) ) "textures/base_wall/gotcbar1" 0 0 0
}
}
}
// entity 1
{
"classname" "info_player_start"
"name" "info_player_start_1"
"origin" "-120 -176 16"
}
// entity 2
{
"classname" "target_null"
"name" "target_null_1"
"origin" "64 16 208"
}
// entity 3
{
"classname" "light"
"name" "light_1"
"origin" "72 -48 168"
"noshadows" "0"
"nospecular" "0"
"nodiffuse" "0"
"falloff" "0.000000"
"texture" "lights/ambientlight"
"_color" "1 1 1"
"light_radius" "1012 652 304"
}



amd2@Posted: Tue Jan 29, 2013 1:22 pm :
Its great, thanx!

But how can i use more cameras? I want create a map with 2-3 cameras, and activate cameras with triggers.