[realXtend] blender conference talk video
is up on youtube, thanks for the bconf folks - i posted about it to the http://www.realxtend.org/ blog .. http://realxtend.wordpress.com/2011/12/16/tundra-and-blender-integration-demo-presentation/ will need to install blender2ogre on more computers and configure it fully for the nice integration to work etc., has been really nice to have at hand -- thanks Brett for the work, and help with preparing the demo too! ~Toni -- http://groups.google.com/group/realxtend http://www.realxtend.org
Re: [realXtend] For Interest: Dipping a toe in the Open Wonderland
Hi Toni, thanks for the extra info. As I am not a low-level dev. type, I can only really get surface impressions. More core-level insight is always extra interesting. I have a bit of a soft spot for Java as it was the first OO language I managed to get my head around back in the 90's (still haven't really managed that with C++). But in the end, that isn't the level I tend to work at these days, leaning strongly to the content-creation end of things, so using JavaScript (or Python, et. al.) is more suitable for my uses here. On Friday December 16 2011 18:16:21 Toni Alatalo wrote: Were you able to test Wonderland's voice BTW? I wasn't yet but heard it's ok - might be interesting to use that in WebNaali (browsers can't do VOIP yet without plugins). I really didn't get in deep enough for that (in fact I had to shut all the extra services down to get the performance under control to do a quick virtual run-around in the world). I'm more an open a browser in a virtual world person than the other way around anyway. I like to have a quick poke into where things seem to be going across-the- board as I am an insuferable look-see-er, always impatient for something new. :-) I poke my nose in OpenCobalt from time to time too - the serverless peer- to-peer nature of that one is intriguing, though I go hot-and-cold on the pros vs cons of that approach from week to week. -- Sent from my Debian Linux box - http://www.debian.org My technology does what I want, not what some corporation wants. -- http://groups.google.com/group/realxtend http://www.realxtend.org
Re: [realXtend] blender conference talk video
Nice presentation Toni! Hopefully stirred some new interested in realXtend and Tundra. Grey skies, Ali Kämäräinen -- http://groups.google.com/group/realxtend http://www.realxtend.org
Re: [realXtend] blender conference talk video
On Dec 16, 2011, at 1:49 PM, Ali Kämäräinen wrote: Nice presentation Toni! Hopefully stirred some new interested in realXtend and Tundra. Thanks. And it certainly did! Was fun later that afternoon and also during the conference dinner in the evening, people came wondering if their scenes would work. They had they laptops and we just got the blends over with a mem stick, opened them in my laptop in Blender, pressed blender2ogre/rex's world update button, and saw it working ok there in Ogre :) .. and we could then use Tundra's EC editor etc to put SkyX in etc. One person had exactly that need: he needed a good realtime sky vis thing. Otherwise he was happy already with the Blender GE. Other is a French robots lab where they currently already use the Blender GE to simulate environments for robot AI. The AI doesn't know whether it is in RL or just in simulation. They have need for networked things now, so reX-Tundra is interesting. We encountered only one prob: the still missing inverse kinetics. But that's a story on it's own. And one person had nice laser scans, from the Acropolis in Greece actually - we tested it with the raw data, it ran fine (25fps in blender and 50 in tundra-ogre). 700k faces iirc. He had also the cleaned-up optimized ones, but was interesting to see that heavy one. That took a bit of work, eventually I just disabled raycasting alltogether .. as it always crashed in the somehow invalid mesh data. Was a bit tricky to use when couldn't use mouse to select objects for editing, or use the 3d gizmo, but basically ok using scenestruct to find them etc :p But was fun to hack that after the dinner in the restaurant (film museum, actually). A couple of guys watched it from the start, the gdb debugging, so then got a tour of the codebase as i made the hack :p Ali Kämäräinen ~Toni -- http://groups.google.com/group/realxtend http://www.realxtend.org
[realXtend] Re: blender conference talk video
Great presentation! It's very interesting when I see some animals walk around. It seems like blender makes the animation of animals, but can we use javascript to generate animation in real time(just movement)? Currently, I just connect an function using frame.Updated.connect(updates); and define the updates function like below: function updates() { var rot = me.placeable.transform.rot; var scale = me.placeable.transform.scale; var pos = me.placeable.transform.pos; if (tarpos.x pos.x) pos.x = pos.x + moveSpeed; else if(tarpos.x pos.x) pos.x = pos.x - moveSpeed; if (tarpos.y pos.y) pos.y = pos.y + moveSpeed; else if(tarpos.y pos.y) pos.y = pos.y - moveSpeed; if (tarpos.z pos.z) pos.z = pos.z + moveSpeed; else if(tarpos.z pos.z) pos.z = pos.z - moveSpeed; if (tarRot.x rot.x) rot.x = rot.x + rotSpeed; else if(tarRot.x rot.x) rot.x = rot.x - rotSpeed; else if (tarRot.y rot.y) rot.y = rot.y + rotSpeed; else if(tarRot.y rot.y) rot.y = rot.y - rotSpeed; else if (tarRot.z rot.z) rot.z = rot.z + rotSpeed; else if(tarRot.z rot.z) rot.z = rot.z - rotSpeed; me.placeable.transform = new Transform(pos, rot, scale); if(tarpos.Sub(pos).Length() = 0.1 tarRot.Sub(rot).Length() = 0.3) { entity.placeable.transform = new Transform(tarpos, tarRot, scale); } } Reset the object's transform every frame. seems not a good way to do that. :) So, do we have some better way to make an movement? Thank you! Zhao On Dec 16, 6:07 am, Toni Alatalo t...@playsign.net wrote: is up on youtube, thanks for the bconf folks - i posted about it to thehttp://www.realxtend.org/blog ..http://realxtend.wordpress.com/2011/12/16/tundra-and-blender-integrat... will need to install blender2ogre on more computers and configure it fully for the nice integration to work etc., has been really nice to have at hand -- thanks Brett for the work, and help with preparing the demo too! ~Toni -- http://groups.google.com/group/realxtend http://www.realxtend.org
Re: [realXtend] Re: blender conference talk video
Fun to see you are learning Tundra scripting fast. And to answer your question yes this is one way of doing movement if we are talking about pos, rot, scale. You can make it a bit cleaner by just using the transform to assing new values and assign it back to the placeable like so: function updates() { var t = me.placeable.transform; if (tarpos.x != t.pos.x) t.pos.x = tarpos.x t.pos.x ? t.pos.x + moveSpeed : t.pos.x - moveSpeed; if (tarpos.y != t.pos.y) t.pos.y = tarpos.y t.pos.y ? t.pos.y + moveSpeed : t.pos.y - moveSpeed; if (tarpos.z != t.pos.z) t.pos.z = tarpos.z t.pos.z ? t.pos.z + moveSpeed : t.pos.z - moveSpeed; same for rot, just use t.rot whatever else logic you need // Assign back to the full trasnform attribute, no need for new Transform(..) me.placeable.transform = t; } Other option is to use the math library lerp and slerp functions, I have made some camera transition movement animations with them. float3 and Quat for example has them http://clb.demon.fi/MathGeoLib/docs/float3_Lerp.php For the t you can use eg. QTimeLine http://doc.trolltech.com/4.7/qtimeline.html with setting duration and range from 0.0 to 1.0 and connecting to the proper signal. For animations you need to have a EC_Mesh with a .mesh ref and a .skeleton ref set. Then you need EC_AnimationController component in the same entity. This will snoop the available animations from the .skeleton file in the EC_Mesh and you have various playback and stop functions for the animations, eg. me.animationcontroller.EnableExclusiveAnimation(walk, true); See doxygen for morehttp://realxtend.org/doxygen/class_e_c___animation_controller.html . Hope that helps. Best regards, Jonne Nauha Adminotech developer On Fri, Dec 16, 2011 at 11:58 PM, Zhao Boxuan zhaobox...@gmail.com wrote: Great presentation! It's very interesting when I see some animals walk around. It seems like blender makes the animation of animals, but can we use javascript to generate animation in real time(just movement)? Currently, I just connect an function using frame.Updated.connect(updates); and define the updates function like below: function updates() { var rot = me.placeable.transform.rot; var scale = me.placeable.transform.scale; var pos = me.placeable.transform.pos; if (tarpos.x pos.x) pos.x = pos.x + moveSpeed; else if(tarpos.x pos.x) pos.x = pos.x - moveSpeed; if (tarpos.y pos.y) pos.y = pos.y + moveSpeed; else if(tarpos.y pos.y) pos.y = pos.y - moveSpeed; if (tarpos.z pos.z) pos.z = pos.z + moveSpeed; else if(tarpos.z pos.z) pos.z = pos.z - moveSpeed; if (tarRot.x rot.x) rot.x = rot.x + rotSpeed; else if(tarRot.x rot.x) rot.x = rot.x - rotSpeed; else if (tarRot.y rot.y) rot.y = rot.y + rotSpeed; else if(tarRot.y rot.y) rot.y = rot.y - rotSpeed; else if (tarRot.z rot.z) rot.z = rot.z + rotSpeed; else if(tarRot.z rot.z) rot.z = rot.z - rotSpeed; me.placeable.transform = new Transform(pos, rot, scale); if(tarpos.Sub(pos).Length() = 0.1 tarRot.Sub(rot).Length() = 0.3) { entity.placeable.transform = new Transform(tarpos, tarRot, scale); } } Reset the object's transform every frame. seems not a good way to do that. :) So, do we have some better way to make an movement? Thank you! Zhao On Dec 16, 6:07 am, Toni Alatalo t...@playsign.net wrote: is up on youtube, thanks for the bconf folks - i posted about it to thehttp://www.realxtend.org/blog .. http://realxtend.wordpress.com/2011/12/16/tundra-and-blender-integrat... will need to install blender2ogre on more computers and configure it fully for the nice integration to work etc., has been really nice to have at hand -- thanks Brett for the work, and help with preparing the demo too! ~Toni -- http://groups.google.com/group/realxtend http://www.realxtend.org -- http://groups.google.com/group/realxtend http://www.realxtend.org
Re: [realXtend] Re: blender conference talk video
Great! I'll try this, thank you Jonne! On Fri, Dec 16, 2011 at 6:42 PM, Jonne Nauha jo...@adminotech.com wrote: Fun to see you are learning Tundra scripting fast. And to answer your question yes this is one way of doing movement if we are talking about pos, rot, scale. You can make it a bit cleaner by just using the transform to assing new values and assign it back to the placeable like so: function updates() { var t = me.placeable.transform; if (tarpos.x != t.pos.x) t.pos.x = tarpos.x t.pos.x ? t.pos.x + moveSpeed : t.pos.x - moveSpeed; if (tarpos.y != t.pos.y) t.pos.y = tarpos.y t.pos.y ? t.pos.y + moveSpeed : t.pos.y - moveSpeed; if (tarpos.z != t.pos.z) t.pos.z = tarpos.z t.pos.z ? t.pos.z + moveSpeed : t.pos.z - moveSpeed; same for rot, just use t.rot whatever else logic you need // Assign back to the full trasnform attribute, no need for new Transform(..) me.placeable.transform = t; } Other option is to use the math library lerp and slerp functions, I have made some camera transition movement animations with them. float3 and Quat for example has them http://clb.demon.fi/MathGeoLib/docs/float3_Lerp.php For the t you can use eg. QTimeLine http://doc.trolltech.com/4.7/qtimeline.html with setting duration and range from 0.0 to 1.0 and connecting to the proper signal. For animations you need to have a EC_Mesh with a .mesh ref and a .skeleton ref set. Then you need EC_AnimationController component in the same entity. This will snoop the available animations from the .skeleton file in the EC_Mesh and you have various playback and stop functions for the animations, eg. me.animationcontroller.EnableExclusiveAnimation(walk, true); See doxygen for morehttp://realxtend.org/doxygen/class_e_c___animation_controller.html . Hope that helps. Best regards, Jonne Nauha Adminotech developer On Fri, Dec 16, 2011 at 11:58 PM, Zhao Boxuan zhaobox...@gmail.comwrote: Great presentation! It's very interesting when I see some animals walk around. It seems like blender makes the animation of animals, but can we use javascript to generate animation in real time(just movement)? Currently, I just connect an function using frame.Updated.connect(updates); and define the updates function like below: function updates() { var rot = me.placeable.transform.rot; var scale = me.placeable.transform.scale; var pos = me.placeable.transform.pos; if (tarpos.x pos.x) pos.x = pos.x + moveSpeed; else if(tarpos.x pos.x) pos.x = pos.x - moveSpeed; if (tarpos.y pos.y) pos.y = pos.y + moveSpeed; else if(tarpos.y pos.y) pos.y = pos.y - moveSpeed; if (tarpos.z pos.z) pos.z = pos.z + moveSpeed; else if(tarpos.z pos.z) pos.z = pos.z - moveSpeed; if (tarRot.x rot.x) rot.x = rot.x + rotSpeed; else if(tarRot.x rot.x) rot.x = rot.x - rotSpeed; else if (tarRot.y rot.y) rot.y = rot.y + rotSpeed; else if(tarRot.y rot.y) rot.y = rot.y - rotSpeed; else if (tarRot.z rot.z) rot.z = rot.z + rotSpeed; else if(tarRot.z rot.z) rot.z = rot.z - rotSpeed; me.placeable.transform = new Transform(pos, rot, scale); if(tarpos.Sub(pos).Length() = 0.1 tarRot.Sub(rot).Length() = 0.3) { entity.placeable.transform = new Transform(tarpos, tarRot, scale); } } Reset the object's transform every frame. seems not a good way to do that. :) So, do we have some better way to make an movement? Thank you! Zhao On Dec 16, 6:07 am, Toni Alatalo t...@playsign.net wrote: is up on youtube, thanks for the bconf folks - i posted about it to thehttp://www.realxtend.org/blog .. http://realxtend.wordpress.com/2011/12/16/tundra-and-blender-integrat... will need to install blender2ogre on more computers and configure it fully for the nice integration to work etc., has been really nice to have at hand -- thanks Brett for the work, and help with preparing the demo too! ~Toni -- http://groups.google.com/group/realxtend http://www.realxtend.org -- http://groups.google.com/group/realxtend http://www.realxtend.org -- http://groups.google.com/group/realxtend http://www.realxtend.org