Nov 22 2009

Blender Conference 2009 – Immersive Worlds

Hi! :D

Just a quick post, I spent the whole week-end trying to rip the video about my talk in Amsterdam during the BC 2009 available on the De Balie website ( http://debalie.nl ). So here it is the presentation, hope you enjoy it!

Akta


Oct 28 2009

Halloween test!

Hello Blender friends,

today I wanted to try quickly some ideas about using the cloth modfier to give more realism to static meshes. So it’s not a big artwork (I made it in 30 mins more or less), but I’m quite satisfied about the result. Since Halloween will be in few days, what could have been better than the classic ghost? :D

If you want to know how to achieve this effect just drop me a line and I can post the .blend file or maybe make a quick tutorial. ;)

Halloween ghost

Halloween ghost

Akta


Oct 27 2009

Blender Conference 2009 – Report

I wish I had a laptop in my brain from where to share every single thing I saw and learnt in my first BC to share that with you guys, unfortunately I can just write a sort of final report on what this experience has been for me.

If you are Blender fans, you must go there. It’s impressive to see how many people love this open-source tool and how much close you can feel to them even though you met them only few minutes before. It’s like everybody there has been your friend since the childhood, there’s feeling between people, a kind of magic friendship in the air which lives under the same flag, Blender.

Besides the human aspect of the conference, where I had the chance to meet really cool people that I knew just because their tutorials or articles on the web (like Sebastian König, Andrew Price, Anfeo and all the italian Blender community), I must say that the quality of the conference was extremely high. This from several points of view: artistic, scientific, organizational.

Artistically speaking I’ve never seen such a good quality artworks made by Blender users. I was especially impressed by the Durian concept art sketches made by the french artist David Revoy. His epic fantasy style really astonished me. Also the Suzanne Award Festival was great. It took me some time before I could decide for whom I was going to vote.

Blender as a tool for scientific applications was an important aspect of this conference. It really showed the endless possibilities that the software can offer also to the scientific community, beyond the artistic one.

Dolf, Anja and Anna. Three words to express the same concept: organization. Without them all of this wouldn’t have been possible, so thanks! :D

Personally I feel really satisfied. The feedback I got from the talk was much more than I expected, people were really excited about the idea of having emotions in games and they come up with several interesting possible applications. I thank them for their support and as I promised my aim for the next year is to release a full game which uses biosignals in realtime :D

If you are interested in paper and abstract, you will find them soon on blender.org, as well as the video of my talk.

If you want another point of view of this conference, I recommend to visit Andrew’s website BlenderGuru , you can find there an article and a lot of cool stuff like tutorials, tips and articles about Blender!

Marco

David Revoy


Oct 12 2009

Blender++

Update!

I’m actually proceeding really fast with the version 1.2 of Blender++. So far here it is what has been included:

  • Queue support. You can now submit as many render as you want. Start and end frame for each blend file is customizable
  • Threads used. You can select how many threads you want to use in your rendering process. This is really helpful when you’re using your machine and don’t want it to be stuck on the rendering (of course you need at least a dual core or better :D )
  • Bug fixes

What needs to be done still:

  • Pause rendering
  • Remote job submission
  • Remote machine shutdown (in case you don’t have access to it :) )

Baked data works fine in your renders as long as you have it baked somewhere and the path is specified in your .blend file. At the moment I’m busy also with the Blender Conference in which I’ll present a new project about games, but I’m quite confident to have 1.2 by the end of this month!

———————————————————————————————————————–

During my spare time I had the chance to develop this handy software which can be used to run background renders with Blender both for single frames or animations. I know that there was already a software calle Fast F12 from super3boy, however even if his idea was brilliant, I didn’t like several things:

  • It’s not opensource
  • It’s only for Wndows
  • It runs using the .NET Framework 3.5, included in Vista but needed if you have Win XP

Moreover what I wanted from this software was a kind of remote control of it. For example, let’s say I start my animation render at home and then I go to the office. At some point I’d like to know the status of the rendering, so I access to my Blender++ server via mobile phone or desktop client and see how is it going. Maybe I want to stop the render for some reason or start a new one. This was not possible with Fast F12, but now it’s included in Blender++.

