[Task 3] Modifying Existing Object Function

Rhys

FreeSO Developer
Staff member
Moderator
Summary:
To complete this task, you must modify an existing object to be reasonably different. A minimum example of participation would be a shower that restores motives or something silly like changing the aquarium to electrocute the sim on attempting to feed the fish, killing the fish in the process...

It would be more fun and helpful to do something original, like modifying the Fire object to correctly spread to adjacent tiles, or modifying the McDonalds food objects to kill you after a series of animations, while the attendant performs an evil laugh in the background. Anything you can come up with is likely possible!

Help:
This task is a little more open than 1 and 2, so I can only give you some more general advice.
  • Basic SimAntics Practices, making an interaction (tutorial not yet available)

Submitting Feedback:
upload_2016-2-26_15-18-21-png.1327

After translating your object, go open up the main window, go to the Resources tab, and click "Save All". This will save your changes to "Content/User/objectname.str.piff" and "Content/User/objectname.piff" relative to the FreeSO folder, where objectname is name of the object file you modified.

Upload all files like these to the internet somehow, and create a post like below showing screenshots of it in action and linking to the files. You should also include some feedback on how it went - this is the most important part!!!
 
Last edited:
Example Feedback:

Summary:
upload_2016-2-26_15-51-23.png
13978eef7bff116cf919e47b08065789.gif
a8eca3816ae095ab0732a8df98ae9253.gif

I added an interaction to the fish tank "Make Fish Dizzy", which makes the sim run around the fish tank until the interaction is cancelled (Wait for Notify returns true), then the sim faces the tank, it catches fire, and the sim performs an evil laugh.

Here are the patches generated:
https://dl.dropboxusercontent.com/u/12239448/dizzy.zip

Problems:
It was not readily apparent that I had to set "non-interruptable" to 1 to prevent the interaction from being cancelled when the sim was running around the aquarium. Local selection for Create Object Instance is a little confusing because it does not show names. It wasn't apparent that I needed to make animations false branch back to themselves to get them to fully run!

Things I liked:
The animation browser let me find and select the "evil laugh" animation incredibly easily, the live preview really helped! The categorised primitives helped me find what I needed much faster. The BHAV editor was clean and easy to use.
 
Thank you for participating! Though I would like more specific feedback, specifically about the exact problems you faced when creating the object, or certain features you would have liked to be easier to use or different in some way. Think of it as like reporting a bug, the problem can only be solved if you have the stack trace. :p
 
Explanation:
I selected, Two Objects to this task(Flamingo,Aquarium), anyway its not me have done right,
I'll put it here, in this case I had extreme difficulty finding the animations and some other things.

Images:

0f23243f6d185cd9cd423b16e6ea34b0.gif


4326a594278756b0cfcf259319626c13.gif


ss3.png ss4.png

Archives:


Aquarium: https://mega.nz/#!yMIXBLxQ!MGZ0TS67aLDTUov3hCrEafsdMDoPDyU0y3YZ9zl2n6A
Flamingo: https://mega.nz/#!aIpEALQA!CkjV8yOgewlQkbAfPEDzWyfvlUBaImNO7EWBP-iL9W0

Good and Bad points:

Good Point:
The form in which the interactions and animations are organized for change

Bad Point:
Interface, very complicated for beginners.

(FIXED THE GIFS)
 
Last edited:
Summary:
upload_2016-3-2_16-7-39.png

Example of it in action:
Animation.gif Animation.gif

I edited an existing interaction to the "Single - Sleigh Bed", which enables the sim to enter the bed from they're supposed to, rather than walking to the top of the object. This enables Users to place objects where the boxes are. This also applies to exiting as well.
This is the bed object with the changes I made to it: https://www.dropbox.com/s/c6vz0yktup85swh/bedssingle2.piff?dl=0
Things I enjoyed about Volcanic:
  • Tree editor has a very nice design. I enjoy the face lift you gave it.
  • I really like how Primitives are color-coded. It makes it easy to immediately look and see what Primitive grouping, something belongs to.
  • The animation viewer is very easy to use. I really like the search function, and how you can click any animation in the game, and see what it looks like.
Things I found bad about Volcanic:
  • Numerical values that you would use in an Expression, can be confusing as to what number refers to what. For example: "Expression: side := 1" What side is 1? Trial and error is always an option, but it might speed things up a bit to know what number goes with what.
  • I would really like to see a "select all" or "Delete All" for trees, for anyone who just wants to start from scratch on say, eating a plate of food. If that person wanted to change eating the food to something completely different, like diving into the plate if one the ground, then the plate spawns fire.
 
Last edited:
Really nice work! That expression (side := 1) is like that because it is setting a local variable labelled "side" by the original SimAntics programmers. My only suggestion here is to avoid terrible names for variables when you make your own object. :p
 
Summary:
View attachment 1397
Example of it in action:
View attachment 1398 View attachment 1400

