Hi there! You are currently browsing as a guest. Why not create an account? Then you get less ads, can thank creators, post feedback, keep a list of your favourites, and more!
Eminence Grise
#326 Old 12th Jun 2011 at 6:31 AM
Quote: Originally posted by rothn
Attached is a video of my salute animation ingame and the animation itself.


Did you mean to attach something to this?
Advertisement
Field Researcher
Original Poster
#327 Old 12th Jun 2011 at 7:09 PM
Yeah, I just fixed the attachment.

The reason the build isn't out is because I changed something, and now the TS3 engine won't start up.

Error: Keyboard not attached. Press F1 to continue. - Windows XP Setup
Hey! It compiles! Ship it! - Microsoft
Love is Hate. War is Peace. Windows is stable. - 1984 (sort of)
One horse disagreer of the Apocalypse
#328 Old 12th Jun 2011 at 7:41 PM
Oh dear... sounds rather dire :0

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
Field Researcher
Original Poster
#329 Old 12th Jun 2011 at 8:38 PM
LOL, I had Fullbuild0.package open in SimPE, but I had like ten debugger windows trying to figure out the problem, so I didn't see it! When I finally shut down windows for the night, I saw S3PE...

***A WARNING TO ALL USERS***
Before assuming TS3 Animator is broken, make sure that NOTHING is using any of the files used by TS3, as the TS3 engine loads every package file referenced by every Resource.cfg on your disk.
I wasted 5 hours of debugging on this, so, to put it in modern terms, learn from my fail!

Also, I apologize to everyone who had to wait for the build. The UI still isn't done, as I finally figured out that the strange Xaml parse error was not an Xaml parse error, but in fact a sharing violation in the native code of TS3.

TS3 Animator will be released soon, but the idiot-proofing and UI are still works in progress. I guess I'll just have to assume that you guys aren't idiots..

Error: Keyboard not attached. Press F1 to continue. - Windows XP Setup
Hey! It compiles! Ship it! - Microsoft
Love is Hate. War is Peace. Windows is stable. - 1984 (sort of)
Field Researcher
Original Poster
#330 Old 13th Jun 2011 at 6:05 AM
OK, attached to this post is TS3 Animator 4 Beta 1. Though it doesn't have anywhere near the features of TS3 Animator 3, TS3 Animator 4 will export animations to the game, and they will look EXACTLY as they do in Blender. However, I have not yet implemented the exporting of any mesh except for the nude adult female (sounds bad, lol, "It was the first one I saw, honest!"). This is mostly because I didn't want to hunt down any more than the 10 resource keys already required (see below for the amount of typing required). If anybody wants to post the geometry resource keys of anything but the adult female (remember, only use lod1 if there is no lod0), then it will keep its rightful place at the end of my list of priorities.

If you want to add more geometries, please give them to me in either the format of:

this
Code:
SimGeometry g1 = new SimGeometry(DatabaseFunctions.GetFileFromPackage(ResourceTypes.kGeometryResourceID, "afShoesNudeafShoesNude_LOD1_fit", false));
or this
Code:
SimGeometry g2 = new SimGeometry(new MemoryStream(ResourceMgr.FindRecord(new Sims3.CSHost.ResourceKey(0x015A1849, 0x00F3E7A0, 0x00000000BB04D86D))));


**Important Note**
While TS3 Animator EXPORTS perfectly, the IMPORTING is still a bit... shaky (lol, try it). Therefore, I recommend that if you don't plan on creating your animations from scratch that you use Wes's old tool if you for some reason desire a reference when making your animations. I would, however, recommend that you instead take a look at Blender's IK abilities.

**Important Note 2**
The files exported by my tool will almost certainly crash Milkshape, as they have over 256 bones.