Summarizing here what we have in this 1.1 version:

  • Background render (single frame/ animation)
  • Progress bar and status bar to have an idea on what’s going on and some render infos
  • Internal server that can be configured and to which we can access to check the render status and stop the job if needed
  • Possibility to set the Blender binary path in case it’s in a different folder than the default
  • Multiplatform support (Win, OSX, Linux)
Blender++ running on Ubuntu Jaunty

Blender++ running on Ubuntu Jaunty

Blender++ was developed entirely in Python and needs wxPython 2.8.1 or higher in order to run on Linux and OSX. For Windows binaries are available so no need to install python on your machine.

What should be done next:

  • Queue support. Now just one job at time can be started
  • Remote job submitting. I have to figure out a couple of things, but should be really easy
  • Show preview, either on the local machine or remote
  • Any suggestion? :D

Of course the source code is available as well for download. Here on sourceforge you can find all the stuff you need, please if you find any bug leave me a message. Comments and critics are really welcome as well :D

Right now you can download:

  • Blender++ (1.1)
  • Blender++ Net Client (1.1). This is a demo client that shows you how you can access to a Blender++ server from a remote machine. Beware that if your network is behind a NAT it won’t work if you try to access from outside the network!
  • Blender++ mobile client. It’s made in Python as well, so you need a Nokia S60 2nd edition or higher phone to run it. You need to install Python as well on your phone, google PyS60 for more infos.

That’s all, hope you enjoy it ;)

ps: now there are only Windows binaries on sourceforge, in the evening I’ll put the source code plus OSX and Linux versions. I need to get back home first :P

pps: I’m back home, Linux and OSX versions are available now! Remember that Python 2.6 and wxPython 2.8.1 or higher is required to run Blender++

Blender++ project page on SourceForge


Sep 27 2009

Endorphin and Blender

Hi guys!

I’ve not been that active lately because I’m  really busy with work, personal stuff and the Blender Conference (oh yeah, I got my talk accepted and I’ll be there presenting it! :D ). Today I’m gonna talk about Endorphin and how to import BVH data from it in Blender. Browsing the web I noticed that there are not so many useful info about the workflow, actually I found just a couple of posts on blenderartists.org where somebody had problem with BVH data exported from Endorphin, but nothing more..

Well basically I had the same big problem with which I’ve been playing around the whole weekend. If you export the animation from Endorphin as BVH and import it in Blender, you will notice how the animation plays smoothly and everything looks in place. But if you try to check the rest pose of the armature, you will find out that is a weird pose, actually nonsense. This implies that parenting it to a mesh will give you an non-sense output as well, nor vertex painting will work! Don’t be desperate! Actually there is an easy way to go around it :D

First step: create your simulation in Endorphin, then export it as BVH

Second step: open Blender, import your BVH file as Empties, not as Armature! Now you will have plenty of empties flying around your 3D view when playing the animation. Now there are two things you can do before importing your character: you can either clean up the empties leaving only the very essential ones that will be used in the IK constrains in your armature or you can leave as they are. This would give a better resolution if your armature has a lot of bones. Personally 10-15 empties were enough for me :)

Third step: import your character! You need to position it as more precise as possible to the empties. This means that joints and empties have to be in the same place otherwise the animation will not be so nice to see :D First add two constrains to the armature root, which is usually in the hip. One IK solver and one copy location. Both to the empty which represents the hip in the simulation imported from endorphin. After that for each couple (bone, empty) add just an IK solver to the bone which has as a target the right empty generated from the BVH. Don’t use the tail! And chain length in some parts has to be changed to 1, lower legs and forearms for example, but you need to know something about rigging to do this. I have no time to explain it here right now :D

Fourth step: tweak and enjoy the final result!

Hope this helped, I’m actually really happy about results I’m getting right now. Oh and I forgot to mention that since all the other contrains, especially IK solvers, were taken in account in the endorphine simulation (for instance knees etc..) you can clear them from the character’s armature.

