Voilà je lance un topic à part du coup pour continuer à parler du script de camera embarquée.
EDIT: après résolution de problèmes, le script qui marche est celui-ci:
Tu nomme l'objet (le .3ds, pas le .nl2sco) qui doit devenir une caméra "objet", et roule ma poule !
PS: Code qui peut poser problème avec un objet qui sort de Sketchup (sans que je sache pourquoi).
EDIT: après résolution de problèmes, le script qui marche est celui-ci:
Code:
import com.nolimitscoaster.*;
import nlvm.math3d.*;
public class SiegeScript extends Script
{
private SceneObject sco;
private SceneObjectElement m_objet;
private ExternalRideView seatView;
private static final float warpPointRange = 3.0f;
private Matrix4x4f extenderMatrix;
private Vector3f initialExtenderVector;
public bool onInit()
{
sco = sim.getSceneObjectForEntityId(getParentEntityId());
if (sco == null) return false;
seatView = sim.createExternalRideView();
m_objet = sco.getElementForName("objet");
return true;
}
public void onNextFrame(float tick)
{
Matrix4x4f mTrans = new Matrix4x4f();
mTrans.initTrans(0.0f, 0.1f, 0.0f);
Matrix4x4f mRotA = new Matrix4x4f();
mRotA.initYRot((float)Math.PI * 0.0f);
Matrix4x4f m = m_objet.getAbsoluteMatrix();
m.multRight(mTrans);
m.multRight(mRotA);
seatView.setCameraMatrix(m);
seatView.setEnterWarpPoint(m.getTrans(), warpPointRange);
}
private Matrix4x4f InvertMatrix(Matrix4x4f m)
{
Matrix4x4f mi = new Matrix4x4f();
mi.initIdentity();
mi.setElemAt(0, 0, m.elemAt(0, 0));
mi.setElemAt(1, 0, m.elemAt(0, 1));
mi.setElemAt(2, 0, m.elemAt(0, 2));
mi.setElemAt(0, 1, m.elemAt(1, 0));
mi.setElemAt(1, 1, m.elemAt(1, 1));
mi.setElemAt(2, 1, m.elemAt(1, 2));
mi.setElemAt(0, 2, m.elemAt(2, 0));
mi.setElemAt(1, 2, m.elemAt(2, 1));
mi.setElemAt(2, 2, m.elemAt(2, 2));
mi.setElemAt(3, 0, -m.elemAt(3, 0));
mi.setElemAt(3, 1, -m.elemAt(3, 1));
mi.setElemAt(3, 2, -m.elemAt(3, 2));
return mi;
}
}
Tu nomme l'objet (le .3ds, pas le .nl2sco) qui doit devenir une caméra "objet", et roule ma poule !
PS: Code qui peut poser problème avec un objet qui sort de Sketchup (sans que je sache pourquoi).