Code:
SimGeometry g1 = new SimGeometry(DatabaseFunctions.GetFileFromPackage(ResourceTypes.kGeometryResourceID, "afShoesNudeafShoesNude_LOD1_fit", false));
            SimGeometry g2 = new SimGeometry(new MemoryStream(ResourceMgr.FindRecord(new Sims3.CSHost.ResourceKey(0x015A1849, 0x00F3E7A0, 0x00000000BB04D86D))));
            SimGeometry g3 = new SimGeometry(new MemoryStream(ResourceMgr.FindRecord(new Sims3.CSHost.ResourceKey(0x015A1849, 0x00D05442, 0x00000000B9A67B74))));
            SimGeometry g4 = new SimGeometry(new MemoryStream(ResourceMgr.FindRecord(new Sims3.CSHost.ResourceKey(0x015A1849, 0x0096A5A6, 0x0000000067F52E5F))));
            SimGeometry g5 = new SimGeometry(new MemoryStream(ResourceMgr.FindRecord(new Sims3.CSHost.ResourceKey(0x015A1849, 0x00BEE823, 0x00000000FB1E684D))));
            SimGeometry g6 = new SimGeometry(new MemoryStream(ResourceMgr.FindRecord(new Sims3.CSHost.ResourceKey(0x015A1849, 0x00BEE823, 0x00000000ECC7C689))));
            SimGeometry g7 = new SimGeometry(new MemoryStream(ResourceMgr.FindRecord(new Sims3.CSHost.ResourceKey(0x015A1849, 0x0092C87E, 0x000000001F686A3C))));
            SimGeometry g8 = new SimGeometry(new MemoryStream(ResourceMgr.FindRecord(new Sims3.CSHost.ResourceKey(0x015A1849, 0x00BEE823, 0x00000000ECC7C68A))));
            SimGeometry g9 = new SimGeometry(new MemoryStream(ResourceMgr.FindRecord(new Sims3.CSHost.ResourceKey(0x015A1849, 0x00FB2018, 0x000000001FA2F615))));
            SimGeometry g10 = new SimGeometry(new MemoryStream(ResourceMgr.FindRecord(new Sims3.CSHost.ResourceKey(0x015A1849, 0x00BEE823, 0x00000000ECC7C68B))));
            SimGeometry[] geometries = new SimGeometry[] { g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 };

Error: Keyboard not attached. Press F1 to continue. - Windows XP Setup
Hey! It compiles! Ship it! - Microsoft
Love is Hate. War is Peace. Windows is stable. - 1984 (sort of)
Field Researcher
Original Poster
#331 Old 13th Jun 2011 at 7:30 AM
Inge, let's discuss this more later, but how's this: I can use S3PI if I provide the code that loads and saves the package files. The reason I need it is so that I can extract dependencies from the game that are needed to initialize the game. It's a catch-22 that can only be solved with an external package library (I don't know HOW EA solved it...)

Error: Keyboard not attached. Press F1 to continue. - Windows XP Setup
Hey! It compiles! Ship it! - Microsoft
Love is Hate. War is Peace. Windows is stable. - 1984 (sort of)
One horse disagreer of the Apocalypse
#332 Old 13th Jun 2011 at 9:16 AM
Nick, you also need to bear in mind you are using some of Wes's code and he may not be happy about you releasing that open source. When choosing your libraries you always need to bear in mind licence compatibility issues. Peter's choice of licence actually means that if you use his library anywhere in your tool, your entire tool needs to be open source. You may be able to get round this by making a two-tool suite, each one technically a standalone .exe, which "talk" to each other - eg the one that opens the package (open source) sends data to the one that edits the animation (closed source).

To a certain extent, Peter's been turning a blind eye to minor oversights, so as not to place obstacles in the way of sims community modding. But as a developer you need to at least understand what the terms are and how you could comply if necessary

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
Field Researcher
Original Poster
#333 Old 13th Jun 2011 at 3:52 PM
I only use S3PI in GetDependencies.exe. I am posting the source code here

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.IO;
using s3pi.Package;
using s3pi.Interfaces;
using System.Reflection;

namespace ConsoleApplication1
{
    class Program
    {
        [return: MarshalAs(UnmanagedType.BStr)]
        [DllImport("Sims3Common.dll")]
        private static extern string App3D_GetHighestGameExePathName();