I edited an existing interaction to the "Single - Sleigh Bed", which enables the sim to enter the bed from they're supposed to, rather than walking to the top of the object. This enables Users to place objects where the boxes are. This also applies to exiting as well.
This is the bed object with the changes I made to it: https://www.dropbox.com/s/c6vz0yktup85swh/bedssingle2.piff?dl=0
Things I enjoyed about Volcanic:
  • Tree editor has a very nice design. I enjoy the face lift you gave it.
  • I really like how Primitives are color-coded. It makes it easy to immediately look and see what Primitive grouping, something belongs to.
  • The animation viewer is very easy to use. I really like the search function, and how you can click any animation in the game, and see what it looks like.
Things I found bad about Volcanic:
  • Numerical values that you would use in an Expression, can be confusing as to what number refers to what. For example: "Expression: side := 1" What side is 1? Trial and error is always an option, but it might speed things up a bit to know what number goes with what.
  • I would really like to see a "select all" or "Delete All" for trees, for anyone who just wants to start from scratch on say, eating a plate of food. If that person wanted to change eating the food to something completely different, like diving into the plate if one the ground, then the plate spawns fire.
I updated the post right above this message to show I corrected getting out of bed as well.
 
This is really hard my sims antics skills are not good as expected, i have tried but only achieved to complete interaction using globals.

This computer kill you if you play or stop playing.
fsotask3.png

Thinks i liked:

You can run some primitives easy way, like play animations, or create objects.

Problems.
You cant copy or paste the primitives codes, or cant use them for new Tree.
 
Summary:
ide.jpg
55f163a8747ad9ad5d1c3205b26d0c3d.gif
418f6cbca0232a13e53f6a877d2e7070.gif

I added a new interaction named "Water" to the flamingo object which will clone the flamingo allowing the avatar to pick it up and place it on an available tile nearby.

Download the archive here: http://www.tsomania.net/special/flamingo.piff.zip

Problems:
- When adding a new tree I was unsure what chunk ID to enter. This could possibly be auto-generated as a solution.
- The purpose of the interaction check tree was not obvious, and creating an empty tree that didn't at the very least return true crashes the client.
- Until reading the example feedback, I also didn't realize animations needed to return false on themselves to run which was frustrating.
- I was not able to pinpoint exactly why, but some changes to the interaction trees failed to save and were lost. It mostly seemed to be when changing an animation and nothing else.
- I would have liked a function to copy an entire interaction tree for modification, while keeping the original intact. Also copying and pasting parts of trees from another open window.
- When selecting a primitive, then selecting a true/false then selecting the same primitive again the operand options do not re-appear.

Things I Liked:
- After overcoming the initial learning curve and looking at examples, the tree editor is very simple to use.
- The colour coding of primitives makes it easy to find what you need at a glance.
- I like that the operands for each primitive are listed on the right side, and that there is a small explanation of what they do.
- The debug options (right click to set a break point) are great for finding where your code is failing you.
- The animation browser is great, and adding animations to the current object is very easy. Can't wait to see the same for accessories and sounds :)

Overall, the IDE is shaping up to be an amazing tool. Great job Rhys!
 
Wow, that's participation and a half! Love the use of the repoman fx. Thanks for all the detailed feedback. I think in general the program needs a lot more documentation on how simantics itself works and general object programming practices, such as the false loopback for animations. I should have tracked down all the bugs with adding and removing chunks by the end of march.

Can't wait to see the same for accessories and sounds

This will have to wait for now, but yes I'm planning a similar select-with-preview for these resources too.
 
Last edited:
I decided to go "simple" just to teach myself HOW to make a new interaction.

I decided to allow The Bear statue to be worshipped my yours truly (THE BEARS WILL RISE)

This was a VERY challenging task, as the user interface entered a more advanced state. I decided to try several approaches. "duplicating" trees, copying trees, and quite frankly the solution, because none of the approaches worked, was very simple.

PROBLEMS

I don't believe the user interface is the issue, I'd say the understanding of it is what it is. But I'm sure with proper documentation and tutorials, this will be a much better task in the future for other players/participants.

The end results and solution to everything was very simple, it was my approach of expecting that "copy and paste" would work. It didn't.

As with others, the Chunk IDs were problematic and using a high ID actually caused IDE to bug out when attempting to add it as an interaction.

WHAT I LIKED

If what I think the method of creating new object is then we have a very simplified method of modding objects. This is truly a sandbox of possibilities since my Worship interaction was a lot more simplified than that of the Pet Statue's (which I originally attempted to copy)

The ability to have multiple objects browsers opened at once is also very useful, and should prove a necessary feature for future "modders". I had both the Bear and Bronze Statues open at once to see how to "copy and paste" things.

https://dl.dropboxusercontent.com/u/29154700/FreeSO/WorshipBear.zip

task3-worship1.jpg

task3-worship2.jpg

task3-worship3.jpg

task3-worship4.jpg


LIST OF STEPS

Step 1. I decided to add a Worship interaction to the "Chainsaw" a.k.a Black Bile Bear object.

