-
-
- (0)
-
premium membership
-
Posts
29
|
|
So far I'm pretty disapointed with the Avatar support. The lack of any firm commitment to releasing the skeleton that actually allows any creator to animate the avatars, is quite frankly silly.
Given all of this. What exactly am I supposed to do with avatars within a game. Have them just stand around emoting?
It pretty much renders them a useless novelty addition. I was looking forward to creating a game around my avatar but, instead I can only make him appear and emote or have some random avatar appear and er...emote. Pretty much removes any incentive to use avatars at all really.
Hopefully someone from microsoft will recognise this is a pretty silly situation and make some effort to rectify it as soon as possible.
For all things there is a first time , a best time and a last.....
|
|
-
-
- (15152)
-
premium membership
MVP
-
Posts
8,451
|
|
Penhalion Wolfe:So far I'm pretty disapointed with the Avatar support. The lack of any firm commitment to releasing the skeleton that actually allows any creator to animate the avatars, is quite frankly silly.
Given all of this. What exactly am I supposed to do with avatars within a game. Have them just stand around emoting?
It pretty much renders them a useless novelty addition. I was looking forward to creating a game around my avatar but, instead I can only make him appear and emote or have some random avatar appear and er...emote. Pretty much removes any incentive to use avatars at all really.
Hopefully someone from microsoft will recognise this is a pretty silly situation and make some effort to rectify it as soon as possible.
That's your opinion and you're entitled to it. Your opinion, however, is not necessarily the truth.
Consider:
Jeopardy or Wheel of Fortune type game - the available animations are just about all that's needed
Simon Says type game - play with just the 31 available animations
There's also another option - work on the core of your game until the avatar stuff is available. Of course, that might be too logical a thing to do. 8|
It's starting to sound like the Valve forums around here with all the Left 4 Dead 2 haters morphing into avatar restriction haters. :(
Jim Perry - Microsoft XNA MVP If people spent a minute searching the forums and reading the FAQs before posting I'd be out of a job. Got some XNA Game Studio/XNA Framework development info to share with the community? Put it on the XNA Wiki. Please mark posts as Answers or Good Feedback when appropriate.
|
|
-
|
|
|
I think the best way is just to live by the rule set by Microsoft (and try to find workaround if any).
Anyway, we should be thankful that we have some support for avatar. Good job XNA team!
-tep
|
|
-
|
|
|
I'm sure they'll release some resources soon enough. In the meantime, you could make a skeleton on your own, testing it out on your xbox. In fact, I made one, but won't be able to test it until next weekend at the earliest.
|
|
-
-
- (12865)
-
Team XNA
-
Posts
8,532
|
|
Penhalion Wolfe:The lack of any firm commitment to releasing the skeleton that actually allows any creator to animate the avatars, is quite frankly silly.
As we've already said several times, we are working on getting the skeleton rig out to you guys.
XNA Framework Developer -
blog - homepage
|
|
-
|
|
|
Shawn Hargreaves: Penhalion Wolfe:The lack of any firm commitment to releasing the skeleton that actually allows any creator to animate the avatars, is quite frankly silly.
As we've already said several times, we are working on getting the skeleton rig out to you guys.
That's great! Is the team planning on releasing a test model or something of the sort as well?
|
|
-
|
|
|
I can't get this working - is that because of the aforementioned problems with Game Studio 3.1 Xbox distributable? I'm a complete n00b (downloaded everything yesterday evening, UK time, so I think I should have the latest versions etc), so forgive me if this is a stupid question! When I try to do AvatarDescription.CreateRandom() I get a "System.InvalidOperationException". I also seem to have zero "SignedInGamers", so I can't try to load my own avatar either?!
|
|
-
-
- (1900)
-
premium membership
-
Posts
636
|
|
You need to add a GamerServices component in your games constructor.
|
|
-
|
|
|
UberGeekGames:Why don't you write a wrapper for the Avatar classes, that wraps everything in #if PC blocks. If it's in PC then it would draw wireframe bones of where the Avatar's bones matrix would be, and if it's on the Xbox then it would continue as normal. That probably wouldn't be too difficult to do and would solve a lot of problems without having to bug the XNA Team.
I have no problem with that, its just not very useful to provide the API on a PC and not support it - I'd rather just not have it present. I'm not going to cry about it, but I think that an opportunity was wasted. I develop for my 360 but usually on my PC, as its easier and I dont have to disturb the main TV while I code. XNA was about making developers lives easier originally, but it turns out we have to write our own APIs to do what the API should do but doesnt.
|
|
-
|
|
|
Barkers Crest:You need to add a GamerServices component in your games constructor.
Brilliant - thanks!!! I'm still waiting to catch you online to swap a course or two and maybe even have a round ... you've created a wonderful game and it turns out you're helpful too! Thanks again.
|
|
-
-
- (1900)
-
premium membership
-
Posts
636
|
|
thedo666: UberGeekGames:Why don't you write a wrapper for the Avatar classes, that wraps everything in #if PC blocks. If it's in PC then it would draw wireframe bones of where the Avatar's bones matrix would be, and if it's on the Xbox then it would continue as normal. That probably wouldn't be too difficult to do and would solve a lot of problems without having to bug the XNA Team.
I have no problem with that, its just not very useful to provide the API on a PC and not support it - I'd rather just not have it present. I'm not going to cry about it, but I think that an opportunity was wasted. I develop for my 360 but usually on my PC, as its easier and I dont have to disturb the main TV while I code. XNA was about making developers lives easier originally, but it turns out we have to write our own APIs to do what the API should do but doesnt.
666,
One thing you'll learn around these parts is that the XNA team is not big and has a smaller set of resources than most people think it does. Basically, we get what we get when we get it or the other option is we get nothing at all. The community is expected to fill in the missing pieces so the XNA team can focus their resources on functionality that has a high ROI for everyone.
I would venture to say that Avatars on windows would be convenient for us but would require a high investment of resources on the XNA team that just wouldn't be worth it. I can't speak for them, but I'm pretty sure they designed it so that the API is present on PC so we don't have to write a bunch of #if statements...along with leaving the API extensible to PC should there ever be Avatars on PC down the road.
I'd much rather write a 1 day stand in component for testing while the XNA team moves their focus to Natal and other cool things.
Stephen Minton:
Brilliant - thanks!!! I'm still waiting to catch you online to swap a course or two and maybe even have a round ... you've created a wonderful game and it turns out you're helpful too! Thanks again.
Hey, no problem. I'm a hard guy to catch online these days as I'm usually on the laptop in dev mode...understandable so. :)
If you catch me send me a message and we'll get a round or two in and I'll share some courses with you.
|
|
-
-
- (14666)
-
premium membership
Team XNA
-
Posts
9,316
|
|
thedo666:I have no problem with that, its just not very useful to provide the API on a PC and not support it - I'd rather just not have it present.
I disagree. I would much rather they have it no-op than to force me to put #if XBOX/#endif around all my avatar code. That'd be even more annoying.
Again, the problem isn't the XNA team; the problem is that Windows LIVE doesn't support avatars. So the best the XNA team could have done was draw some bone debugging lines or boxes which is the same thing any of us can do. The only difference is that if they did it, people might come to rely on that behavior which would make it harder for the framework to adapt should Windows LIVE ever support avatars.
What I'd like to see is some gracious community member write up and share a class that wraps the avatar, providing debug rendering of the bones for Windows. Then every dev can just grab that and not have to write their own code to see some render from their avatar code.
|
|
-
-
- (258)
-
premium membership
Team XNA
-
Posts
209
|
|
We understand that it is very important for developers to be able to create their own custom animations. We are working on some educational resources that will help with this. We will let everyone know when it is ready.
Dean Johnson, XNA Framework Developer - Blog: Nerd Herder
|
|
-
|
|
|
Hi,
Apologies if I came across as being an ungrateful child at xmas - I tried not to and didnt mean to, but it appears thats the impression I left.
At the end of the day its an API, and like any API, some people will love and defend feature X, while others think its completely wrong. I've **not** said I think that the XNA team ought to develop a debug renderer. I said it was dissappointing that they hadnt and a missed opportunity (in my opinion). I understand true Xbox 360 Avatar support was never going to be on the cards on the PC, and fully expected to have to write different code paths for the game to run properly on both platforms.
I'm not sure why you'd be so against having to put #ifdefs in your code- you'll have to anyway surely as you replace your avatars with something that will work on the PC (unless you are just using the PC version to debug and arent relying on actually having a public PC build?). As I stated above, everyone has their own opinion, and a full right to it.
Anyway, Avatars - I'm sure are great for those willing to put in the time to use them, it just wont be me unfortunately
Off to see how well the video playback works on my PC :)
|
|
-
-
- (258)
-
premium membership
Team XNA
-
Posts
209
|
|
|
|
-
-
- (0)
-
premium membership
MVP
-
Posts
169
|
|
|
|
-
-
- (190)
-
premium membership
-
Posts
328
|
|
Quick non-avatar 3.1 question:
Is it possible to run the solution upgrade tool externally, eg, via the command line? (Perhaps I've missed something but I can't seem to find any documentation on this).
Thanks.
Xen: Graphics API for XNA www.codeplex.com/xen
|
|
-
-
- (1984)
-
premium membership
-
Posts
372
|
|
Shawn:
While the skeleton hasn't been released, if we can get the skeleton info ourselves, would there be any objections to using it on the Microsoft end?
It seems fairly easy to get the skeleton using the ParentBones and BindPose members in AvatarRenderer. The hardest part is just getting it in a format the DCC tools will like and writing a quick exporter (not hard in MEL, MaxScript, or VBscript for XSI).
|
|
-
-
- (12865)
-
Team XNA
-
Posts
8,532
|
|
Sowaz:While the skeleton hasn't been released, if we can get the skeleton info ourselves, would there be any objections to using it on the Microsoft end?
It seems fairly easy to get the skeleton using the ParentBones and BindPose members in AvatarRenderer. The hardest part is just getting it in a format the DCC tools will like and writing a quick exporter (not hard in MEL, MaxScript, or VBscript for XSI).
IANAL, but it seems to me that any data you can get by calling publicly available API's would be fair game, assuming there's nothing in the EULA to forbid that? (I must confess, I haven't actually looked at the 3.1 EULA :-)
XNA Framework Developer -
blog - homepage
|
|
-
-
- (1984)
-
premium membership
-
Posts
372
|
|
Don't suppose you can tell me if I'm on the right track? :-) Obviously I'm not actually expecting an answer there, but...

