Xbox 360 Support

Jul 2, 2008 at 11:33 PM
I read on the Home page that this library supports the Xbox 360.  I have all of my code set up but when I go to change the Content Processor of the model, XNAnimation isn't listed.  In the 0.7 beta release, there is only an XNAnimation.dll file in the Xbox 360 folder.  I've adding this to the references for the project and it works, but shouldn't there be something to add to the references for the content folder?  I've tried adding the XNAnimation.dll file as a reference to the content folder as well as the XNAnimationPipeline.dll file from the Windows folder, but it doesn't work.  How do I add the processor?
Coordinator
Jul 3, 2008 at 12:10 AM
The assembly that you need to compile your assets using the XNAnimation is the XNAnimationPipeline.dll, which is inside the Windows folder. This assembly is inside the windows folder because even if your game is a XBox game your game assets are processed on the Windows.

So, you just need to add the Windows/XNAnimationPipeline.DLL to your ContentProject references. And then, change your model processor to "Model - XNAnimation"
Jul 3, 2008 at 4:25 AM
Edited Jul 3, 2008 at 4:27 AM
I've tried that already but it doesn't list the processor.  And now, I retried it and when I hit properties on a model, it doesn't list any importer or processor.  Then, once I click on the drop-down arrow for the processor, it actually freezes Visual Studio 2005 and I have to close it.  This only happens when I have the XNAnimationPipeline.dll added as a content reference.  Does it work for you?

Here's an image of the problem
Coordinator
Jul 3, 2008 at 6:32 PM
That's odd. Try creating a new clean Xbox game project and add a model to its content project. Than look if the mode processors are correct listed there. Then, add the XNAnimationPipeline assembly and and try to change the model processor again.

Thinking about it, the XNAnimationPipeline uses the XNAnimation assembly and maybe it is using the Windows assembly since both are on the same folder.... Can you chec this too? I will provide both assemblies separated in the next release.
Jul 3, 2008 at 11:25 PM
Creating a new project did not solve anything, but adding the Windows XNAnimation.dll did.  It added the "Model - XNAnimation" processor to the list, but since it's using the Windows dll, you get an error trying to deploy to the 360.

I downloaded the source code and tried to compile my own 360 XNAnimationPipeline.dll yesterday, but that didn't work either.  I might have just did it wrong though.  When is the next release?
Coordinator
Jul 4, 2008 at 1:58 AM
Sorry for these problems, I did not tested the beta on the Xbox before releasing it. My Creator's Club signature expired and I can't renew it from Brazil (my country). I will try to use the trial signature from DBP. I next beta release will probably come next week fixing some issues and with Xbox support (I hope).
Jul 4, 2008 at 4:11 AM
Sweet, thanks...
Jul 14, 2008 at 7:01 AM
Any progress?
Coordinator
Jul 14, 2008 at 6:45 PM
Unfortunately, not yet... I will try to work on it today.
Coordinator
Jul 16, 2008 at 8:16 PM
Hi,
I've just uploaded the BETA2 which correct problems on ATI video cards and is fully compatible with Xbox 360.
Jul 17, 2008 at 3:48 AM

It's still not working for me.  I get this error whenever I add the XNAnimationPipeline to the content's references for an Xbox 360 project.

Error 1 The "BuildContent" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load file or assembly 'XNAnimationPipeline, Version=0.7.0.0, Culture=neutral, PublicKeyToken=0c21691816f8c6d0' or one of its dependencies. The system cannot find the file specified.
File name: 'XNAnimationPipeline, Version=0.7.0.0, Culture=neutral, PublicKeyToken=0c21691816f8c6d0'
   at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
   at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.Load(String assemblyString)
   at System.UnitySerializationHolder.GetRealObject(StreamingContext context)

   at Microsoft.Xna.Framework.Content.Pipeline.WorkerAppDomain.RemoteProxy.LoadAssemblies(String[] searchAssemblies, String[] dependencies)
   at Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.Execute()
   at Microsoft.Build.BuildEngine.TaskEngine.ExecuteTask(ExecutionMode howToExecuteTask, Hashtable projectItemsAvailableToTask, BuildPropertyGroup projectPropertiesAvailableToTask, Boolean& taskClassWasFound)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

Coordinator
Jul 17, 2008 at 6:24 AM
It was my mistake. I added the XNAnimationPipeline.DLL to the Xbox 360 folder but you should not use this DLL. You need to use the XNAnimationPipeline.DLL that is inside the Windows folder, because your assets are compiled on the Windows. And then, you need to add the XNAnimation.DLL from the Xbox folder.
Jul 17, 2008 at 10:50 PM
Forgot to mention I already tried that yesterday.  I am getting this error which now seems to be happening whether I use the Windows or the Xbox 360 XNAnimationPipeline.dll:

