i have the following setup in the bge. An Armature with four actions, an armature driven object, some objects for physics visualisation (hair strants). In blender 2.49b i did the following. Two actions are used for aramture control. One to play physics and one to play main actions. Via python i put the positions and rotations of my “Physics Objects” to the action that plays the physics via setChannel() function. Everthing works great. Now i have
opend that file in Blender 2.63 and lot of problems apear. Don’t tell me that I have to convert the python scripts. It’s allready done. The question I have is why the actions don’t mix how they do in Blender 2.49b.
I’m not sure that you understand what I mean, so here is a sample file I have quickle build.
Forgot to say: Open the file and pree ‘p’ to play. (Blender2.49b)
@ RossBlenderArt:
Thanks for your reply. I tryed setting different layers but it doesn’t work for me. Maybe that I dont understand the new action actuator.
By the way. Her is the blendfile in action:
As you can see the mesh is driven by an main action where the hair bones get driven by physics.
When I change the script it is working up to Blender 2.59. SetChannel_2.59.blend (318 KB)
It looks like that the setChannel method is broken since the animation (new action actuator and animation mixing) update from Moguri,
But why you use a script and not a bone copy rotation constraint? I think that is much easier then using a script.
@HG1:
Thanks for your work and your help but…
The problem in adding a copy rotation constraint is that it results in a parenting loop. Head Object is linked to armature, Hair1 object is
linked to head object…, if i add a copy rotation constraint to the needed hair1 and hair2 bone than the bones are linked to the dummy objects and the loop is done. (armature-> HeadDummy-> hair1Dummy->armature). Take a look at your console and you will see what I mean.
Yes know that, but you can ignore this message. There is no difference between the python script and the constraint, both generates a dependency cycle. The only difference is that when you use a script Blender aren’t able to find the dependency cycle.
If you don’t want this message, you can remove the parent from the “HeadDummy” and set the position and rotation according to the “Head” bone with a script.
You can also write a bugreport in th bge bugtracker. Maybe somebody are able to fix the bug.
Thanks for your help again.
As far as I found out right now the setChannel() function is working well. It seems to be a big problem with action mixing and layers and so on. By the way and Im sorry about that but the file you made did not give me the result I need.
I tryed only the action that holds the channels for the physics, putted my script on it and it works. On the other hand you can control the input by using the getChannel() function. If it works there must be a change in the values you get.
Im sorry but I did a mistake. As I tried that I forgot to delete your CopyRotation Constraints so i thought that it works. But sentence 2 is true. The values I get are changing when the little figure is jumping. So the channels may get its new rotation values but don’t give them further to the action.