Hey fred18,I just tried the camera with several different multistage 2015 vehicles,and it still doesn't seem to work with any of them.
After sleeping on it over night I reloaded an older version of multi stage and the SLS launches as it should. However its not on the pad and the hanger and crawler are not there.
when I first tried this the SLS was on the pad and flew great but the hanger and crawler were not there.
---------- Post added at 11:25 AM ---------- Previous post was at 11:07 AM ----------
I tried the new MS 2015 and the SLS was on the pad but was back to its failure mode. so reloaded the older MS and was ok just not on pad. Used SE to place it on the pad.
really like the detail on the SLS and the MFD.
Is it possible to have the solid boosters still firing after separation for a few seconds within Multistage? I would like to have them jettisoned off while the latest bits of thrust still coming out for dramatic effect.
Now I was thinking :idea: about making the thrusters on top of the SRB's for separation also work with an extra set of "dummy" boosters for the effect which will thrust during sep and so i can connect a particle stream to it. They also need to be jettisoned while firing along the same lines as the boosters so it will look as if they are connected.
But maybe this is getting to complex for multistage alone.
Particles are part of orbiter core and I don't remember any option relevant to his. The only way to do this would be to "reinvent" the particle definition of orbiter... Maybe I'm wrong, but to me there's no way :shrug:Another question regarding particle streams: I would like to use a particle stream where the textures which are generated are in the same orientation. Right now they are rotated 90 degrees every time a new one is generated. Is it possible to change that somehow?
that could be wrong in the module, I don't think I've ever tested explosive bolts in more than one boosters group, I have to give a look at it, is it with orbiter 2010 or 2016?I've also noticed I can't get the second boosters explosive bolts to fire. Maybe I'm doing something wrong but the positioning and .ini are correct.
Graag gedaanRingrazio anticipatamente!
Best way to have all this is to build a module to be used instead of the stage.dll.
I think it would be also very useful for learning on how to code for orbiter, since this type of vessel will be very easy to code (just the mesh, and engines with some particle effects).
I did this with the jarvis.dll and I obtained exactly what you're asking: separation effects with engines and exhaust still coming out.
Try it if you want, the jarvis3.0 dll is for orbiter2010 only, and if you try the jarvis-M you'll see exactly this effect. I can help a lot here if you need.
Particles are part of orbiter core and I don't remember any option relevant to his. The only way to do this would be to "reinvent" the particle definition of orbiter... Maybe I'm wrong, but to me there's no way :shrug:
that could be wrong in the module, I don't think I've ever tested explosive bolts in more than one boosters group, I have to give a look at it, is it with orbiter 2010 or 2016?
Meshes and sound were not mine, I implemented in dll the existing jarvis with the old multistage2 project by FOI (Forum Orbiter Italia). The project comes from fausto, famandy and all that team, I jumped in later for the dll version.Those meshes are very detailed and with very nice fx. Especially the sound is making it come alive.
no problem, I'll show you, but there was a lot of learning by doing at the time, I don't think it's a brilliant example to learn from.Can I have a look at the source code of the Jarvis? Maybe I can learn a lot from this.
//############################################################################//
#define ORBITER_MODULE
#define _CRT_SECURE_NO_WARNINGS
#define _CRT_NONSTDC_NO_DEPRECATE
#include <math.h>
#include <stdio.h>
#include "orbitersdk.h"
//############################################################################//
#include "Js1smbstII_1.h"
//############################################################################//
//Class creation
Js1smbstII_1::Js1smbstII_1(OBJHANDLE hObj,int fmodel):VESSEL3(hObj,fmodel){}
Js1smbstII_1::~Js1smbstII_1(){}
//############################################################################//
//All the parameters
void Js1smbstII_1::clbkSetClassCaps(FILEHANDLE cfg)
{
SURFHANDLE Jcontrail1 = oapiRegisterExhaustTexture ("Jarvis\\Jcontrail1");
static PARTICLESTREAMSPEC SRBsm = {
0, // flag
2.4, // size
150, // rate
120, // velocity
0.2, // velocity distribution
0.3, // lifetime
14, // growthrate
1, // atmslowdown
PARTICLESTREAMSPEC::DIFFUSE,
PARTICLESTREAMSPEC::LVL_PSQRT, 0, 1.0,
PARTICLESTREAMSPEC::ATM_FLAT, 1, 1.0,
Jcontrail1
};
SetSize(40);
SetEmptyMass(86183);
SetPMI(_V(1,1,1));
SetCrossSections(_V(220,220,35));
SetRotDrag(_V(0,0,0));
SetTouchdownPoints(_V(0,0,1),_V(-1,0,-1),_V(1,0,-1));
SetSurfaceFrictionCoeff(0.07,0.3);
SetCW(0.09,0.09,2,1.4);
EnableTransponder(true);
InitNavRadios(4);
SetCameraOffset(_V(0,0,0));
SetVisibilityLimit(0,0.002);
SetAlbedoRGB(_V((float)255/255,(float)255/255,(float)255/255));
SetGravityGradientDamping(0);
SetWingAspect(0);
SetWingEffectiveness(0);
SetMaxWheelbrakeForce(200000);
//Fuel
ph_h[0]=CreatePropellantResource(1000,1000);
ph_h[1]=CreatePropellantResource(1300,1300);
ph_h[2]=CreatePropellantResource(1000,1000);
th_h[0]=CreateThruster(_V(0,0,0),_V(0,0,1),440000,ph_h[0],2837.1736,0,101400);
th_h[1]=CreateThruster(_V(0,0,23),_V(-1,0,0),149500,ph_h[1],300,0,101400);
th_h[2]=CreateThruster(_V(0,0,-23),_V(-1,0,0),149000,ph_h[1],300,0,101400);
th_h[3]=CreateThruster(_V(0,0,0),_V(-1,0,0),1500000,ph_h[2],7500,0,101400);
CreateThrusterGroup(th_h,1,THGROUP_MAIN);
SURFHANDLE tex = oapiRegisterExhaustTexture ("Exhaust2");
AddExhaustStream(th_h[0],_V(-1.0143,0,-21.7),&SRBsm);
AddExhaust(th_h[1],5,0.3,_V(1.919,-0.179,16),_V(1,0,0),tex);
AddExhaust(th_h[1],5,0.3,_V(1.919,0.179,16),_V(1,0,0),tex);
AddExhaust(th_h[1],5,0.3,_V(1.781,-1.516,13.614),_V(1,0,0),tex);
AddExhaust(th_h[1],5,0.3,_V(1.781,-1.516,13.206),_V(1,0,0),tex);
AddExhaust(th_h[1],5,0.3,_V(1.781,+1.516,13.614),_V(1,0,0),tex);
AddExhaust(th_h[1],5,0.3,_V(1.781,+1.516,13.206),_V(1,0,0),tex);
AddExhaust(th_h[1],5,0.3,_V(1.781,-1.516,-13.456),_V(1,0,0),tex);
AddExhaust(th_h[1],5,0.3,_V(1.781,-1.516,-13.88),_V(1,0,0),tex);
AddExhaust(th_h[1],5,0.3,_V(1.781,1.516,-13.456),_V(1,0,0),tex);
AddExhaust(th_h[1],5,0.3,_V(1.781,1.516,-13.88),_V(1,0,0),tex);
SetMeshVisibilityMode(msh_idh[0]=AddMesh(msh_h[0]=oapiLoadMeshGlobal("jarvis\\Js1sm-bst_1")),1);
}
//############################################################################//
void Js1smbstII_1::clbkLoadStateEx(FILEHANDLE scn,void *vs)
{
char *line;
while(oapiReadScenario_nextline(scn,line)){
ParseScenarioLineEx(line,vs);
}
}
//############################################################################//
void Js1smbstII_1::clbkSaveState(FILEHANDLE scn)
{
SaveDefaultState(scn);
}
void Js1smbstII_1::clbkPostStep(double simt, double simdt, double mjd){
SetThrusterLevel(th_h[0],1);
SetThrusterLevel(th_h[1],1);
SetThrusterLevel(th_h[2],1);
SetThrusterLevel(th_h[3],1);
if(GetAltitude()<100){
oapiDeleteVessel(GetHandle());
}
}
//#######################################################################################//
//Creation
DLLCLBK void InitModule(HINSTANCE hModule){}
DLLCLBK void ExitModule(HINSTANCE hModule){}
DLLCLBK VESSEL *ovcInit(OBJHANDLE hvessel,int flightmodel){return new Js1smbstII_1(hvessel,flightmodel);}
DLLCLBK void ovcExit(VESSEL *vessel){if(vessel)delete(Js1smbstII_1*)vessel;}
//#######################################################################################//
the new orbiter 2016 has been built with differences in HUD and in other functions. While many of the other functions are somehow retrocompatible, seems that the hud routine difference are not, so if a module is compiled against the old orbiter 2010 as soon as you jump into the cockpit boom... CTD, you have to compile it with the new libraries of 2016 to ensure version compatibilityWhat is it that makes a code incompatible with 2016 btw?
can't remember exactly in 2010, in 2016 it surely follows totally another way of building the multistage vehicle.Isn't this effect, the booster exhaust still running after sep also in the stock Atlantis? Maybe I can also have a look at that.
Also I've run out of dummy boosters to facilitate my fx needs though. :lol: The falling ice on take off, exhaust detail, double contrails.. time to make a dll.
Is it possible to have a module that only takes in account the fx and jettison definitions and let the multistage module take account of the size, thrust, mass, fuel etc.?
OBJHANDLE h_ms=oapiGetVesselByName("SLS");
VESSEL3 *v;
v=oapiGetVesselInterface(h_ms);
v-> do whatever you want with multistage vessel
Meshes and sound were not mine, I implemented in dll the existing jarvis with the old multistage2 project by FOI (Forum Orbiter Italia). The project comes from fausto, famandy and all that team, I jumped in later for the dll version.
attached an extract from orbiter api (seems to be latex unfriendly)
isp ref and pressure ref are what was implemented by rcraig42. It seems to me that by defining both you'll achieve what you're willing to have.
-10=PlaySound(sound\HDWsnd\Tminus10.wav)
OK, I'm getting the proper ISP curve by inputting both values, but i'm still getting static thrust.
I think he said that it is due to Orbiter Sound not being fully supported in Orbiter 2016.
Found a couple more bugs 1. this happens with both D3d9,and default engine when you unload the ms_pad with the SLS attached to it form the Crawler,and then save the scenario when you reopen the scenario again the SLS goes spinning into space 2. when using the default engine the Hangar,and Crawler start blinking,but this 2nd bug doesn't happen when using D3d9.
Fred, do you know if the isp_sl value works for boosters as well? Burn time mfd doesn't show boosters so I have no way of checking this.
[MISC]
cog=6
[TEXTURE_LIST]
TEX_1=Contrail1
TEX_2=Contrail2
TEX_3=WEx
TEX_4=WEx2
[PARTICLESTREAM_1]
NAME=SRBsm
TEX=Contrail1
SRCSIZE=3
SRCRATE=150
V0=140.0
SRCSPREAD=0.3
LIFETIME=30
GROWTHRATE=5
ATMSLOWDOWN=1.0
LTYPE=DIFFUSE
LEVELMAP=LVL_PSQRT
LMIN=0
LMAX=1
ATMSMAP=ATM_PLOG
AMIN=1e-4
AMAX=2
[PARTICLESTREAM_2]
NAME=SRBex
TEX=Contrail2
SRCSIZE=1.8
SRCRATE=2000.0
V0=100.0
SRCSPREAD=0.0
LIFETIME=1
GROWTHRATE=18
ATMSLOWDOWN=0.0
LTYPE=EMISSIVE
LEVELMAP=LVL_PSQRT
LMIN=0
LMAX=0
ATMSMAP=ATM_PLOG
AMIN=1e-4
AMAX=1
[BOOSTER_1]
N=2
MeshName="W-Ariane5\Wbooster_EAP"
Height=31.61
Diameter=3.0
EmptyMass=31000
FuelMass=237000
Thrust=6470000
angle=180
off=(4.4,0,-0.7)
BurnTime=94.3
ENG_PSTREAM1=SRBsm
ENG_PSTREAM2=SRBex
ENG_TEX=WEx2
CURVE_1=(0,60)
CURVE_2=(17,66)
CURVE_3=(33.5,76)
CURVE_4=(50.3,87)
CURVE_5=(67,95)
CURVE_6=(84,100)
CURVE_7=(99.3,91)
CURVE_8=(116.1,78)
CURVE_9=(125,69)
CURVE_10=(129,5)
[STAGE_1]
MeshName="W-Ariane5\WEPC"
off=(0,-0.154,0)
Height=30.7
Diameter=5.40
EmptyMass=14700
FuelMass=170000
Thrust=1350000
BurnTime=535.9
ENG_TEX=WEx
Pitchthrust=472000
Yawthrust=472000
Rollthrust=472000
SPEED=(0,0,-2)
reignitable=0
isp_sl=3118
[STAGE_2]
MeshName="W-Ariane5\WSCA"
Ignite_delay=15
Diameter=5.40
Height=3.35
EmptyMass=5910
FuelMass=14900
Thrust=64800
BurnTime=1005.5
off=(0.009,0.001,16.63)
ENG_TEX=WEx
reignitable=0
Battery=2
[FAIRING]
N=2
MeshName="W-Ariane5\fairup2_fairing"
Diameter=5.4
Height=10
angle=90
off=(0.,0.,28.02)
Emptymass=2500
[PAYLOAD_1]
off=(0.009,0.001,20.1)
MeshName="W-Ariane5\Wsylda"
name="SYLDA"
Module="W-Ariane5\Sylda"
Diameter=5.10
Height=4.9
Mass=450
Render=1
**** Orbiter.log
Build Aug 30 2010 [v.100830]
Timer precision: 3.01174e-007 sec
Found 0 joystick(s)
Module AtlantisConfig.dll .... [Build 100830, API 100830]
Module AtmConfig.dll ......... [Build 100830, API 100830]
Module DGConfigurator.dll .... [Build 100830, API 100830]
Module ScnEditor.dll ......... [Build 100830, API 100830]
Module OrbiterSound.dll ...... [Build 121120, API 100830]
Module D3D9Client.dll ........ [Build 150712, API 100830]
Module Multistage2015_MFD.dll [Build 161006, API 100830]
Module BurnTimeMFD.dll ....... [Build 160907, API 100830]
Module DVToolsMFD.dll ........ [Build 120331, API 100830]
Module PursuitMFD.dll ........ [Build 160917, API 100830]
Module BaseSyncMFD.dll ....... [Build 160521, API 100830]
---------------------------------------------------------------
>>> WARNING: Obsolete API function used: oapiRegisterMFDMode
At least one active module is accessing an obsolete interface function.
Addons which rely on obsolete functions may not be compatible with
future versions of Orbiter.
---------------------------------------------------------------
Module LambertMFD.dll ........ [Build 150115, API 100830]
Module LaunchMFD.dll ......... [Build 160907, API 100830]
**** Creating simulation session
D3D9Client: [DirectX 9 Initialized]
D3D9Client: Sytem has XNA math support
D3D9Client: [3DDevice Initialized]
D3D9Client: [Loading Stars]
D3D9Client: [Loading Constellations]
D3D9Client: [D3D9Client Initialized]
Module Sun.dll ............... [Build 100830, API 100830]
VSOP87(E) Sun: Precision 1e-006, Terms 554/6634
Module Mercury.dll ........... [Build 100830, API 100830]
VSOP87(B) Mercury: Precision 1e-005, Terms 167/7123
Module Venus.dll ............. [Build 100830, API 100830]
Module VenusAtm2006.dll ...... [Build 100830, API 100830]
VSOP87(B) Venus: Precision 1e-005, Terms 79/1710
Module Earth.dll ............. [Build 100830, API 100830]
Module EarthAtmNRLMSISE00.dll [Build 100830, API 100830]
VSOP87(B) Earth: Precision 1e-008, Terms 2564/2564
BaseObject: Parse error
Module Moon.dll .............. [Build 100830, API 100830]
ELP82: Precision 1e-005, Terms 116/829
Module Mars.dll .............. [Build 100830, API 100830]
MarsCristiapiAtm: correctly loaded and initialized.
VSOP87(B) Mars: Precision 1e-005, Terms 405/6400
Module Phobos.dll ............ [Build ******, API 060425]
Module Deimos.dll ............ [Build ******, API 060425]
Module Galsat.dll ............ [Build 100217, API 100215]
Module Jupiter.dll ........... [Build 100830, API 100830]
VSOP87(B) Jupiter: Precision 1e-006, Terms 1624/3625
Module Io.dll ................ [Build 100217, API 100215]
Module Europa.dll ............ [Build 100217, API 100215]
Module Ganymede.dll .......... [Build 100217, API 100215]
Module Callisto.dll .......... [Build 100217, API 100215]
Module Satsat.dll ............ [Build 100215, API 100212]
Module Saturn.dll ............ [Build 100830, API 100830]
VSOP87(B) Saturn: Precision 1e-006, Terms 2904/6365
Module Mimas.dll ............. [Build 100215, API 100212]
SATSAT Mimas: Terms 113
Module Enceladus.dll ......... [Build 100215, API 100212]
SATSAT Enceladus: Terms 33
Module Tethys.dll ............ [Build 100215, API 100212]
SATSAT Tethys: Terms 101
Module Dione.dll ............. [Build 100215, API 100212]
SATSAT Dione: Terms 59
Module Rhea.dll .............. [Build 100215, API 100212]
SATSAT Rhea: Terms 68
Module Titan.dll ............. [Build 100215, API 100212]
SATSAT Titan: Terms 100
Module Iapetus.dll ........... [Build 100215, API 100212]
SATSAT Iapetus: Terms 605
Module Uranus.dll ............ [Build 100830, API 100830]
VSOP87(B) Uranus: Precision 1e-006, Terms 1827/5269
Module Miranda.dll ........... [Build ******, API 060425]
Module Ariel.dll ............. [Build ******, API 060425]
Module Umbriel.dll ........... [Build ******, API 060425]
Module Titania.dll ........... [Build ******, API 060425]
Module Oberon.dll ............ [Build ******, API 060425]
Module Neptune.dll ........... [Build 100830, API 100830]
VSOP87(B) Neptune: Precision 1e-006, Terms 391/2024
Finished initialising world
Module zl3arms.dll ........... [Build 100618, API 100606]
Module Spacecraft3.dll ....... [Build 151106, API 100830]
Module multistage2.dll ....... [Build 161006, API 100830]
Multistage Version: 161006
Load State Started
Ariane5: Guidance File present: Config\W-Ariane5\arECA.txt
Ariane5: Sound found @step 1
Ariane5: Sound found @step 2
Ariane5: Sound found @step 4
Ariane5: Sound found @step 7
Ariane5: Sound found @step 10
Ariane5: Sound found @step 12
Ariane5: Sound found @step 15
Ariane5: Sound found @step 18
Ariane5: Sound found @step 19
Ariane5: Sound found @step 22
Ariane5: Sound found @step 27
Ariane5: Sound found @step 29
Ariane5: Sound found @step 30
Ariane5: Config File: C:\Games\orbiter100830\Config\W-Ariane5\arECA.ini
Ariane5: Number of stages in the ini file: 2
Ariane5: Number of boosters group in the ini file: 1
Ariane5: Number of Payloads in the ini file: 1
Ariane5: This Rocket Has Fairing
Ariane5: Texture n.1 Loaded Contrail1
Ariane5: Texture n.2 Loaded Contrail2
Ariane5: Texture n.3 Loaded WEx
Ariane5: Texture n.4 Loaded WEx2
Ariane5: booster n. 1 Tank Added: 474000.000 kg
Ariane5: Stage n. 2 Tank Added: 14900.000 kg
Ariane5: Stage n. 1 Tank Added: 170000.000 kg
Ariane5: Stage n. 1 Engines Exhaust Added--> number of engines: 1 , diameter: 2.700, position x: 0.000 y: 0.000 z: -15.350
Ariane5: Booster Group n.1 Engine Exhaust Stream Added: srbsm to engine n.1
Ariane5: Booster Group n.1 Engine Exhaust Stream Added: srbex to engine n.1
Ariane5: Booster Engines Exhaust Added--> Booster Group: 1 number of engines: 0 , diameter: 1.500, position x: 4.400 y: 0.000 z: -16.505
Ariane5: Booster Group n.1 Engine Exhaust Stream Added: srbsm to engine n.2
Ariane5: Booster Group n.1 Engine Exhaust Stream Added: srbex to engine n.2
Ariane5: Booster Engines Exhaust Added--> Booster Group: 1 number of engines: 0 , diameter: 1.500, position x: -4.400 y: 0.000 z: -16.505
Ariane5: Stage n.1 Mesh Preloaded: W-Ariane5\WEPC
Ariane5: Stage n.1 Mesh Added Mesh: W-Ariane5\WEPC @ x:0.000 y:-0.154 z:0.000
Ariane5: Stage n.2 Mesh Preloaded: W-Ariane5\WSCA
Ariane5: Stage n.2 Mesh Added Mesh: W-Ariane5\WSCA @ x:0.009 y:0.001 z:16.630
Ariane5 Payload Mesh Preloaded 1
Ariane5: Payload n.1 Mesh Added: W-Ariane5\Wsylda @ x:0.009 y:0.001 z:20.100