• Welcome to SC4 Devotion Forum Archives.

SC4 Model Tweaker Development/Support thread

Started by cogeo, April 11, 2009, 02:54:33 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

cogeo

I don't understand, maybe I'm missing something? The offset amount or the scaling factor are entered by the user, and are applied on the S3D file(s) selected. Eg if you enter an offset of 20 meters, the model will be moved by 20 meters (unless the program crahses, or you get error messages), and not less or more. So what is this "confirmation" needed for? If the model is NOT moved by the specified amount, then this should instead be reported as a bug. If the action cannot be completed, you will get error messages. And the reason can hardly be insufficient memory or something like that, I can only think of a corrupted S3D file.

It is suggested that you work on copies of the models you wish to modify, not on the original. Pls take a look at the documentation, esp the Topic "Further Modding Information", it contains some techniques and tips. Do not perform operations on the simcity dats, instead take (local) copies of the models you wish to mod, preferably with changed IDs.

sithlrd98

Hello again Mas san,
I am also not sure of your question. After you move or manipulate the S3D , then save , you will need to open the file that you changed in Reader to confirm that it has indeed changed . The IIDs will still be the same so if , for instance , you are trying to make your Sakura offset , you will need to change the IID so that you will have a "new" Sakura prop. If this is not what you are asking , then please disregard ;D

Jayson

こんにちは再度Masサン、私はまたあなたの質問の確実ではない。または処理するS3Dを動いた後、そしてを除けば、全く変わったことを確認するためにあなたが読者で変わったファイルを開ける必要がある。 IIDsはまだ"を有するように例えばあなた相殺されるあなたの佐倉を作ることを試みれば同じそうIIDを変える必要があるである; new" 佐倉の支柱。 尋ねていることこれがでなかったら、無視しなさい; D Jayson

MAS71

#102
@Cogeo and Sithlrd98
Thank you reply, and I'm sorry to my post that hard to understand for...no good Eng :-[
My request is that as Jayson said. "$Deal"$
Quotethen save , you will need to open the file that you changed in Reader to confirm that it has indeed changed .
i.e, like these.... "$Deal"$


to the last, This is a personal small demand to use more useful. ;)

Thank you again took up to your time, both. :)
-Mas'71

cogeo

#103
@MAS71: Now I see what you mean. Unfortunately I can't perform any updates for the time being, as my test/evaluation version of the development tool expires today. Still, what you are asking for could only be implemented with some much reduced functionality, ie the "editing actions" you have taked would only be displayed during the current editing session. They wouldn't be "remembered" if you close and re-open the file, simply because the .dat file format doesn't contain such information - it contains the S3D (and other files) data, not editing actions.

cogeo

I have just uploaded Version 2.00 of SC4 Model Tweaker on the LEX. It's about the same as V1.70, only the documentation has been updated, and no warning is displayed at start-up, ie it's an "official" version.

As said above, no further changes are possible for the moment, but I will see what I can do about it. But it won't be very soon.

Still, this thread is not closed, you can continue reporting problems or posting requests here.

Have a nice Tweaking experience!

MAS71

@Cogeo
Thank you reply and your understanding. :)
Quote from: Cogeoie the "editing actions" you have taked would only be displayed during the current editing session.
They wouldn't be "remembered" if you close and re-open the file, simply because the .dat file format doesn't contain such information - it contains the S3D (and other files) data, not editing actions.
Yeh yeh, I know that. ;)
I though that want to confirm to thire infomations(current editing-actions) before 'Save' them. :)

well, I'm looking forward to you update a tool when you impossible to do.
I have to say again that It's really useful tool !
Thank you again for your creation Cogeo !!  :thumbsup:

-Mas'71

sdc16064

Is there a possible way to rotate models by 45 degrees instead of 90?

Andreas

No, that won't work, since the models are rendered in 90 degree steps in gmax. The only way to create 45 degree models is rendering them this way.
Andreas

cogeo

Hi all,

I would like to announce that there is going to be a newer version of SC4 Model Tweaker.

The development tool will be MS Visual Studio 2010 Beta 2. This evaluation version will expire by the end of June. It's pre-release, time-sensitive, unsupported software. However, I have tested it and it looks really stable to me, plus there is enough time to fix or work around any possible problems found.

