Subway train or bus!!

How can i make a train or a bus that i can walk onto with my character and then let it move without my character going flying out the back and without him going from side to side?

Can i make it follow a path and make the character just be able to stand still inside it when its moving?

How can i make it follow a path?

Thanks in advance…
Brave,

Instead of moving the train, move everything outside of it. I remember facemania did a bus demo similar to this some time ago.

I don’t know any simple way to do this, although it would be quite simple if you knew python (I think). Some ways you could do it:

1.Have it switch scenes when you get on the vechile, and in the second scene, have your main character parented to the vechile.

2.Have the landscape move instead of your vechile, giving the illusion that your vechile is moving.

3.You could have it remove the main character (or make it invisible), then have the camera move to a second character that is parented to the vechile.

To make a vechile follow a path, simply use ipos, or have a empty have an ipo, then have the vechile track towards it, and move forward, this gives a smoother movement.

Edit: Well, Shn275 beat me to it, although I did take about 10 minutes writing this out while doing some homework, fi you would like, I could post the bus demo, I still have the blend, I’m surprised someone remembered it

I hope I helped :wink:

There has to be an easier way to pull something like this off. It’s probably just a physics engine matter. I would wait for the next blender version including the more polished bullet physics engine.

Honestly situations like this python is your friend. I dont know the first thing about python but ive got this script work and its very useful for lots of things.

First you need an empty parented to the inside your bus. Attach to the empty an always sensor and python controller.

Use this script to get the position of the empty. (I cant remember where i got this from originally btw)

import GameLogic
own = GameLogic.getCurrentController().getOwner() 
GameLogic.playerPos = own.getPosition()

Then all you do is set the position of the player to that empty and he’ll stay inside the bus, regardless of physics. You’ll have trigger this somehow, probably with a property.

if hasattr(GameLogic, "playerPos"): 
    own=GameLogic.getCurrentController().getOwner() 
    own.setPosition(GameLogic.playerPos) 

Anyone who does know python feel free to correct me if any of this is wrong, but i have got it to work plenty of times. I used to be one of those people who wouldn’t touch python, but too useful to ignore really.

Hi there … can you post a blend please ?

Yeah post the blend Face that would be great BUT I FOUND A SOLUTION LINV movment does not affect you dynamic actor in any way but thanks for all the sugestions they all helped and thanks for the code…much appreciated!! :smiley:

this would be easy if there was a ‘make parent’ and ‘clear parent’ actuator…

hint hint…

There isnt a make parent and clear parent actutor tho???

As long as they fix the bug that makes everything go crazy if you parent a dynamic actor to something… sheesh is that scary.

As long as they fix the bug that makes everything go crazy if you parent a dynamic actor to something… sheesh is that scary.[/quote]

Well if you have a bug no ones going to fix it if no developer sees it, you might want to email Erwin this or another developer.

Well, ok, here’s my blend of the bus demo I made :slight_smile:

http://mars.walagata.com/w/speedtouch/Bus.blend