Hi all,
I had an idea for a problem that is discussed here for ages. I tried and it is amazing. Now I want to share it as I’m sure you would love it as I do. There is some potential to enhance it.
What it is?
These is a quiz for medium to advanced blender users.
What can you win?
Big eyes and more. Believe me it is worth.
What do you require?
-a working blend file with an animated armature (e.g. a walking person)
-to know how to apply a python script to an object
-to know how to change the color of an object
What do you have to do?
Follow tho below tutorial and answer this question:
What does it do?
Here is the tutorial:
- Select the mesh parented to the armature (e.g. the skin of the actor )
- Make a full copy of it <shift><d> (name it as you like, keep parenting)
- Move the centre of the new object to be at the bottom of the mesh but a little bit above the ground. Do not just move the object as this would distort the mesh. (Hint: leftclick the side/top/front view to move the 3D cursor in the right position/<F9> click “Centre Cursor” in the mesh panel)
- Make your new mesh black without texture (Hint: face select mode <f>/ select all <a>/ texture face panel: disable all except opaque/click ”Copy Draw Mode” /select black color/click “Set VertCol”/leave face select mode <f>)
- Open the text editor and open quiz.py from below
- Add property alpha as float to the logic <F4> of new object (default 23.0)
- Add property length as float to the logic <F4> of the new object (default 1.0)
- Add an always sensor (true pulse on)
- Add a python controller with script quiz.py connected to the always sensor
- Select a nice view to the armature
- SAVE
- Start the engine
quiz.py:
cont = GameLogic.getCurrentController()
own = cont.getOwner()
ori = own.getOrientation()
a = ori
from math import sin,cos
# here you need the properties alpha and length
sinA = sin( own.alpha/9 )*own.length
cosA = cos( own.alpha/9 )*own.length
a00 = ori[0][0]*sinA
a01 = ori[0][1]*sinA
a10 = ori[1][0]*cosA
a11 = ori[1][1]*cosA
a[0][0] = 1.0
a[0][1] = 0.0
a[0][2] = -a00-a10
a[1][0] = 0.0
a[1][1] = 1.0
a[1][2] = a10+a11
a[2][0] = 0.0
a[2][1] = 0.0
a[2][2] = 0.0
own.setOrientation(a)
If I did everything correct and you did everything correct you should now know what it is:) .
Who can answer the question?
[edit:]
We have 3 winners (I think).
Here is the solution for the others:an animated projection shadow for armature meshes on the XY-plane