Scripting help needed

Re: Scripting help needed

Postby Heiko » Mon Sep 19, 2016 9:40 pm

Of course!
But there is nothing really special in it, and I doubt you will learn anything from me :mrgreen:
(I remember your post about the techniques you used for the brass material on your beautiful locomotive...)

As for the materials, for the exterior I mainly use the TrainBumpSpecEnvMask shader. I'm always working with simple base colours in the modelling and raw unwrapping phase. For the fine texturing basically I use quite a lot of different layers in Photoshop; each layer with only a few variation in colour, and I also use different photo textures or "structures" with different blending modes, but usually very low opacity - only a few percents.
On the other hand it seems useful to have loads of different Photoshop brushes (dirt, grime, splatter and all that stuff). It took me a lot of time to experiment which were looking rather good and to play around with the settings.
Generally I need more time to get the textures more or less good looking than for the modelling :?
I'd like to go more in (hopefully useful) details but writing it down in english is too demanding for me tonight - after a very long working day...

Maybe with more concentration tomorrow. Needless to say that sharing experience about using materials and textures is very much appreciated, I imagine not only by me ;)
As found is a small affair: it is about being careful
Peter Smithson
User avatar
Heiko
General Shed Duties
 
Posts: 12
Joined: Fri Aug 01, 2014 1:18 pm
Location: Leipzig, Germany
Has thanked: 18 times
Been thanked: 13 times

Re: Scripting help needed

Postby TrabantDeLuxe » Tue Sep 20, 2016 12:09 am

The trick of getting better is to learn (steal?) techniques from others ;). You're right about time spent, I find myself doing a model pretty quickly, but texturing takes forever to get just right.
TrabantDeLuxe
Passed Fireman
 
Posts: 247
Images: 7
Joined: Mon Mar 21, 2016 10:10 pm
Location: Delft, NL
Has thanked: 176 times
Been thanked: 263 times

Re: Scripting help needed

Postby Heiko » Fri Feb 16, 2018 5:55 pm

Hi all,

a new project I was working on over the last months - the german DMU class 614. The prototype was built from 1972 on; in this (in my eyes beautiful) "Pop" livery they ran only in northeastern Bavaria. Later they were modernized and withdrawn around 2010. Some were sold to Romania and are still in service.
I remember the interior of the unmodernized 614 as very comfortable compared to normal regional stock, but passengers (and railfans) didn't like them much because of their extremely weak acceleration.

Modelling and texturing nearly finished, and also the cabview is getting near completion.
Now for the hard part: the scripting of the diesel-hydraulic drive and the sound (almost impossible for me to get original sounds - maybe and hopefully with some help from Romanian simmers).

Unfortunately this class is poorly documented; at least I have a copy of the original operation instruction book. There are only a few known performance values, as Power and RPM at the different Regulator Notches, and max Power. I don't have tractive effort curves or accelaration values.
Do you think it's possible to built a "credible" (more or less prototypical) driving physics model with these few informations?

One of the characteristics of the class 614 is that each engine (one in every power car) was switched on and off seperately - when two or three units were coupled together, one starter switch started engines, 1, 3 (and 5), the other one engines with even numbers.
I thought about how this could be achieved in the sim, as the standard "startup" starts all engines in the consist: the basic requirement is likely that the two powered cars of each 614 need to have individual blueprints and scripts, so they can be identified by a command like "start engine A" or "start engine B". But it's not possible to use the hard coded "startup" command - will the engine(s) start with a scripted "startup procedure" instead of the hard coded command?

Or am I completely wrong?

Any ideas are very welcome ;-)

Heiko
Attachments
20180205235348_1.jpg
20171029003504_1.jpg
20171029003838_1.jpg
As found is a small affair: it is about being careful
Peter Smithson
User avatar
Heiko
General Shed Duties
 
Posts: 12
Joined: Fri Aug 01, 2014 1:18 pm
Location: Leipzig, Germany
Has thanked: 18 times
Been thanked: 13 times

Re: Scripting help needed

Postby VictoryWorks » Mon Feb 19, 2018 9:48 am

I don't believe you can control the power in non-player driven vehicles in any way - even in the same consist.
However you could script the audio and visuals (exhaust?) to look like it's doing it. My only thought on power would be to create a single vehicle that has the power of multiple vehicles and then the consist communicates within itself to tell the powered vehicle how much real throttle to allow based on how many vehicles are powered and use the driven vehicles virtual throttle as the guide. All of the none leading vehicles would just be un-powered but scripted to look/sound as if they're running.
User avatar
VictoryWorks
Driver
 
Posts: 333
Joined: Mon Apr 07, 2014 1:22 pm
Has thanked: 41 times
Been thanked: 224 times

Re: Scripting help needed

Postby Heiko » Sat Feb 24, 2018 3:09 pm

VictoryWorks wrote:I don't believe you can control the power in non-player driven vehicles in any way - even in the same consist.