        // Copy all recuqired dll files, etc. to the 
        private static bool acquirePrerequisites()
        {
            RegistryKey uninstallKey = Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("Microsoft").OpenSubKey("Windows").OpenSubKey("CurrentVersion").OpenSubKey("Uninstall");

            string[] subkeys = uninstallKey.GetSubKeyNames();

            string worldBuilderPath = "";
            foreach (string str in subkeys)
            {
                RegistryKey subKey = uninstallKey.OpenSubKey(str);
                string displayName = (string)subKey.GetValue("DisplayName", "");
                if (displayName.Contains("The Sims™ 3 Create a World Tool"))
                    worldBuilderPath = (string)subKey.GetValue("InstallLocation");
            }

            if (worldBuilderPath.CompareTo("") == 0)
                return false;

            // copy over the dlls
            foreach (string file in Directory.GetFiles(worldBuilderPath, "*.dll"))
            {
                string fName = file.Substring(file.LastIndexOf('\\') + 1);
                if (!File.Exists(Path.GetDirectoryName(System.Reflection.Assembly.GetAssembly(typeof(Program)).Location) + '\\' + fName))
                    File.Copy(file, Path.GetDirectoryName(System.Reflection.Assembly.GetAssembly(typeof(Program)).Location) + '\\' + fName);
            }

            string pth = App3D_GetHighestGameExePathName().Remove(App3D_GetHighestGameExePathName().LastIndexOf('\\'));

            foreach (string file in Directory.GetFiles(pth, "*.package"))
            {
                Package pkg = (Package)Package.OpenPackage(0, file);
                foreach (IResourceIndexEntry entry in pkg.GetResourceList)
                {
                    if (entry.ResourceType == 0x073FAA07)
                    {

                        ScriptResource.ScriptResource res = new ScriptResource.ScriptResource(0, pkg.GetResource(entry));
                        byte[] currentAsmBytes = res.Assembly.ReadBytes((int)res.Assembly.BaseStream.Length);
                        Assembly currentAsm = Assembly.ReflectionOnlyLoad(currentAsmBytes);
                        FileStream fs = new FileStream(Path.GetDirectoryName(System.Reflection.Assembly.GetAssembly(typeof(Program)).Location) + '\\' + currentAsm.ManifestModule.ScopeName, FileMode.Create);
                        fs.Write(currentAsmBytes, 0, currentAsmBytes.Length);
                        fs.Close();
                    }
                }
            }

            return true;
        }
        static void Main(string[] args)
        {
            acquirePrerequisites();
        }
    }
}

Error: Keyboard not attached. Press F1 to continue. - Windows XP Setup
Hey! It compiles! Ship it! - Microsoft
Love is Hate. War is Peace. Windows is stable. - 1984 (sort of)
Field Researcher
Original Poster
#334 Old 13th Jun 2011 at 4:01 PM
Remember how I said that a build TS3 Animator was attached to my post two posts ago? Yeah, it isnt...

It is, however, attached to this post.

Installation Instructions
  1. Copy the contents of the zip file to a directory of your choice.
  2. Navigate to the TS3 Animator folder in that directory.
  3. Run GetDependencies.exe
  4. Use as you see fit.

As you see from the instructions, you no longer need to copy any files to the TS3 Animator directory manually. However, you must have the Create-A-World Tool and at least the TS3 base game installed for the tool to work.
Attached files:
File Type: zip  TS3 Animator.zip (5.20 MB, 36 downloads) - View custom content
Description: TS3 Animator 4 Beta

Error: Keyboard not attached. Press F1 to continue. - Windows XP Setup
Hey! It compiles! Ship it! - Microsoft
Love is Hate. War is Peace. Windows is stable. - 1984 (sort of)
Field Researcher
Original Poster
#335 Old 13th Jun 2011 at 6:45 PM
I now believe that TS3 Animator deserves its place back in the programs and utilities section. This will remain archived, but I would like permission to start from scratch and create a new thread for TS3 Animator in the downloads section.

