OSC list output help
Closed this issue · 24 comments
Hello maybites,
First of all, I really love the add-on. I somehow found an issue when using the animation node side of the addon (Node messages). I can't send OSC from blender animation nodes. Are there any examples you can share. I would love to use blender as the source of OSC. I want to turn vector data from animation node to osc list. Is this even possible? Would really appreciate the help.
If you could attach your blendfile, I can have a look at it. currently I don't plan for a tutorial, since I deem the node part obsolete - but your usecase might change my mind..
Hello, there sorry for the late reply. I didn't expect you to reply so fast. I was spending some time using the addon and found a problem that I think is more important. I can send you the blend file containing a rig and a sample of the OSC format I am using.
@maybites Right now my concern doesn't really focus on the first problem of couldn't get the output animnode to work anymore. It is now more focused on the actual way I want the addon to help me. I want to use it to receive OSC data from motion capture software. The OSC data have a certain format and I tried using your features to filter the data, but it seems that it can't recieve all the data at once. I believe opening the file will give a better understanding of the issue.
https://github.com/LionGartGithubPage/files. You can find the files here. Please just chat at any time if you would ask for more info if you feel that I am not that clear.
Here is the preview of the Blend file and how I use your addon. You can find the files here. https://github.com/LionGartGithubPage/files. Thank you for your time.
The OSC data have a certain format
can you post the format here?
Mop_Protokol - Copy.txt
VM_protokol_WithNodeOSC - Copy.txt
There are two types of formats. This is the same motion data. Just with a different format. Just in case you might want to inspect the format and try out things. I also have problem turning these float values to a degree either in Euler or quaternion . Maybe that resulted in the failed track.
considering
'/Mop/BoneControl/foot_r', 14.41500473022461, 13.122965812683105, 0.08309781551361084, 0.020568735897541046, -0.4878200888633728, 0.3490883409976959, 0.7998414039611816
assuming this structure: address posX posY posZ quatW quatX quatY quatZ
address: /Mop/BoneControl/foot_r
filter: <empty and not applicable - can only be used on arguments, not on the address itself>
datapath: bpy.data.objects['motion'].pose.bones["RightFoot"].rotation_quaternion
args[idx]: (3, 4, 5, 6)
considering
['/VMC/Ext/Tra/Pos', 'RightHand', -0.2618580460548401, 1.021303653717041, -0.13908575475215912, 0.22606851160526276, -0.016798153519630432, 0.4424645006656647, 0.8676614761352539]
assuming this structure: address bone-name posX posY posZ quatZ quatX quatY quatW
your settings seems to be correct.
I am not sure if datapath 'rotation_quaternion' works on bones just like this. On normal objects you HAVE to switch the rotation-type from 'XYZ-Euler' to 'Quaternion WXYZ' in order to work (I think), but on bones I don't see this possibility - but I am not familiar with bones..
Thank you for your reply. After reading your comment I can say that I have input the correct input for the Node OSC setting. However everytime I start receiving OSC data only one slot of the Node OSC will work. If I have two or more addresses coming in only one slot address will move. If I am listening to two inputs such as the left arm and right arm. Only one arm will move. The weird thing is it work correctly one at the time. Please help me with this. Can Node OSC listen to multiple address at the same time? Using Max as source means the OSC only streamed one at the time like in your tutorial.
can you provide me an example? ideally a blend file and a max patch..
can I send you via email? I did upload the file here https://github.com/LionGartGithubPage/files. What do you mean by a max patch?
The source of the osc data comes from this three 3d tracker program. If you like you can try installing and stream it from it.
https://digital-standard.com/threedpose/ThreeDPoseTracker_Win_x64_v0_2_0.zip. It is very easy to use. Just upload a video to make it work. But if you like I can send anything you like.
Tell me if you like a quick guide to using the motion capture. I know it is a lot to ask of you. But I think using the application to stream the OSC will be the best way to show the problem. Thank you. I think it will just take 4 steps to set up.
if you could provide a movie, that would be cool. So far I am unable to reproduce, nodeOSC seems to work as intended. but I will do more tests tomorrow.
you can find the video here: https://github.com/digital-standard/ThreeDPoseTracker/tree/master/SampleVideo. For the steps.
1.extract the zip file and find the exe.
2. run the exe and it will open a window with a model and everything ready
Thank you for taking the time to do this. Please just tell me anything that you need to make it work. I know it is almost impossible to recreate the problem without using the actual source. I spend some time at the beginning working with Max OSC like in your tutorial and Node OSC works amazingly. It is only when I applied this source it seems to be unable to execute all the OSC at once.
ok, I think I found the bug. My code filters repeating osc messages with the same address. This makes sense in order not to swamp blender in case of hight data throughput, but bites you now. I will add a flag to switch this on and off.
this issue should be fixed with the new release:
https://github.com/maybites/blender.NodeOSC/releases/tag/V2.3
wow, really. Thank you. So now there is a toggle state for enabling repeating OSC data. I will check it out. Thank you for helping me out with this.
Let me know if you can confirm the fix..
This time nothing happend. I check that the stream is coming in but nothing happened.
Hello, I got it working. but just in case would you point out where the filter toggle you mentioned? In case I accidentally pressed it.
Filter incoming...