Bullet compatible walkthrough template (.blend)

I have always considered the “walkthrough_template.blend” to be a valuable resource. It allowed me to quickly assemble and present my ideas to others with minimal effort, and when I say “minimal effort”, I mean barely doing anything, yet still allowing for a very decent level of interactivity. For those of you who have never heard of the “walkthrough_template .blend”: It is simply a template (available for download at blender3d.org) for creating first person view walkthroughs (as the name implies). It was meant to be primarily used for architectural projects, but in it’s time individuals have found a variety of uses for it (IE: FPS games, etc). One of my favorite things about the walkthrough template was the fact that all the view rotation was handled in a very simple manner, via IPO curves, which made things much easier to handle (usually you would have to deal with the orientation matrix, and no one wants to do that, unless you really have to)

This template worked great, all the way up to the 2.4X versions and the implementation of the Bullet physics engine. However, after that time it became plagued by a few bugs, and that resulted in incomplete functionality. In short: It was not “bullet compatible”.

The following is my fix to this compatibility problem (which is really a bug problem, but anyway…):

http://i33.photobucket.com/albums/d55/0social0/Walk_scrn.png

Download walkthrough_bullet.blend
If it doesn’t work the first time give it another try, this host is a bit flaky, im looking for a better one.

Thanks to blendenzo for the additional hosting: http://www.blendenzo.com/Files/walkthrough_bullet.blend

There were two problems, for which I made two relatively simple workarounds.

Problem 1:

Due to the “IPO Property actuator bug”, the rotation of the player around the z axis could no longer be controlled with the mouse. The “aim” script was spitting out all the right numbers, but due to the fact that the IPO property actuator would not function when attached to dynamic objects, no IPO curve was played to rotate the player around the z axis.

Workaround 1:

Luckily, the IPO bug did not translate to static objects, which made my job easy. I could not make the player static, because only dynamic objects can be effected by the physics engine, but I could use a static object (like an empty) to play the IPO curve remotely, and than simply copy the orientation of the empty to the player.

Problem 2:

The “friction shake bug”, as I call it. You probably had some encounters with it as well, when you tried to move around with one of your old sumo FPS schemes. You moved, and it was a bumpy ride, the player would start to shake in a very annoying manner. There were some things you could do: Like lower the friction to 0 and max out the dampening, but this too brought on some problems. Also, using dloc for movement was a popular way to get around it, but this resulted in some collision problems etc.

Workaround 2:

The credit for this one goes to fireside. I PM’ed him on the subject some time ago, after he wrote about it in a thread discussing this issue. He noticed that he was getting good results by using an 8 sided cylinder mesh as the players collision body. That, plus using the “convex-hull” bounds, and setting the form-factor to max, canceled out the “shake”. It was “smooth” sailing from that point on.

The “walkthrough_bullet.blend” is by no means meant to replace the original walkthrough template. I put this together for people who would like to use the original template “now”, but also want access to the latest features of the bullet engine within their presentations. I realize that the bullet engine is a work in progress and that the bugs I mentioned above will be “squashed” sooner (I hope) or later, at the source code level. Until then the “walkthrough_bullet.blend” is meant to fill the transitional gap for the current blender version.

I hope you find this useful.

Social

Nice work Social. I have been trying (without success) to get the standard walkthrough template to work properly so I can use it for an architectural walkthrough I am doing, but this will make things much easier :slight_smile: Im sure many other people will find this usefull.

Thanks

INM8

Nice Social. Thanks for your effort. I was trying to make the same for presentation template without sucess: http://blenderartists.org/forum/showthread.php?t=71278 (house.blend, shiny laptop.blend for 2.25 series) i guess the zoom doesnt work because of this IPO problem.

Bye!

Chico

Good job !!

Congratulations …

I had worked on a similar concept …
It was a kind of first/third person view walkthrough for bullet …

The file is here:
FirstAndThirdPersonViewWalkthrough.blend

It is the principle that will be used on next generation of BZoo Virtual World:

http://blenderartists.org/forum/showthread.php?t=77049
http://blenderartists.org/forum/showthread.php?t=77057

I take advantage of this post to say that BZoo project is recruting…
Talented people like you would be a valuable help for this project …

Jean-Baptiste

great nuff said

Thorgal>

Yea, that IPO bug makes quite an impact on the 2.4X projects, and I hope they fix it in the next release. Until then you’ll just have to make IPO prop playing objects static, or “bounce” the effects to a dynamic object from a static one (like what I did here). Or you could try to do everything with pure math (a bit more python), which makes things a little harder to handle, but takes this bug out of the equation.

Everyone>

Thank you for your compliments. It feels good to be of service to the community in some way (or at least that what I hope I’m doing here).

Thanks.

Awesome. BTW, I found a better host for you:

http://www.blendenzo.com/Files/walkthrough_bullet.blend

Every time you have added to the community be it Advice, criticism or a helpful tutorial it is a reminder of how much you know and understand both Blender and Python. And I for one have learned much from all the Masters here.

BUT I have also learned much from the silly and sometimes dumb questions that others have had the nerve to ask that I did not, which means I am not any smarter than they are.

So I thank you and all who wish to teach and those who are not afraid to ask.

Once I wrap up my current work on Bullet physics engine refactoring, I will upgrade Blender to the latest Bullet version and work on fixing some bugs, like this one.

THanks for the great work!
Erwin

Wow, the word from the man himself. I am honored.

BTW: Do you also develop the BGE for Linux, or are you windows exclusive and someone else does the linux port? The reason I ask is because there seems to be a major issue with the BGE performance on linux. Specifically, there seems to be some very abnormal framerate tearing on linux (choppy performance) when compared to the same scene running under windows. You can see what I’m talking about just by running this walkthrough template on Linux and then on Windows. It’s very strange, because on linux the framerate is listed as considerably higher, but the performace is choppy non-the less. Do you have any idea what could be causing this, and perhaps how to fix it? There were people who told me it may have something to do with a linux function called “nanosleep()”, which may be preventing blender player to properly synchronize with the CPU clock…honestly though I have no idea, so anything you could tell me about that would be really appreciated.

I really hate having to boot windows just for blender.

blendenzo>

Thank you for hosting this file, and thanks for hosting my pre-develpment planning tut on your site. (Just got news from Dim that it’s on there)

Site is looking great BTW, your really getting things together. I, and many others really appreciate it.

matro>

Thanks.

Hi.
Nice work Social.
But I have to say this with all the respect :
We must not fool ourself. Bullet it’s great but it missing the lack of an object that can be used for character animation. We may find a work around but this is not going to be in a good quality.
In GameDev you may hear of : Swept Spheres , Elipsoid Collision Detection , or something else … Those are special physics or collision detection and response objects that are used for this kind of work. Walkthrough. or we can say a proper collision for a character in a game.
With an object like this you can automatically climb stairs , slide on the walls , slide downhill and maybe more that I am not aware of.
I will say it once more : Bullet is great.
But for us… the GameDevs of BGE it’s almost out of use as we don’t have a proper object for characters…
No offense.

Hello Social
instead of slap people you’ve decided to work?! Getting old? :slight_smile:
Nicely done!
Thank you

I’m just resting my slapping hand. :slight_smile:

Quickly scans forums for unrealistic MMORPG threads.

Hi,

I have used your walkthrough tempalte and it works prety well but when i import my model (a flat created in 3dsmax) i can’t go through it (inside it)

Can you help me with that?

Regards

???
Just place the “player” inside!!??
Or maybe a"normals" problem!
Or materials properties. Look at the template, the ground and walls
have properties assigned
Bye