Archive for December, 2008

Superelevation, Flashing Aspects, Animated Points, and Station Signs

Posted by Anthony_B on December 23, 2008 at 22:00

I’ve been continuing with some more cosmetic updates for Cross-City South v1.4, and I’m in the process of adding superelevated track, transition curves and lead-in/lead-out track objects to enable smooth changes from level to canted track. With » Watford Junction to Rugby «, which already includes superelevated track objects and lead in/out objects, I’d adopted a system where curved track objects with 35mm, 70mm and 125mm cants were modelled, with a set of lead-in/out transition objects going from 0-35mm, 35-70mm and 70-125mm at varying curve radii, which enabled a nice, gradual increase or decrease in cant within a curve. These lead in/out objects are placed not as .Rail objects, but as .FreeObjects, and are used in conjunction with one of several invisible null rails which each have a different run sound, such that I don’t need to add too many new railtypes to cover all the possible combinations of run sound and required canted transition curve objects. This technique still results in quite a number of FreeObjects however.

While looking at the » ATS-Sn/P Test Route «, I was impressed by the appearance of the superelevated track and transition curves, which I felt were better than my attempts, and while looking at how the author achieved such a good result, I was pleasantly surprised to find that the technique used is actually more straightforward and efficient than that which I’d adopted, with just a simple pair of straight, left/right lead-in and lead-out objects used. I’ve trialled this on the Cross-City South, and I’m pleased with the results on the sharper curves, although for larger radius, higher speed curves, I’ll retain graduated 0-70mm and 70-125mm canted transition curve objects:

openBVE screenshot (Cross-City South v1.4 WIP) openBVE screenshot (Cross-City South v1.4 WIP)
– Please note that the grass and terrain textures are only temporary

I’ve also been experimenting with the signalling functionality recently introduced into openBVE’s » animated object format «. I’ve now implemented flashing aspects which are used on the approaches to the 60 mph and 70 mph crossovers between the fast and slow lines on the WCML’s New Ledburn and Hanslope Junctions, respectively. I’ve also incorporated lens hoods which become illuminated according to the aspect displayed by these new signal objects, and these look better than the standard flat bitmaps usually used to represent signal aspects in BVE.

Jason Morgan, one of the people we can thank for introducing BVE to Western railsim users several years ago, asked me whether or not it would be possible to have animated points linked to a signal, such that the blades moved to the correct position prior to the signal clearing, for example, while the player’s train is waiting in a passing loop before being cleared to rejoin the main line. Indeed this is possible, either by making the point blade position depend upon the state of a section, or by making the animation functions conditional, for example, by basing them upon the distance from the set of points to the player’s train. When basing the point blade position upon a section state, this can be done simply with the aid of a .Pretrain command, such that the point blades move as the signal changes from red. However, by using a .Section 0;2;3;4;5 command (UK routes with 4 aspect signals usually use .Section 0;2;3;4), and a specially modified animated signal object which displays an aspect sequence of Red > Red > Yellow > Double Yellow > Green, the point blades can move prior to the signal aspect appearing to change from red, which looks more prototypical. This is only suitable when the player arrives at the signal while it’s associated section state is still 0 (red), however.

As part of the experiment, I created some fully animated point objects, which include moving point blades, stretcher bars, backdrive assemblies, linkages and levers. » openBVE’s « rotation damping functions also enable a rather nice motion of the point blades, which looks quite realistic. Both conventional and High Performance Switch System (HPSS) points are modelled.

Important note: Currently, trains in openBVE follow a single path throughout a route as with BVE Trainsim (based on Rail 0), with this one path coded in the route file which cannot be changed en-route. Therefore, these points are cosmetic only!

Download openBVE / Watford Junction to Rugby video - please use the YouTube links to the rightVideo: Demonstration of working 3D bulb and LED signals, flashing apects, and animated pointwork

Note: this video is now included as part of a compilation on YouTube.

« [YouTube “High Quality” version] | [YouTube “High Definition” version]

Stephen Cross has also kindly created a set of station sign textures for use in Cross-City South v1.4, so I’ll be creating a new set of objects allowing the actual station names to be displayed on signs at each station on the route:

openBVE screenshot (Cross-City South v1.4 WIP)

I’ll also create some new lampost objects for the stations, as the existing ones look, well lets be honest, terrible. Emoticon Smile If I have time, I’ll update the route to include London Midland textures as well, although this isn’t a priority for me at the moment.

Finally, I’d like to wish visitors to Rail Sim Routes UK a very Happy Christmas! Emoticon Smile

Animated, Segmented Objects

Posted by Anthony_B on December 6, 2008 at 22:00