Here you have the blend file from a quick experiment I made (15 minutes)
Endorphin Blender test
Here it is another experiment I made

Marco


Sep 14 2009

Mike Pan’s Blender source file pack

Directly from BlenderNation, this can be really useful to you guys out there :D

Mike Pan has published the .blend file and textures of 21 of his works (stills, animations and interactive) under a Creative Commons Attribution-Noncommercial-Share Alike License.
Mike writes:

I know I will never be a great writer, so instead of doing tutorials, I have decided to release some of the personal project I’ve worked on. The result is a 300MB folder of 22 project, including a lot of the things on my portfolio and demoreel.

When I was learning Blender, I start a lot of personal mini-project that I never really finished, so instead of having them just sitting on my harddrive, perhaps others can find them useful in some way. The pack contains animations, stills and a realtime game project.

Link


Aug 30 2009

Back to work!

Well I must say that during the summer time I was pretty lazy (who isn’t? :D ), but now that I’m back in my beloved Finland I found some time to study and try to get some skills with Node materials and compositing. I took some character I modeled during the spring time, Vampig, and tried to apply what I learnt from Pablo Vazquez and his amazing DVD Venom’s Lab, released in the beginning of July in the Blender e-shop. I strongly recommend that, beginners-intermediate and advanced users! There are plenty of good tips in there and besides that Pablo looks like a funny guy when he’s explaining Blender stuff, so for sure it won’t be boring! :D
This is Vampig V2, hope you enjoy it!
Akta

Vampig V2

Vampig V2


Jun 22 2009

Object and laser tracking in Blender

Hi!
Before being on holidays I wanted to complete this other personal project using my favourite two toys: Python and Blender :D
Today I’ll show you how to get with cheap technology such as a webcam, a pen and a laser, cool things like object tracking in the BGE. Of course when you don’t have enough money to buy awesome (and really expensive..) hardware, then you go with software solutions.
First of all, what’s object tracking? For those who don’t know it yet, it’s a “is the process of locating a moving object (or several ones) in time using a camera. An algorithm analyses the video frames and outputs the location of moving targets within the video frame.” (from Wikipedia) So basically, it’s like the computer is able to see and detect moving objects. There are many approaches to this, I used laser lights and color-tracking. Somehow color-tracking is simpler, but my plan is of course to do full motion tracking in the future. :D Unfortunately I couldn’t use OpenCV because my webcam was not supported, so I used Videocapture to get PIL data from the webcam, Python Imaging Library (PIL) to handle the matrix and sockets to communicate internally with Blender. Why sockets? Read my previous post :)
Laser tracking is simpler, however you can’t have depth which restricts movements in the BGE to two dimensions. On the other hand tracking objects is good if you want to have a full 3D interaction. How do you get the depth? Just checking the size of the bounding box area, when it gets bigger it means the object is closer and viceversa. Another important concept in this is the threshold. You need some time to tune it in order to get a perfect tracking. Spheres are the easiest to track since the shape doesn’t change if you rotate them. I didn’t have any sphere, so I used also a red d20 from my dungeons and dragons kit :D
Anyway, stop talking, enjoy the video and if you have question post it below ;)
Sources will be available in a couple of days, I need to clean them up a bit from test code and write also some comments. If you are interested in another cool thing about webcams and BGE check this video made by Nathan Letwory, one of the Blender’s coder living here in Finland who I never had the pleasure to meet, but just exchange a couple of emails :D

Sources available! :D Click here to download them!

Akta

Edit: look at what Mike Pan did using BlenderTrack, amazing and brilliant idea. I was actually wondering how to head track using this script, but Mike was faster and smarter than me :D
Enjoy his video and let’s see what comes next!


Jun 11 2009

N95 accelerometer with Blender

Hi, after one busy week I managed to release this first simple demo that shows you how to use the n95 accelerometer as an input device in Blender :D The application is structured in this way:

  • Mobile client, a python script which reads the accelerometer data and sends it via bluetooth to the pc
  • A server that runs on your pc and shares the data with the BGE through a local UDP non-blocking socket
  • A Blender script which handles the cube rotation in the BGE using the n95 accelerometer’s data