Error: Keyboard not attached. Press F1 to continue. - Windows XP Setup
Hey! It compiles! Ship it! - Microsoft
Love is Hate. War is Peace. Windows is stable. - 1984 (sort of)
One horse disagreer of the Apocalypse
#336 Old 13th Jun 2011 at 6:56 PM
Have we yet had feedback from people making game content using it? Just to be completely sure it's all working now?

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
Field Researcher
Original Poster
#337 Old 13th Jun 2011 at 7:04 PM
I have made at least 5 animations with it. I know it works. The importer is screwy, but that can't be fixed due to the design of the format. The only choice is to import an animation with Wes's old tool, as it works by only importing certain bones. One possible solution is that I could just chop off the first frame of animation, but, when it comes down to it, these errors are due mainly to us not knowing precisely what type 0x10b in the frame data does. I guess it is a null translation, but it could also have something to do with the bind matrix... I don't want to break my tool by chopping off the first frame of animation when importing, since when somebody figures out what 0x10b does, it will simply be a quick-and-easy plug-in fix.

What I am saying is that TS3 Animator works as well as it does with the knowledge that we have. I know personally that the export functionality is flawless, and I have even done testing (internal, no UI yet) with events and IK chains, and, used in conjunction with the appropriate SACS (JAZZ) scripts, those work flawlessly, too.

Error: Keyboard not attached. Press F1 to continue. - Windows XP Setup
Hey! It compiles! Ship it! - Microsoft
Love is Hate. War is Peace. Windows is stable. - 1984 (sort of)
Test Subject
#338 Old 13th Jun 2011 at 10:01 PM
Quote: Originally posted by rothn
Installation Instructions
  1. Copy the contents of the zip file to a directory of your choice.
  2. Navigate to the TS3 Animator folder in that directory.
  3. Run GetDependencies.exe
  4. Use as you see fit.


I'm following this topic with anticipation You made a lot of progress since I tried your tools around October last year. I'm using a custom animation made by the old version in my mod, and managed to extract an anim, load in blender, and reimport to the game with changed names with custom .jazz machine using the version linked at the beginning of this topic and loving how smooth it all works compared to the old versions (alas the reimported animation was malformed from waist down after exporting from Blender, and had sucked-in face as another poster reported already).

However the new version (4.0) crashes at launch after following these instructions. MSVC debugger says it's:

"XamlParse Exception was unhandled"
"The invocation of the constructor on type 'TS3_Animator.MainWindow' that matches the specified binding constraints threw an exception."

Looks like a simple file not found exception/invalid pathing fron the inner exception messages. The GetDependancies console tool did not create any files, is that normal?

At the moment I have the base game installed, running windows XP, english version, if that's any help for the pathing issue.

Anyway anxiously awaiting any updates on this, great work.
Test Subject
#339 Old 13th Jun 2011 at 10:44 PM
Quote: Originally posted by Inge Jones
Have we yet had feedback from people making game content using it? Just to be completely sure it's all working now?
It just crashes with no message for me.
Test Subject
#340 Old 13th Jun 2011 at 11:45 PM
Quote: Originally posted by 3MTA3
It just crashes with no message for me.


The same for me, with or without the granny2.dll in the app folder ...

I was running TS3Anim of drive C, sims directory on drive H. Then I moved TS3Anim to H, to the EA folder and got the same problem.

CAW present, Base game, XP sp3, framework 4.
Field Researcher
Original Poster
#341 Old 14th Jun 2011 at 1:45 AM Last edited by rothn : 14th Jun 2011 at 2:00 AM.
Why does it not work on your systems? Does the command prompt say anything? Do you guys have .NET framework 4? GetDependencies should generate a ton of dll files.


Wait, what operating systems are you guys using? Also, if your versions of TS3 aren't legal, this tool won't work. I don't know for sure if it works on anything lower than Vista, but I assume that nobody still has a legacy system if they run TS3 with any sort of decent graphics.

Error: Keyboard not attached. Press F1 to continue. - Windows XP Setup
Hey! It compiles! Ship it! - Microsoft
Love is Hate. War is Peace. Windows is stable. - 1984 (sort of)
Test Subject
#342 Old 14th Jun 2011 at 2:21 AM
Quote: Originally posted by rothn
Why does it not work on your systems?
That's a question for you
Quote: Originally posted by rothn
Does the command prompt say anything?
What command prompt? I only get a command prompt from GetDependencies.exe.
Quote: Originally posted by rothn
Do you guys have .NET framework 4?
Yes.
Quote: Originally posted by rothn
GetDependencies should generate a ton of dll files.
It does. I start out with 17 files and end up with 41 files.