Error    1    The "BuildContent" task failed unexpectedly.
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
   at System.Reflection.Module._GetTypesInternal(StackCrawlMark& stackMark)
   at System.Reflection.Assembly.GetTypes()
   at Microsoft.Xna.Framework.Content.Pipeline.AssemblyScanner.GetSearchAssemblyTypes()
   at Microsoft.Xna.Framework.Content.Pipeline.WorkerAppDomain.RemoteProxy.LoadAssemblies(String[] searchAssemblies, String[] dependencies)
   at Microsoft.Xna.Framework.Content.Pipeline.WorkerAppDomain.RemoteProxy.LoadAssemblies(String[] searchAssemblies, String[] dependencies)
   at Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.Execute()
   at Microsoft.Build.BuildEngine.TaskEngine.ExecuteTask(ExecutionMode howToExecuteTask, Hashtable projectItemsAvailableToTask, BuildPropertyGroup projectPropertiesAvailableToTask, Boolean& taskClassWasFound)


The processor only shows up in the list if I only use the Windows files.
Coordinator
Jul 18, 2008 at 4:08 PM
Hi. It's odd. I tried creating a new Xbox Game Project and adding the assemblies and it worked here. Maybe I added the wrong assemblies to the ZIP file, I will check it again.
Coordinator
Jul 18, 2008 at 4:27 PM
I tried it again now and it worked fine for me. I just created a new Xbox Game project, added the XNAnimationPipeline.DLL to the Content project references, added a model and its texture, changed the models processor to "Model - XNAnimation". Then, I added the XNAnimation.DLL (from the Xbox folder) to the references of the main project, and created a SkinnedModel and an AnimationController on the code. It compiled and deployed ok to my xbox
Jul 18, 2008 at 11:03 PM
Edited Jul 18, 2008 at 11:05 PM
With the help of your above post, I finally got it working.  The reason why it wasn't working is because I just copied the XNAnimation.dll from the Xbox 360 folder and the XNAnimationPipeline.dll from the Windows and moved them to my project's main folder and referenced them from there.  When it came time to build the game assets, XNAnimationPipeline.dll was looking for the Windows version of XNAnimation.dll, which I did not have in my project's folder.  I did not think it was necessary.  It makes sense though, since you kepted saying the assets are built on Windows first.  Both Windows files and the XNAnimation.dll file from the Xbox 360 folder are needed.  This makes me wonder if BETA 1 actually did work or not.

Alright, thanks for the help.  I have one off topic question for you.  Can you bind a model to a certain bone (i.e. having a sword stay in place with a hand)?
Coordinator
Jul 19, 2008 at 5:54 PM
Copying both files to the same directory will not work. The XNAnimationPipeline uses the XNAnimation dll while processing the models, and if you put the Xbox XNAnimation assembly in its directory it will try to use it while processing the models on Windows. That's the reason you were having problems.

About attaching a weapon to the players hand, you should do that in the update method of the animation controller. When you update the sword, you should set the parent transformation as the player hand. And you can get that from the animation controller of the player.
Jul 23, 2008 at 9:33 AM
Adding the windows pipeline dll and the Xbox animation dll, I get an error at runtime, while loading the model, stating that it can't find the SkinnedModelReader in XNAnimation.Pipeline.
I've been trying various things for the past 3 hours, sample projects just to test a model on Xbox, and even running the sample provided with the sources on Xbox, and I've been given the same error each time.
Coordinator
Jul 23, 2008 at 2:48 PM
Hi. Did you follow the steps of my previous post (posted Fri at 1:27 PM)? I tried the XNAnimation 0.7 Beta2 on the Xbox two times and it worked fine. Make sure you are NOT copying the DLLs to your project folder. If you want to copy it, you should copy the entire XNAnimation folder. You could also have this problem if you have assets compiled with one version of the XNAnimation and are trying to load them using another version.
Sep 2, 2008 at 3:46 AM
I'm getting the same problem as Feed.

I set up a new XNA 2.0 Xbox game project in visual C# 2005 express, added the references to the right dlls (reference to the 360 dll for the pipeline, reference to the x86 dll for the game), added a model and everything builds flawlessly, until I run it on the xbox and get this:


An unhandled exception of type 'Microsoft.Xna.Framework.Content.ContentLoadException' occurred in Microsoft.Xna.Framework.dll

Additional information: Error loading "TestModel". Cannot find ContentTypeReader XNAnimation.Pipeline.SkinnedModelReader, XNAnimation, Version=0.7.0.0, Culture=neutral, PublicKeyToken=121fbd51268a0405.


I even tried making SkinnedModelReader public, and instantiating a new one before I loaded the model, and it ran fine, no errors, so a 360 version of SkinnedModelReader is definitely in there... 