Why did I use a local socket? Sometimes I experienced some lag using pyserial in Blender, so to avoid that my idea was to use a non blocking socket. With this approach I had a smooth game running in Blender without any lag.

What do you need to run this? A Nokia N95, a PC/Laptop with a BT connection and Blender of course! :D You need to install PyS60 on your Nokia phone from here. Download both PythonForS60_1_4_5_3rdEd.sis and PythonScriptShell_1_4_5_3rdEd_unsigned_testrange.SIS you need to sign the ScriptShell otherwise the accelerometer data won’t be retrieved by the script due to security reasons of Nokia phones. You can sign it from https://www.symbiansigned.com/app/page using “Open signed online”. I’m going to put the source code of what I did really soon, I want to improve a little bit some part of the code to make it more stable. However even though the scenario I present in this video is really simple, it’s a way to show you how Blender is really powerful (besides modeling, animating, composing, whatever :D ), Python is really one the strongest features that Blender has, since it makes the possibilities of interaction with other apps, device etc,  endless. :) Try for example to imagine the N95 as a joypad for a Blender game WipeOut style (I personally hate WipeOut, but somebody may love it :D ).

So enjoy the video and if you have feedbacks, questions, comments, feel free to ask!

Edit: sources available! Click here to download blender95!

Akta


Jun 8 2009

Stress maps

Sometimes I noticed that is not realistic to animate softbodies without having a good stress map that makes the stretched object to look more realistic. Try for example to think about a balloon, when you fill it with air the material stretches, becoming more transparent on the stressed areas. This effect can be reproduced as well in Blender using stress maps. If you check the second tab of the Texture field in the Material view (Map Input) you can see that one of the possible choices is Stress. That’s what we are going to use in our tutorial and it means that the texture will be mapped on the basis of the difference of edges length compared to the original ones of the mesh. Since a softbody has springs and they stretch, this is perfect for us :D
In this tutorial I’ll assume that you are already familiar with Blender  and know how to follow the basics steps that are not explained in this tutorial ;)
Clear the scene and add a UV Sphere with default values. Add a plane and place it above the sphere, more or less 5 Blender units on the z-axis. Subdivide the plane pressing W and subdivide multi, input 18 and press enter. Switch to weight paint mode and give a weight of 1 to the corners of the plane, so that they don’t float away when we animate it, but they stay still. Name the vertex group softgoal from the Edit panel.
Here it should look the scene after the weight painting:

Weight painting

Weight painting

Create a simple rubber material for the plane, it’s enough to use the default material and assign it your favourite colour, change the specular shader to WardIso (my favourite :D ) to give a shiny, rubbery look. I’ll come back to its stress map later. Set the plane as a soft body from the physics menu and change the values in this way:
- Click “Use goal” and select softgoal that you created previously
- GStiff 0.186
- Bend 0.500

All the rest leave it as default. Now select the sphere and activate collision from the physics tab. Set damping 0.100 , Inner 0.020 and Outer 0.200.
Animate the plane downward, be careful to do not push too down the plane, otherwise it will go through the sphere. This part requires as usual with soft bodies in Blender, some tuning. So play with settings until you have something that looks like the picture below and you get the best result from the soft body solver.

The soft plane stretched

The soft plane stretched

Now you are ready for the stress mapping! First thing add a new texture to the plane material. It should be a Blend texture and the mapping has to be as below:
Map Input -> Stress
Map to -> Col, Alpha then change the mode from Mix to Add.

Now let’s play with the Blend texture! Basically you need something as in the picture below:

Blend texture settings

Blend texture settings

The range of the colorband determines teh range of values between high stress and low stress areas of the mesh. A gentler fade on the colorband yields a gentle fade from low stress to high stress areas and viceversa.
When you’re done, try to render the frame in which the rubber plane is stretched and it should look something like this:

Looks cool! Definitely a realistic soft body!

Looks cool! Definitely a realistic soft body!

Play with settings and try to customize this tutorial as you wish and for your needs! If you have any question, leave a comment below :D