It certainly *looks* like a skeleton to me. There are a few stray bones around the hand area that I'm not so sure of.
I reckon there are two different skeletons - one for male and female - since there are two different sets of animations in the AnimationDescription class. But this is mostly wild speculation on my part until I get to do some more prototyping.
My Maya knowledge is rough enough that I'm not sure how to set this as a bind pose so that exported animations come out right, nor do I really know how to spit out animation data, but if memory serves there's a Collada skeleton loader floating around the internets somewhere that might be useful there.
If anyone wants to see the code that generated this, I'd be happy to send it; it's mostly an ugly hack using Debug.WriteLine to write the bind pose matrix information, since you can't get those on the PC.
|
|
-
|
|
|
Nice work Sowaz! Let us know how it animates. :D
One part in particular left me a bit confused:
The features of an avatar cannot be hidden or in obscured and cannot be replaced with alternative items. Items such as, but not limited to, masks, hats and alternative clothing, are not allowed
How strict is this? Can we dress up avatars made for NPC usage? Would giving something like, say...a cape power-up to a player's avatar break the rules? Are images rendered with these avatars subject to this as well?
|
|
-
-
- (1984)
-
premium membership
-
Posts
372
|
|
I am invincible!
It took a fair bit of hackery, but here's the whole process:
(1) For each bind pose bone in the AvatarRenderer.BindPose, I decompose the matrix into its translation, scale, and rotation components (converting the rotation Quaternion into Euler angles); using this information and the ParentBones list, I'm able to construct a series of MEL joint creation statements that builds the skeleton. It's not the greatest skeleton in the world - there are no IK interactors or anything; an artist would probably have to add those in, and it's beyond my Maya skill level. At any rate, the resulting skeleton seems correct.
Also, a bit of hackery goes on here: the BindPose is only available on the 360, not the PC. I use Debug.WriteLine to spit out the BindPose data I need and copy-paste from there into a MEL script file.
(2) Create animations and export them as .fbx (Maya should come with a plugin for this).
(3) Using the SkinningSample's SkinnedModel and SkinnedModelPipeline, it was pretty easy to load the .fbx file along with the animations stored in the .fbx.
(4) Updates happen using the AnimationPlayer from the sample. I also update the AvatarAnimation, since it's the only way to update the facial expression. Hooray for morph targets.
(5) When drawing, use the AnimationPlayer's GetBoneTransforms. Note, however, that this array needs to be rearranged, since the loading from the .fbx likely didn't bring them in in the right order. Luckily all my joints were named 'joint1', 'joint2', 'joint3' as the result of my MEL statements, so this rearranging wasn't so tricky.
(6) Also for the bone transforms, I only take the rotation component. I was getting some weird skewing. This was probably an art problem and shouldn't really be necessary, though.
If anyone wants more information or would like me to throw along my solution files, I'd be happy to. Just give me some time to clean the code up. :-)
Of course, you could also be patient developers and wait until the XNA guys actually release the skeleton...
|
|
-
-
- (8879)
-
premium membership
-
Posts
3,746
|
|
Sowaz: So that animation is exported from a modeling app?! COOL!!!
I had toyed around with doing something similar last night. I whipped up a networking app for the Xbox and PC that sends the Avatar's BoneTransform data over System Link to my PC, where it's serialized into an XML file. If you need help getting more binding positions I'll be more than happy to help with that - since I have the raw data in XML there's no limit to how you can process it with an XNA app.
Nick Gravelyn:
What I'd like to see is some gracious community member write up and share a class that wraps the avatar, providing debug rendering of the bones for Windows. Then every dev can just grab that and not have to write their own code to see some render from their avatar code.
That's what I was working on yesterday. As soon as it's finished I'll gladly upload it here for others to use (need to do some debugging and code cleaning first).
"Software is never finished, it is in varying states of 'less broken'" because "If it ain't broke, it doesn't have enough features yet" In Playtest: Avatar Land | The MANLY Game for MANLY Men The signature that was too big for the 512 char limit
|
|
-
-
- (1984)
-
premium membership
-
Posts
372
|
|
UberGeek: Indeed, that's a Maya animation.
I think the original BindPose is all that's really needed for an artist to work with, and to my knowledge there's at most two of those (but very possibly only one; I still need to pull out a female character and check). But if I run into a situation where I need more data, I'll be sure and give you a shout.
I would very much like to see the debug renderer. I'd really like to see something that supports work away from the 360 for those of us doing dev on laptops. Is that what you're doing, Uber? Without the animation data in AvatarAnimation used for the default animations, that seems really hairy, like you'd have to sample all those animations yourself and store that data away if you wanted to use them on a PC - is this why you made your app over System Link? Or is it simpler than that? I haven't tried using AvatarAnimation on a PC, but my hunch is it will always give the same BoneTransforms.
|
|
-
-
- (8879)
-
premium membership
-
Posts
3,746
|
|
Sowaz:Indeed, that's a Maya animation.
Impressive! Can it export the bones to something that us mere mortals can afford like Blender? ;-) I'd love to see that in action, especially the skeleton in a blender-compatible format.
Sowaz:I would very much like to see the debug renderer. [...]
On the PC, trying to get the AvatarAnimation's BoneTransforms gives you a list of matrices that are all blank. So what I'm doing is modifying my original System Link app to send all of the animation data over. I'm setting it up to get all of the BoneTransforms matrix data for each frame (at 60/second intervals) for each animation, and send it over to the PC to be saved. Then in my Avatar wrapper class it will load all of that, and mimic the AvatarAnimation behavior so that on the PC it will load the appropriate animation data and use that.
That way you can use all of the default animations on the PC, and then render it in wireframe (which my wrapper will also take care of). It's filled with #if !XBOX blocks, so if you're on the Xbox it ignores the PC code.
Once your code is finished, we could try to integrate it, so the wrapper can use user-created animations as well. Hopefully this will simplify avatar usage!
"Software is never finished, it is in varying states of 'less broken'" because "If it ain't broke, it doesn't have enough features yet" In Playtest: Avatar Land | The MANLY Game for MANLY Men The signature that was too big for the 512 char limit
|
|
|