The new version will have some any bugs found in version 2 fixed, plus implement new features (operations).

With the previous versions, there have been reported problems (crashes) running the program under Windows Vista (I'm still unsure about Windows 7). This is possibly due to version conflict between the MFC dlls used by the S3D library and the ones actually installed in Windows Vista (under Windows XP, the very same program runs without any problem). I'm looking for members offering to test-evaluate the tool, particularly under Windows Vista and 7.

The new version, as all previous versions, will be 32-bit as well. While Visual Studio can generate 64-bit applications, the S3D library (S3D.DLL) is 32-bit, and so must be the application calling it. Another alternative could be discarding S3D.DLL completely (and this would solve the crashes problem too), however the question is what to replace it with. If you have any suggestion, or a detailed description of the S3D format, please post.

I haven't yet decided which operations to implement. There are many thoughts and ideas, but as time is limited, I guess I will eventually have to choose only some few ones. As this is tool made specifically for the SC4 modding community, I would like to ask you to post your requests, ideas or suggestions in this thread. Not all requests will be implemented, however if yours looks interesting and useful, it has good chances. Some generic guidelines:
- The requested operarations should be exclusively on S3D files (all other types are ignored by the program).
- The program does not create (new) S3D files, it only modifies them.
- Request operations that are going to save developers' time, eg tedious and repetitive ones, so that's really worth implementing them.
- Do not request features that you are going to use once or twice.
- Provide a detailed description of the operations you are requesting.

I'm going to listen to your requests carefully and comment accordingly.

I would welcome any help related to the documentation of the package (esp from native English speakers).

Looking forward to your replies.

Jonathan

If you want the spec for the S3D you can get it here: http://old_wiki.modthesims2.com/S3D but I dont think its complete.

Also the reader works fine on win 7 / vista with the S3D.dll maybe you can see why it works?

Jonathan

Diggis

Quote from: cogeo on February 11, 2010, 02:57:17 PM
- The program does not create (new) S3D files, it only modifies them.

Just want to query this one.  The one thing I could see as being handy is the ability to change the GUI IDs of a model.  If I want to modify a model which is part of someone elses work it would be useful to modify it and give it a new ID so I get a second copy of it.  It's not creating a new S3D file as such more creating a copy.

cogeo

Quote from: Jonathan on February 11, 2010, 11:46:42 PM
If you want the spec for the S3D you can get it here: http://old_wiki.modthesims2.com/S3D but I dont think its complete.
Indeed, not complete, a lot of "unknown" fields. Another link maybe? Anybody else?

Quote from: Jonathan on February 11, 2010, 11:46:42 PM
Also the reader works fine on win 7 / vista with the S3D.dll maybe you can see why it works?
The S3D.DLL is the same in both cases of course, but there are differences in the calling environment. For example, the tweaker is unicode, while the reader is not; this forced to me to change the dll's interface, to make it work for unicode applications. Also the tweaker uses the static version of the MFC library, while the reader uses the dynamic one (a non-option, again). And finally the tool used to make the tweaker is 10 years newer, while the reader and S3D.DLL were made with the same version of tool (VC 6). I have checked the code again and again and there are no problems there (besides, it does work under XP), so the problem can be attributed to differences in the operating environment (the MFC dlls' version is my guess).

I will need testers (Windows Vista and/or 7 owners, who do experience the crash problem, with the current version) to test this further.

Quote from: Diggis on February 12, 2010, 04:14:56 AM
Just want to query this one.  The one thing I could see as being handy is the ability to change the GUI IDs of a model.  If I want to modify a model which is part of someone elses work it would be useful to modify it and give it a new ID so I get a second copy of it.  It's not creating a new S3D file as such more creating a copy.
Don't understand exactly, can't this be done by using the reader alone? I mean select the models, copy-and-paste them and then mass-renumber them (using the TGI editor function). And it's not tedious at all. Do you think it's really worth making this? Or I'm missing something here?

Diggis

Quote from: cogeo on February 12, 2010, 11:51:38 AM
Don't understand exactly, can't this be done by using the reader alone? I mean select the models, copy-and-paste them and then mass-renumber them (using the TGI editor function). And it's not tedious at all. Do you think it's really worth making this? Or I'm missing something here?

