|
Post by Sérinion on Mar 18, 2020 6:48:51 GMT -5
Hello Sérinion . Sorry in my late reply. I dont have jungle adventures. But hope i will guide you. You need to rehash the asm where the jungle bottle is and change the id of the bottle prop at the ASM with your custom bottle. The id its located at object definiton or object catalog at warehouse of the custom bottle. To change the duration you need to change the duration of the visibility event at the clips that uses the bottle in the asm. As I said before you need to rehash the asm where the bottle is used and put the new hash in a new animation tuning that uses this new asm, and call the new animation tuning in your custom iteraction. hope it helps. Thanks a lot for your answer. I admit not understood everything, but with your indications I will try to find where this ASM is located and change this. best regards
|
|
|
Post by FlowersSimFactory on Jun 9, 2020 9:01:41 GMT -5
so I've got this to work with one flaw I cant seam to get my sim to go to the object' the animation starts where ever the sims at. any suggestions. I've posted images and test file hereI know this is old but I also have this problem. necrodog I made the animation in blender at the object's root. So is there a way to make it play where the object's root bind is? Also would it be possible to animate an object using this method and combine it with a sim animation? (and make them play at the same time?) Annd final question, would it be possible to play an animation and then another one after that. For example, a person taking a seat followed by the person sitting idle. And to maybe play an animation when the interaction is cancelled? Thank you for the help!
|
|
|
Post by necrodog on Jun 9, 2020 13:06:55 GMT -5
Hello @flowerssimsfactory. Making custom animations is a bit difficult. To solve the problem you are talking about the sim doing animation outside the object. I suggest using the mirror_PsychSelfUp iteraction as a base for your object and work in this iteraction. And replace there
<V n="content" t="staging_content"> <U n="staging_content"> <U n="content_set"> <L n="affordance_links"> <T>13643<!--mirror_SelfPepTalk1--></T> <T>98860<!--mirror_SelfPepTalk5--></T> <T>13645<!--mirror_SelfPepTalk3--></T> <T>145174</T> </L> </U> </U> </V>
with
<V n="content" t="looping_content"> <U n="looping_content"> <U n="animation_ref"> <T n="factory">15502997405417868490<!--necrodog:Animation-UseCarousel--></T> <---your animation id instead of mine <U n="overrides"> <V n="balloons" t="enabled"> <L n="enabled"> <U> <L n="balloon_choices"> <U> <V n="item" t="balloon_icon"> <U n="balloon_icon"> <V t="resource_key" n="icon"> <U n="resource_key"> <T p="generated" n="key">2f7d0004:00000000:F1E6250F6570BDB2</T> <--- custom dstimage of the ballon icon </U> </V> </U> </V> </U> </L> <L n="balloon_target"> <E>Actor</E> </L> </U> </L> </V> </U> </U> </U> </V>
For animation a object and a sim at the same time. I suggest using the spookyCandyBowl_eatCandy Animation state machine as a base (instance is = 807EC16120CA0E35 at the game file cruiser ASM) There do this:
1. Add this new actor name. This will be the object reference in the animation. You can replace "guitar" with another object name of the game in the ASM
<Actor name="guitar" type="Object" virtual="false" />
2. Duplicate this
<Controller target="x" controller="@ClipController(clip=a2o_spookyCandyBowl_eatCandy_x, loop_count=#1)" overridePosture="false" mask="" track="normal" mirror_conditional="False" suppress_footsteps="False" transition_class_in="Default" transition_class_out="Default" ik_configuration="a2o_spookyCandyBowl_eatCandy.ma" focus="undefined" start_frame_offset="0" end_frame_offset="0" timescale="1" unique_id="1"> <TransitionClassList> <Transition transition_class_name="Default" transition_duration_in="0.2666667" use_custom_transition_in="true" transition_type_in="linear" transition_mask_in="" transition_duration_out="0.2666667" use_custom_transition_out="false" transition_type_out="linear" transition_mask_out="" /> </TransitionClassList> </Controller>
3. You will have something like this
<Controller target="x" controller="@ClipController(clip=a2o_spookyCandyBowl_eatCandy_x, loop_count=#1)" overridePosture="false" mask="" track="normal" mirror_conditional="False" suppress_footsteps="False" transition_class_in="Default" transition_class_out="Default" ik_configuration="a2o_spookyCandyBowl_eatCandy.ma" focus="undefined" start_frame_offset="0" end_frame_offset="0" timescale="1" unique_id="1"> <TransitionClassList> <Transition transition_class_name="Default" transition_duration_in="0.2666667" use_custom_transition_in="true" transition_type_in="linear" transition_mask_in="" transition_duration_out="0.2666667" use_custom_transition_out="false" transition_type_out="linear" transition_mask_out="" /> </TransitionClassList> </Controller> <Controller target="x" controller="@ClipController(clip=a2o_spookyCandyBowl_eatCandy_x, loop_count=#1)" overridePosture="false" mask="" track="normal" mirror_conditional="False" suppress_footsteps="False" transition_class_in="Default" transition_class_out="Default" ik_configuration="a2o_spookyCandyBowl_eatCandy.ma" focus="undefined" start_frame_offset="0" end_frame_offset="0" timescale="1" unique_id="1"> <TransitionClassList> <Transition transition_class_name="Default" transition_duration_in="0.2666667" use_custom_transition_in="true" transition_type_in="linear" transition_mask_in="" transition_duration_out="0.2666667" use_custom_transition_out="false" transition_type_out="linear" transition_mask_out="" /> </TransitionClassList> </Controller>
4. Replace the target "x" in the second controler to the object name you have declared in 1. in this case "guitar" you wil end with this.
<Controller target="x" controller="@ClipController(clip=a2o_spookyCandyBowl_eatCandy_x, loop_count=#1)" overridePosture="false" mask="" track="normal" mirror_conditional="False" suppress_footsteps="False" transition_class_in="Default" transition_class_out="Default" ik_configuration="a2o_spookyCandyBowl_eatCandy.ma" focus="undefined" start_frame_offset="0" end_frame_offset="0" timescale="1" unique_id="1"> <TransitionClassList> <Transition transition_class_name="Default" transition_duration_in="0.2666667" use_custom_transition_in="true" transition_type_in="linear" transition_mask_in="" transition_duration_out="0.2666667" use_custom_transition_out="false" transition_type_out="linear" transition_mask_out="" /> </TransitionClassList> </Controller> <Controller target="guitar" controller="@ClipController(clip=a2o_spookyCandyBowl_eatCandy_x, loop_count=#1)" overridePosture="false" mask="" track="normal" mirror_conditional="False" suppress_footsteps="False" transition_class_in="Default" transition_class_out="Default" ik_configuration="a2o_spookyCandyBowl_eatCandy.ma" focus="undefined" start_frame_offset="0" end_frame_offset="0" timescale="1" unique_id="1"> <TransitionClassList> <Transition transition_class_name="Default" transition_duration_in="0.2666667" use_custom_transition_in="true" transition_type_in="linear" transition_mask_in="" transition_duration_out="0.2666667" use_custom_transition_out="false" transition_type_out="linear" transition_mask_out="" /> </TransitionClassList> </Controller>
5. then replace the clips with the one of your sims animation where the target x is and the one of your object in the target "guitar". Something similar to this.
<Controller target="x" controller="@ClipController(clip=YOUR_SIM_ANIMATION_CLIP_NAME, loop_count=#1)" overridePosture="false" mask="" track="normal" mirror_conditional="False" suppress_footsteps="False" transition_class_in="Default" transition_class_out="Default" ik_configuration="a2o_spookyCandyBowl_eatCandy.ma" focus="undefined" start_frame_offset="0" end_frame_offset="0" timescale="1" unique_id="1"> <TransitionClassList> <Transition transition_class_name="Default" transition_duration_in="0.2666667" use_custom_transition_in="true" transition_type_in="linear" transition_mask_in="" transition_duration_out="0.2666667" use_custom_transition_out="false" transition_type_out="linear" transition_mask_out="" /> </TransitionClassList> </Controller> <Controller target="guitar" controller="@ClipController(clip=YOUR_OBJECT_ANIMATION_CLIP_NAME, loop_count=#1)" overridePosture="false" mask="" track="normal" mirror_conditional="False" suppress_footsteps="False" transition_class_in="Default" transition_class_out="Default" ik_configuration="a2o_spookyCandyBowl_eatCandy.ma" focus="undefined" start_frame_offset="0" end_frame_offset="0" timescale="1" unique_id="1"> <TransitionClassList> <Transition transition_class_name="Default" transition_duration_in="0.2666667" use_custom_transition_in="true" transition_type_in="linear" transition_mask_in="" transition_duration_out="0.2666667" use_custom_transition_out="false" transition_type_out="linear" transition_mask_out="" /> </TransitionClassList> </Controller>
6. Then check when you create your object animation that in the clip is guitar or the object name you have selected in 1. in the actorname part instead of x and then you have to declare x and guitar in the explicitnamespaces of the clip.
7. Do the same in 6 in the sim animation clip, but leave as actorname x.
For the multianimations. Im still searching how to achieve that. Hope this will help. n_n
|
|
|
Post by FlowersSimFactory on Jun 9, 2020 13:36:02 GMT -5
necrodog I see. I'll try what you suggested above and see if it works. As for what you mentioned in steps 6 and 7 , I'm not exactly sure how to do that? Or how to extract the object animation as a clip itself? I see where you can change the ActorName in the warehouse but i'm not certain about the explicitnamespaces
|
|
|
Post by Sérinion on Sept 24, 2020 12:35:01 GMT -5
necrodog Hi thanks for this tutorial, I'm having a hard time. But I finally managed to create a working animation in the game. However, I run into a problem locating the animation. My Sim's animation is always outside the object. Whereas I would like the Object and the animation to be overlaid in the same place. What would be the settings to touch so that my object which in Blender is in X0, Y0 is in the same place as my animation also in blender in X0, Y0 ? please. See you soon Serinion
|
|
|
Post by necrodog on Sept 25, 2020 19:51:00 GMT -5
Hello Sérinion . You need to use constrains in your iteraction or a pose to work correctly, an easy way is to use constrains, copy them from the "mirror_PsychSelfUp" iteraction to your new iteraction.
|
|
|
Post by Sérinion on Sept 27, 2020 1:47:03 GMT -5
Hello Sérinion . You need to use constrains in your iteraction or a pose to work correctly, an easy way is to use constrains, copy them from the "mirror_PsychSelfUp" iteraction to your new iteraction. Hi, thank you for your reply. I will test with these constrains. Thank you very much.
|
|
|
Post by blackpiano on Sept 29, 2020 1:31:34 GMT -5
Is there a way to animate photos in frames? My sims 4 world is going to be built around Harry Potter and was wondering if it’s possible to make phots move; similarly to a TV channel. In addition, IF this CAN be done would it be possible for the object to animate when some sim views the photo/painting? I’d like to animate the Fat Lady painting confirming the Gryffindor password AND Walburga Black’s painting so she yells when a sim views her.
|
|
|
Post by FlowersSimFactory on Dec 11, 2020 5:51:44 GMT -5
Hey necrodog I've done some testing of what you suggested and I can't seem to get the object to animate even when using the spooky ASM as a base (and psych mirror for interaction base) but the issue is present even after declaring the name in the explicit namespaces. The object just remains still. For reference, I'm using a chair and animated the transform bone (so I assume it should be able to move). I'm wondering if there's a specific way we have to get the clip file of the object's animation? From what I understand we start a pose pack and import it that way, correct? Also Is there a detailed documentation somewhere about the constraints and what they do? I seem to be having issues making the animation line up with the object.
|
|
|
Post by Sérinion on Dec 11, 2020 12:50:08 GMT -5
I'm wondering if there's a specific way we have to get the clip file of the object's animation? You can importe the official animation state machine with the Game File Cruiser Tools in Sims 4 studio. But it's so complex! Because for the simple sitting position you have a lot of parameters in the same ASM.
|
|
|
Post by necrodog on Dec 14, 2020 20:22:13 GMT -5
Hello FlowersSimFactory. You need to prepare a custom clip for the object. Its similar to making poses for sims, but for objects instead. The way I do it is: 1. Create a pose package like if you are making a custom pose pack. 2. Extract a blank clip (.blend file) with any rig (child, male ,female, toddler) 3. Open the blank clip in blender. There will be a sim in a similar t-pose. 4. Append there the object and rig that you want to animate (s4_studio_mesh_ of the object and rig) 5. Delete the Sim rigs and meshes of the sim that appear when deleting that rig. 6. Work on your object animation with the rig and meshses of the object you imported. Like if you were animating a pose but with your object. 7. Save your .blend after finished the work and import like any other pose in a pose pack package. 8. The name of the clip is the name you will call on the ASM of your custom animation. It willl be the name that posepack gives to the clip. 9. In the ASM you need to declare your object: For example: <Actor name="urnStone" type="Object" virtual="false" /> "urnStone" is the name of the object in the example... change with the name of your choice.. and you need to put that name in "Actor" part of the clip you have imported the animation of the object and in "Explicitnamespaces" you need to put the name of the object too and the actors involved in the animation (x, y, ... etc) 10. The clips that involves the animation of the actors(x, y, .. etc) you need to put the name of the actors in explicitnames spaces too. In any actos clip please. I need to do a better tutorial. i hope you understand. Making custom animations into objects is not too easy and involves some trial and errors.. even if you follow correctly the steps.
|
|
|
Post by mercuryfoam on Dec 15, 2020 1:42:50 GMT -5
Hi Necrodog Thank you so much for this tutorial! I managed to get it in the 3rd try! There is one funny problem.
My sim can now worship all statues. How do I make them only worship the Baron statue? :D
|
|
|
Post by janostas on Apr 23, 2021 11:41:46 GMT -5
Dear necrodog I would be very grateful if you give me some direct contact to you. I'm currently publishing scholarly book partly about video games and would have a request to you related to this project. Thank you in advance. You may find me on facebook as well. Jan Stasienko
|
|