User mods, screenshots & videos > Trucks

Scania STAX - concept truck 2002 - Download

(1/3) > >>

newS:
I've made this truck for Euro Truck Simulator, German Truck Simulator and Euro Truck Simulator 2 and now for Outerra:
see also here: http://www.trucksimsforum.de/viewtopic.php?f=235&t=15328

This is a high poly model (163.991 triangles)

http://www.scania.com/media/pressreleases/2002091016EN.aspx

*Edit:

I've finished a first version:

Download:
http://www.klemund.de/Outerra/files/Scania-STAX_by_newS_v1.0.rar

click on the image to enlarge:

ZeosPantera:
I am going to steal those rear tires off that truck and put them on the Jeep Wrangler.. My dream.

Bartolomeus:
Yes, the wheels are awesome! Great work on the Truck.

Marko

newS:
I've finished a first version:

Download:
http://www.klemund.de/Outerra/files/Scania-STAX_by_newS_v1.0.rar

ZeosPantera:
Looks good. A bit more texture and it will be great. I think outerra can handle a bit more detail than EuroTruck simulator. If you don't mind I spent some time with the physics. Tell me what you think.


--- Code: ---var axle2coef=1.0;

//invoked only the first time the model is loaded, or upon reload
function init_chassis()
{
  var wheelparam = {
    radius: 0.49,
    width: 0.27,
    suspension_max: 0.17,
    suspension_min: -0.10,
    suspension_stiffness: 30.0,
    damping_compression: 0.06,
    damping_relaxation: 0.08,
    slip: 0.55,
    roll_influence: 0.1

  };
  this.add_wheel('wheel_f_l', wheelparam);
  this.add_wheel('wheel_f_r', wheelparam);
  this.add_wheel('wheel_b_l', wheelparam);
  this.add_wheel('wheel_b_r', wheelparam);
  this.add_wheel('wheel_b1_l', wheelparam);
  this.add_wheel('wheel_b1_r', wheelparam);
 
  //compute steering coefficient for the second axle
  var body = this.get_geomob(0);
  var a0 = body.get_joint_local_pos(body.get_joint('tire_l0')).y;
  var a1 = body.get_joint_local_pos(body.get_joint('tire_l1')).y;
  var a2 = body.get_joint_local_pos(body.get_joint('tire_l2')).y;
  var a3 = body.get_joint_local_pos(body.get_joint('tire_l3')).y;
  var m = 0.5*(a2+a3);
  axle2coef = (a1-m)/(a0-m);
 
  //sounds
  this.load_sound("diesel-engine-start.ogg");
  this.load_sound("diesel-engine-idle.ogg");
  this.add_sound_emitter("wheel_f_l");
 
  return {mass:8164, com:{z:1.0, y:0.8}};
}

//invoked for each new instance of the vehicle
function init_vehicle()
{
  this.set_fps_camera_pos({x:-0.53,y:1.2,z:2.4});
  this.snd = this.sound();
  this.snd.set_ref_distance(0,1.0);

  this.started = 0;
}

function engine(start)
{
  if(start) {
    this.started=1;
    this.snd.play(0, 0, false, false);
  }
}


const EF = 15000.0;
const BF = 7500.0;
const maxkmh = 90;
const forceloss = EF / (0.5*maxkmh + 2);


//invoked each frame to handle inputs and animate the model
function update_frame(dt, engine, brake, steering)
{
  var kmh = this.speed()*3.6;
 
  //reduce engine force with speed (hack)
  var redux = engine>=0 ? 0.1 : 0.6;
  var esign = engine<0 ? -1 : 1;
  engine = EF*Math.abs(engine);
  var force = (esign>0) == (kmh>=0)
        ? engine/(redux*Math.abs(kmh) + 1)
        : engine;
  force -= forceloss;
  force = Math.max(0.0, Math.min(force, engine));
  engine = esign*force;


  steering *= 0.8;
  this.steer(0, steering);
  this.steer(1, steering);
 
 
  if(this.started>1)
    this.wheel_force(0, engine);
    this.wheel_force(1, engine);
    this.wheel_force(2, engine);
    this.wheel_force(3, engine);
 
  brake *= BF;
  this.wheel_brake(-1, brake);
 
  this.animate_wheels();
 
  if(this.started==1 && !this.snd.is_playing(0)) {
    this.started=2;
    this.snd.play(0, 1, true, false);
  }
  else if(this.started==2) {
    var pitch = Math.abs(kmh)/20.0;
    var g = kmh>0 ? Math.floor(pitch) : 0;
    var f = pitch - g;
    f += 0.5*g;
    this.snd.set_pitch(0, 0.5*f + 1.0);
  }
}

--- End code ---

Navigation

[0] Message Index

[#] Next page

Go to full version