Step 2. I first thought that the easiest way to go about it was to "duplicate" the Action Tree from the Anniversary Statues. This was a mistake as those were very complicated and replicating it was infact quite impossible (several of the actions seemed to have been different and couldn't replicate them)

Step 3. I struggled on figuring out how to create a new interaction. I run into several problems (program bugged out when the chunk was of the ID 9000), and the game froze when I added my trees with lower IDs.

Step 4. I eventually figured out that I could simply see how the Dizzy Aquarium interaction was made (note, it did not cause fire when cancelled).

Step 5. I noticed that it is optional to have a "Check" tree filled in "Tree Tables" and I was able to add a new interaction that made you "Face the Statue" by creating a simple "Go To Routine"

Step 6. My interaction then quickly became it's own thing once I knew how to add a new interaction.

In retrospective, the process was very simple but my "expectations on how this damn thing worked" made this task a lot challenging than it could've been. But now I know, and I know it's a lot simpler to add.. let the mischief begin :D
 
upload_2016-3-13_10-59-8.png
upload_2016-3-15_19-21-57.png
I made a small modification to the Gold Cat Anniversary Statue, so that there is no random function and so that there are two worship animations. Afterwards, the cat gods are pleased, and the statue is instead replaced with an actual pet cat. This is more of a 'fun' object, nothing too serious, and it's quite a large change from the original (this edit has no random function).

Download:
https://mega.nz/#!BQZTUZKB!JjQ9RVVwGHnRg0WNzLzfRHXFarMpCovYlw420E3h-9I
What I liked:
  • cats
  • Easy to use and change object functions!
  • SimAntics is quite tricky to get used to, but the search box and categories are extremely useful.
  • Most of the primitives are usable (see below).
Problems:
  • Some of the primitives were either unknown or didn't work, but understandably that's not really your fault.
  • SimAntics is very complex, and I'm not sure if I'll ever really get used to it - maybe highlight useful primitives?
  • No copy-paste :(
(Edited to include some extra screenshots & feedback after completing task 5 - hope it still counts!)
 
Last edited:
I made a statue to get ready for that special someone ;)
The sim changes into their swimsuit because it's the closest outfit to underwear.

DL - https://mega.nz/#!PgMhgQoS!qCb84MwGclDXnZ_MdXpLvnAyXEo03HBp4xp38Lv0KYk

y6FPsTU.png

vTKI2ds.gif


Problems:
-If I want to unselect a primitive I started to click on the left, it's annoying to click esc so it doesn't place, you could add a section of the screen you can drag it into and it deletes the selection or maybe make the primitives double click to place?
-A zoom in/out feature for tree editor would cool unless it's difficult to implement
-Documentation plox ;33 (this is the most crucial because my biggest issue is not knowing how to do stuff)
-Copy and paste (as others have said)
-A hot key to unlink primitives if you have a primitive selected
-A multi select tool so you can drag multiple primitives at once (unless you can use shift to select more than one, i forgot to test it)?

Things I liked:
-Animation browser is amazing, great quick search, nice preview and is just really handy.
-Tree editor is very powerful if you know what you're doing.
-The visuals are sleek and nice.
-Overall, a really incredible tool, amazing job man :eek:

I was going to make a fountain you could bathe in but I didn't know how to make the sim go inside the object as it just played the bath tub animations outside of it. Then, I was gonna make a teddy that you could hug but the hug animation didn't fit the teddy so I was thinking about how I could make the teddy float but I wasn't sure how to do that either. Then, my next idea was to make it hug that statue (the gold one above) but the animation didn't reach the actual statue and I didn't know how to make it play closer. In the end, I just made a very basic interaction, hopefully later I can learn more complex solutions so I can do what I initially set out to. Also I wanted to make 3 more statues spawn around the player but.. that was beyond me as well XD
 
Last edited:
Made it possible to upgrade the cheap TV to the moderate one.
Your Sim walks behind the TV, starts upgrading it and BOOM... you have a new TV! :D (Wish it would be that easy in real life...)

TVUpgrade_Demo.gif
Unbenannt.PNG

Download
https://mega.nz/#!uoNS2bqA!xIYQgLgYf2MvV5Ncpe6XYXDligjp8a43PdLgGnXlDus

Things I liked
  • The animation viewer is awesome! To see the animations play while you are searching for the right one to use is tremendously helpful
  • Even though right now you can only select sound effects that are in the object itself, it's nice to have the ability to add a little more polish to your custom functions
  • The Edith like interfaces is the best thing ever!!!
  • The previews, descriptions and tooltips through the whole IDE are really nice and make everything a lot easier
  • The fact that the primitives and expressions create their own return to false if you don't connect them to one is great

Problems
  • Quite a few primitives are unable right now
  • It takes quite some time to get used to creating functions or objects but that is more SimAntics' fault
  • Changing lots with the IDE open creates a new windows every single time, even if there already is a window for the IDE open...
 
Last edited:
Back
Top