Quote: Originally posted by rothn
Wait, what operating systems are you guys using?
HPUX 10.2
Quote: Originally posted by rothn
Also, if your versions of TS3 aren't legal, this tool won't work.
Is that a state or federal law? :-)
Quote: Originally posted by rothn
I don't know for sure if it works on anything lower than Vista, but I assume that nobody still has a legacy system if they run TS3 with any sort of decent graphics.
Really I have Windows 7 and XP

I think what you are missing is instructions on how to use this, including any prerequisite applications or files and what exactly it is supposed to do.
Lab Assistant
#343 Old 14th Jun 2011 at 2:57 AM
Hi rothn, I have windows 7 x64, .NET 1-4 installed, and legal TS3 installed, and the granny2.dll in the same folder and cannot get it to work either. GetDependencies.exe worked just fine, it brought all of the DLL files to the folder, but when I run the program: "Import Animation", "Export Animation", "Export Mesh", basically no matter which button I click the program just shuts down with no error message.
Field Researcher
Original Poster
#344 Old 14th Jun 2011 at 3:08 AM
Don't put your own granny2.dll in that folder. If you want to do it manually, copy granny2.dll from your Create-A-World directory (NOT Granny Crowd Demo)

Error: Keyboard not attached. Press F1 to continue. - Windows XP Setup
Hey! It compiles! Ship it! - Microsoft
Love is Hate. War is Peace. Windows is stable. - 1984 (sort of)
Field Researcher
Original Poster
#345 Old 14th Jun 2011 at 3:11 AM
Oh, and 3MTA3, TS3 Animator does not currently support any version of unix. You need an 8086-based system with Windows installed on it to run TS3 Animator.

Error: Keyboard not attached. Press F1 to continue. - Windows XP Setup
Hey! It compiles! Ship it! - Microsoft
Love is Hate. War is Peace. Windows is stable. - 1984 (sort of)
Field Researcher
Original Poster
#346 Old 14th Jun 2011 at 3:12 AM
I think I just realized the problem: Do you have The Sims 3: Late Night? I think I accidentally linked to those dlls.

Error: Keyboard not attached. Press F1 to continue. - Windows XP Setup
Hey! It compiles! Ship it! - Microsoft
Love is Hate. War is Peace. Windows is stable. - 1984 (sort of)
Test Subject
#347 Old 14th Jun 2011 at 3:19 AM
Quote: Originally posted by rothn
Don't put your own granny2.dll in that folder. If you want to do it manually, copy granny2.dll from your Create-A-World directory (NOT Granny Crowd Demo)
GetDependencies.exe is what puts granny2.dll into your folder.
Test Subject
#348 Old 14th Jun 2011 at 3:20 AM
Quote: Originally posted by rothn
Oh, and 3MTA3, TS3 Animator does not currently support any version of unix. You need an 8086-based system with Windows installed on it to run TS3 Animator.
I am being facetious.
Test Subject
#349 Old 14th Jun 2011 at 3:21 AM
Quote: Originally posted by rothn
I think I just realized the problem: Do you have The Sims 3: Late Night? I think I accidentally linked to those dlls.
Yes I do.
Lab Assistant
#350 Old 14th Jun 2011 at 3:43 AM
Sorry, copying over a granny2.dll from the crowd scene demo was an afterthought after it didn't work the first time. The steps I took were:

- Download, and extract.
- Run GetDependencies.exe
- Run TS3 Animator.exe
- File>New
- It seemed to create an empty tab, so I clicked on that and it generated an "Actor" input and a dropdown for "Animation Clip"
- After clicking that I get the "Animation Name", and "Source File" inputs, and 3 buttons, any of which immediately exit the program when clicked

Maybe the "4. Use as you see fit." isn't so clear. I see many options but they all ultimately lead to the program silently exiting
Page 14 of 17
Back to top