That will change the GID of the S3D files and the FSH files, however it won't change the links to the FSH files from the S3D files, which would require editing each of the 20 S3D files.  While on a small model this may not be so bad it could be quite laborious on a large model with multiple FSH files for each S3D file.

I could be wrong about the process as I've never actually attempted it, only considered it.

dedgren

QuoteI would like to announce that there is going to be a newer version of SC4 Model Tweaker.

That is absolutely fantastic news!  Thank you, cogeo, for putting so much time and effort into this great tool.


David
D. Edgren

Please call me David...

Three Rivers Region- A collaborative development of the SC4 community
The 3RR Quick Finder [linkie]


I aten't dead.  —  R.I.P. Granny Weatherwax

Skype: davidredgren

Jonathan

Cogeo, I think what Diggis is suggesting is the same thing as what I suggested in my PM to about "finding and replacing" the IIDs of textures in S3Ds:
QuoteOne really really useful (far more useful than my previous suggestion) feature would be bulk find and replaceing texture IIDs in S3D files.
What I mean is, there are say 20 S3D files each contain a material with the IID 0x12345678, if I want to change all of the materials which IID is 0x12345678 to 0x87654321 then in the reader I have to open the S3D open the mats tab, select the material, right click and select Change Instance/Name, paste the new instance, click OK, Click Apply move on to the next, when you have 20 models this is boring but when you have many more it's near impossible. So could you add a feature which finds all the materials in a selection of S3D files which matches an IID and the replace all of it with a new IID?

Diggis

Yeah, pretty much.  My thought was to change the texture IDs, S3D ID's and the paths in the S3D files.

cogeo

The texture replacer is an operation that I think would make sense. To make it as useful and veratile as possible, I'm considering making it taking two fields as input, the selection filter (IIDs) and the replacement IID, both accepting wildcards like "?", meaning "any value" and "#", meaning "equal to the model's IID digit", as well as literal hex values (0..F). Any proposals here?

Are there any other requests or ideas?

As for the Vista/Win7 crash issue. I have not yet got any responses from people who experience the problem and would be interested in testing it.

I have also found a bug, in the Scale operation, when scaling along the X- and Y-only axis is requested (deforming). Looks like nobody has used these.

Also there are some linguistic thngies that were not OK, both in the program and the documentation, eg "twaker" instead of "tweaker", or "nominator" instead of "numerator". All these are going to be fixed, and I would like to ask you to report even such "minor" or "not critical" things, if you find any.

Jonathan

Maybe a feature to change the Material to the IID of the S3D? Could be useful for things like puzzle pieces potentially.

I tried to scale a model in Win 7 and Visual Studio asked to debug which I clicked yes to and it came up with this message several times:
Unhandled exception at 0x77a64230 in SC4MDT.exe: 0xC0000005: Access violation reading location 0x000005fa.

I have no idea what it means or if its useful

cogeo

Quote from: Jonathan on February 14, 2010, 12:15:09 PM
Maybe a feature to change the Material to the IID of the S3D? Could be useful for things like puzzle pieces potentially.
This should be possible, by using the # wildcard I mentioned above (I'm trying to make it flexible). For example, a replacement ID mask of 0x######## should make the material ID equal to the S3D, while a mask of 0x##7###?? should make the 3rd digit 7, leave the last two unchanged and make the rest equal to the S3D (each digit is changed separately).

Quote from: Jonathan on February 14, 2010, 12:15:09 PM
I tried to scale a model in Win 7 and Visual Studio asked to debug which I clicked yes to and it came up with this message several times:
Unhandled exception at 0x77a64230 in SC4MDT.exe: 0xC0000005: Access violation reading location 0x000005fa.

The crash problem is known, and it's caused by heap corruption. Interestingly, compiling the project with the new VC++ may solve it, but it may not as well. I believe it can be solved by using a different MFC dll, but we have to test it.

Jonathan

I would have thought the wildcard woulf take the numbers from the IID in the find box.

So if you do:
Find: 0x12345678
Replace: 0x#66#677#

You would get:
0x16646778

By IID of the S3D file I meant the one that is in the Dat file so like in the reader where you have a list of files. not an IID inside the S3D.