While creating the swinging cable objects demonstrated in the recent openBVE Object Animation/X-City South video (see the 1st December 2008 entry below), I opted to keep things simple and just rotate each 50m length of cable around it’s Z-axis to create the swinging effect I wanted; this was appropriate and sufficient for the types of cables in question. However, it’s also possible to split such an object up into segments, which can each be rotated and translated individually, to create more complex motion, bouncing, or to create the impression of elastic properties. When I was thinking about how best to animate the cables, it occurred to me that there was a rather nice application for the segmented object approach, in the form of people with animated limbs and simulated joints. I’ve been working on a slightly more ambitious animated object this time, namely a walking person which appears to have articulated limbs (please forgive the temporary placeholder objects comprising the figure, this is just an experiment and an early demonstration):

Download openBVE / X-City South video - please use the YouTube links to the right

Video: openBVE v0.9.1.15 and X-City South v1.4 (work in progress)

Animated, segmented bouncing cables; plus animated person with simulated articulated limbs (temporary meshes only)

Note: This video is now included as part of a compilation on YouTube.

« [YouTube “High Quality” version] | [YouTube “High Definition” version]

Each 50m long bouncing cable is comprised of 8 segment objects, each individually rotated and translated to create the overall movement shown. The animated person as a whole is comprised of 15 separate component parts, which means the upper and lower arms, upper and lower legs, upper and lower torso, feet, neck and head can be manipulated individually to create certain animated movements. It would be possible to have the figure waving, or moving one of his/her arms to check the time on a wrist watch, for example. The tricky part now, will be creating more detailed geometry and textures for the animated people which I hope to include in Cross-City South v1.4.

Finally, if you find the above interesting, then I recommend you visit the » openBVE homepage « and download the latest version 0.9.1.15 of the program, along with the updated DemoRoute1. In another stroke of genius, Michelle has added both a working signal with a flashing aspect, and a working lower quadrant semaphore signal to the route, complete with lamp and damped semaphore arm motion. Highly impressive! As she mentions in her » Developer Log «, the .AnimatedObj command can now reference sections in a similar way to the .SigF command, and an animated object can get the state of that section, therefore the flashing aspects found on the signals approaching the New Ledburn and Hanslope Junctions on my Watford to Rugby route can now be implemented realistically. I’ll be having a play with this new functionality during the next few days.

More Animated Objects

Posted by Anthony_B on December 1, 2008 at 22:00

While my favourite games are naturally openBVE and BVE Trainsim, another game which has also made a great impression on me is the first-person shooter Half-Life 2 and it’s follow-on episodes. I love this series of games because of the unfolding sci-fi story arc, mythology, characters, exotic technology, blend of elements of past, present and future, interactive environments and physics modelling; but they also feature some exceptionally high quality photo-realistic textures, lighting, atmospheric scenes, visual effects and a variety of nice touches which help to bring Half-Life 2’s dystopian world to life. Now that openBVE’s animation capabilities can be experimented with, I thought I’d bring a couple of the things I’ve noticed in Half-Life 2 to my own routes–no, not portal storms, teleportation devices or xenomorphic creatures wreaking havok in the streets of Birmingham, tempting though that is; rather animated birds and cables. Okay, maybe not quite as exciting, but anyway, Half-Life 2 features birds which fly past in places, and cables which sway in the wind:

Screenshot (Half-Life 2) Screenshot (Half-Life 2 Episode 2)

Using openBVE’s animated object translation and rotation functions, similar effects can be created. I downloaded a Reverse Polish Notation calculator to assist me in understanding what some of the translation values being calculated actually are, and this helped me to create birds which move at the right speed at the right time, and have flapping wings to add a little life to them, although I haven’t figured out how to increase the speed of the flapping yet. The return conductor cables sway back and forth as though buffeted by strong gusts of wind, and I exchanged the sine and cosine functions in alternating objects so each cable length doesn’t sway at the same time as the next, making the overall movement look rather more natural. I’ve amended my previous video with some extra shots of these features:

Download openBVE / X-City South video - please use the YouTube links to the rightVideo: openBVE v0.9.1.7 and X-City South v1.4 (textures and scenery not finished yet)

Animated clouds, flying birds, falling rain, swaying cables, moving water, and a passing train

Note: This video is now included as part of a compilation on YouTube.

« [YouTube “High Quality” version] | [YouTube “High Definition” version]

Class 150 objects from » Network West Midlands «

I hope you like the effects. Emoticon Smile

Note: Just to reiterate, openBVE will have built-in rainfall in future, so using animated objects to create this effect won’t be required eventually; but I was curious to see if such effects were possible with animated objects alone. The passing train is just a fun experiment, and animated objects aren’t really suited for this purpose as the animated object doesn’t follow any track, but rather a direction defined in the animated object file; I probably won’t include it in the final release route as there’s no sound accompanying the train.