I remember reading about that fact before - I think it was when somebody was thinking how to achieve a more realistic simulation of two-engine diesel locos like class 42, 52 or our V200; so I never tried to look for a solution. But then I was discovering that there is at least one US loco (Reppo's GP20) that is able to control two ore more engines seperately - at least they can be started seperately. I purchased this model yesterday but still haven't found the time to test thoroughly, if there is more power applied when two engines are running. There is no unpowered version of the loco in the pack, so I imagine (without further testing) that at least an individual starting process is possible. Still no idea how it's done ;-) Maybe also a "fake" solution?

I also like your idea about having one of the power cars unpowered. It will be interesting to see how the driving behaviour differs from the "normal" version with two powered units. Lots of testing required, I think.

Right now, the biggest problem is to get the diesel-hydraulic drive more or less realistic... I could live without the relaistic starting process, but physics have to be as realistic as it's possible in TS.

Heiko
As found is a small affair: it is about being careful
Peter Smithson
User avatar
Heiko
General Shed Duties
 
Posts: 12
Joined: Fri Aug 01, 2014 1:18 pm
Location: Leipzig, Germany
Has thanked: 18 times
Been thanked: 13 times

Re: Scripting help needed

Postby DominusEdwardius » Fri Mar 30, 2018 11:36 am

Very late to the party (but I kinda forgot about this forum I've been so busy :oops: ), it isn't really possible in TS to control the power on other locos technically speaking. In the player consist it basically works that the non player locos mimic the player locos regulator (and I think reverser setting in the case of steamers), in other words if on the lead engine the regulator control is set to 90% it will be set to 90% on all other locos in the consist. This creates an interesting situation for double heading steamers which use either different steam chest models or use the original basic regulator, then one or more of the engines is going to perform incorrectly. Say the player has a regulator which at a certain speed and reverser setting and full regulators (actual physical regulator) generates a virtual regulator position of 73% for realistic performance, in another model with the same settings the equivalent may be 56% so that engine will massively over perform, while one using the core model which expects 100% regulator means that one will considerably under perform.

So really you need to know how all the vehicles in a consist apply their power. You can then do a bit of basic maths to figure out the contribution of each by assigning each a portion of a throttle. For example two identical but independent locos you may allocate 50% of the throttle to each loco. So 0 is both locos off, 50% is one loco flat out or both locos at half throttle, and 100% is both locos flat out. Basically working by an average of what the two (or more) (virtual) throttle positions on multiple locos would be at a given time and having using that to contribute to the overall master throttle setting.

Note: this method only really works on diesels and electrics, on steamers it is likely to have horribly consequences due to variations in steam consumption and may lead some engines to either steam too well, or steam very badly :)

regards

Edward
Regards Edward

Meshtools - Scripter and Sound Artist
http://www.meshtools.co.uk
https://www.facebook.com/Meshtools
User avatar
DominusEdwardius
Passed Fireman
 
Posts: 114
Joined: Mon Mar 31, 2014 11:25 am
Location: Loughborough, UK
Has thanked: 10 times
Been thanked: 40 times

Re: Scripting help needed

Postby Heiko » Mon Sep 02, 2019 10:30 pm

Thank you for all your thoughts on this matter...
I had to put the project on hold for quite a while because of real life work and additionally because of a route building project that I carelessly initiated, and for which I do the historical research and the object creation (at least a part of it).

Nevertheless I made some progress with the vehicles in between. And now I'm faced with another difficulty. I guess it's not a bigger problem, but I just can't come up with the solution. It's about a very simple scripted slower running door control animation. I was going to solve it like this:

Code: Select all
function Update ( time )

if ( Call ("*:GetControlValue", "DoorsOpenCloseLeft", 0) == 1 ) then
         if gDoorState == CLOSED then
         gAnimTime = Call ( "SetTime", "Tueren_yl1_l", 30 );
            if gAnimTime == 0 then
            gDoorState = OPEN
            end
         else
         gAnimTime = Call ( "SetTime", "Tueren_yl1_l", -30 );
            if gAnimTime == 0 then
            gDoorState = CLOSED
            end
               end
               end
      if ( Call("*:GetControlValue", "DoorsOpenCloseRight", 0) == 1 ) then
         if gDoorState == CLOSED
         gAnimTime = Call ( "SetTime", "Tueren_yl1_r", 30 );
            if gAnimTime == 0 then
            gDoorState = OPEN
            end
         else
         gAnimTime = Call ( "SetTime", "Tueren_yl1_r", -30 );
            if gAnimTime == 0 then
            gDoorState = CLOSED
            end
               end
                  end   


The variables were defined before, and the names of the animations correspond to those in the blueprint.
Does anyone have any idea where I am wrong? Whenever I think I get a bit more insight in scripting, there is a little something that sets me back :?

Heiko
As found is a small affair: it is about being careful
Peter Smithson
User avatar
Heiko
General Shed Duties
 
Posts: 12
Joined: Fri Aug 01, 2014 1:18 pm
Location: Leipzig, Germany
Has thanked: 18 times
Been thanked: 13 times

Re: Scripting help needed

Postby AndiS » Wed Sep 04, 2019 9:21 am

I am not an engine scripter, but for signals, the following points seem relevant:

If the arm is a child object and not part of the same IGS as the post, then the call is "Child1:AddTime" if the name of the arm is Child1 in the signal blueprint.

The original Kuju signals crazily call Reset each time before calling AddTime.

I never heard about SetTime. Sounds good but back then I was lucky enough to get my stuff working by copying the Kuju stuff.

The parameter must be time. That is the time since the last call of Update, in seconds, and it is typically below zero. Using 30 there means you scroll forward by 30 seconds and your animation may not be that long - and you would do it every 0.1 seconds or so.

So my guess would be (assuming the doors are part of the main model):
Call ( "Reset", "Tueren_yl1_l" );
gAnimTime = Call ( "AddTime", "Tueren_yl1_l", time );
AndiS
Top Link Driver!
 
Posts: 736
Joined: Wed Apr 09, 2014 5:48 pm
Has thanked: 268 times
Been thanked: 308 times

Previous

Return to Rolling Stock General

Who is online

Users browsing this forum: No registered users and 1 guest

cron