I've tried all sorts of other stuff as well, running the samples, referencing the project instead of the dll, copying/not copying, and nothing seems to work, it's always the same error.

What am I doing wrong?

Dec 4, 2008 at 2:21 AM
Ok, here it is Dec 3rd and I'm getting the exact same error when trying to run on the 360.  "Cannot find ContentTypeReader XNAnimation.Pipeline.SkinnedModelReader, XNAnimation, Version=0.7.0.0"


Any resolution to this issue?

Robert
Dec 4, 2008 at 7:20 PM
Read the post from Jul 18 at 6:03 PM.  You have to use both Windows files and the XNAnimation.dll file from the Xbox 360 folder.
Dec 4, 2008 at 10:00 PM
Driklyn,

Thanks for taking the time to respond!  That particular issue isn't my problem (Jul 18) at all.  I can build and deploy successfully.  The problem I have is that once deployed, my game fails on the Content.Load for the Model.  With the error "Cannot find ContentTypeReader XNAnimation.Pipeline.SkinnedModelReader, XNAnimation, Version=0.7.0.0" when clearly the XNAnimation library is deployed on the 360 and functioning.  Which is the exact problem that Billard reported on Sept 1st.

Robert
Jan 20, 2009 at 10:23 AM
Edited Jan 20, 2009 at 10:24 AM
Hi,

I have the same problem on the Xbox:
"Additional information: Error loading "characters\lilShroomer". Cannot find ContentTypeReader XNAnimation.Pipeline.SkinnedModelReader, XNAnimation, Version=0.7.0.0, Culture=neutral, PublicKeyToken=121fbd51268a0405."

I have XNAnimation as Xbox project in my solution, compilation works, but at run time I get the error mentioned above.
Has anybody resolved this?

Thanks in advance!
Chris
Jan 21, 2009 at 7:21 AM
I have the same Content Type Reader problem and can't come up with an answer.  I'm using XNA 3.0 and have no problems debugging with Windows, but when I create a new xbox project and adjust the dlls I get a run-time error. 

Let me know if you can come up with a solution.

Michael
Jan 21, 2009 at 8:15 AM
Yeah, forgot to mention that I'm also using XNA3.0.
I guess the only way to find out what's wrong is to dig into the reader code, but since exams our on the way, I probably won't find time before mid of February.
Jan 27, 2009 at 2:50 PM
Hi,

I got this working on the XBOX360 with XNA 3.0 with regards to the error - Cannot find ContentTypeReader XNAnimation.Pipeline.SkinnedModelReader.

I can't take credit for the solution.

Goto line 24 in AssemblyHelper.CS of the XNAnimationPipeline project and change the token to 0c21691816f8c6d0

The line should read:

private static readonly string xboxPublicKeyTokens = "0c21691816f8c6d0";

Hope this helps.

Bino



Jan 27, 2009 at 4:54 PM
Very cool!
I'll try that right away tomorrow and post my results.
Jan 28, 2009 at 9:25 AM
It works perfectly!
Apr 14, 2009 at 10:26 PM
Fancy sharing your dll? I cant get it work :/
Apr 15, 2009 at 6:39 AM
I've uploaded my converted solution:
http://giggsy.3d-diggers.de/XNAnimation.zip

I had no good experience when referencing the DLLs in my project/solution, so i added the 3 projects (XNAnimation, XNanimation for XBOX and Pipepline) to the solution, and added them as references where I use XNAnimation.
You might wanna try that too if you run into errors ;)

Apr 15, 2009 at 10:24 AM
Worked cheers :D
May 11, 2009 at 12:10 PM

Hi, I am creating a microsoft 3.0 game (not an xbox game) and trying to use XNAnimation dll files.

I add the XNAnimation.dll file to the project references and the XNAnimationPipeline.dll file to the content references but still do not get the Model - XNAnimation content processor option.

If i save and exit the project then reopen it, I can't even change the models content processor.  If I try to open the content processor drop down list, my project crashes.

Can anyone please help me resolve this problem?

May 11, 2009 at 9:06 PM

hmm.. that maybe sounds more like a Visual Studio / XNA installation error?

What version (both, XNA and VS) are you exactly using?

Jun 16, 2009 at 12:30 PM

'Hi, I am creating a microsoft 3.0 game (not an xbox game) and trying to use XNAnimation dll files.

I add the XNAnimation.dll file to the project references and the XNAnimationPipeline.dll file to the content references but still do not get the Model - XNAnimation content processor option.

If i save and exit the project then reopen it, I can't even change the models content processor.  If I try to open the content processor drop down list, my project crashes'

 

I have the same problem. I am using XNA 3.0 and VS C# Express 2008.

Please help

Jun 16, 2009 at 2:25 PM

Hi,

try including the project in your solution, and not de precompiled DLL. Maybe that works...