Orienting Characters to Used SmartObjects

I followed the Smart Objects Quick Start and got the basics sorted out quickly enough. But it seems that orienting the character to the SmartObject is not handled by Use Claimed Gameplay Behaviour Smart Object. I tried orienting the character during the BTT tick, but that didn’t work out well because you have to disable the Lock AI Logic bool and that causes other problems.

Any ideas?

Thanks.

Very late reply but the method I’ve employed for this is running my own “use smart object” task inside my behavior tree. Inside the task, before calling “Use Smart Object with Gameplay Behavior”, I am getting the smart object’s slot transform and setting my actor’s rotation to the slot’s rotation value. I’ve also made an instance editable boolean (RotateToSlotOrientation?) so I can configure whether I want the orientation behavior on a per-task basis.


There is probably a more elegant way of doing it but this is working for my needs.

As an aside, I really like the idea of Smart Objects but I can’t shake the feeling that there is a lot of unrealized potential in the system as it stands now - though perhaps that’s because I haven’t fully wrapped my head around the nitty gritty details of how it’s intended to be used as part of a larger system. In my own experience I’m often needing to find convoluted workarounds to access parameters in the SmartObject Definition at runtime in order to be able to use them in a meaningful way (Just one example, Gameplay Tags can’t be be gotten from an SO component in a generic way - it seems the only option is by using a SmartObjectRequest which makes filtering by tags a lot more troublesome) and many of the SO definition’s parameters don’t appear to be accessible at all to blueprints outside the definition class. Perhaps I’m missing something and individuals with more understanding can enlighten me, but I’ve found their inflexibility a bit maddening with so much useful stuff locked inside the definition class.

1 Like