[SUPPORT] Advanced Turn Based Tile Toolkit

@ No worries, but i did manage to run into another problem. I followed your tutorial video for retargetting animations and setting up the event graph for a new character and most of it works. The problem I’m encountering is that the blendspace animations don’t seem to be working. At least not the movement portion of them. Attack and hit animations seem to be working fine after setting up the AttackEnd notify. Here’s a gif showing the problems with the animation, and a screenshot of the error log after running a test of the game. No errors are triggered while compiling the event list though they do pop up after playing a level. The object it’s referring to are all the unit itself.

Edit : Added Gif - https://media.giphy.com/media/1fnn9yhyAkshlEOwwJ/source.mp4

Also I forgot to mention that the blendspaces seem to work fine when I open them and move the dot around myself, they just dont work when playing.

@OperatorCrux : Hmm, might be caused by several issues. Could you click the search text in the error log and find which nodes are causing the error and post them here?

@

The errors seem to be triggering on “Set Break” and “Move Animation” and seem to only be related to those two, it’s just showing the error a dozen or so times in the log.

@OperatorCrux : Ok, I think I see what is wrong here. If you look at your graph you will see that if Idle is false, MoveAnimation will be called even though the cast has not been called. Since the cast has not been calles it has no valid input. Plug the exit execution pin from Break into the input execution pin of the cast and see if it works.

Thanks for the quick reply. That fixed the running animation, but it’s still triggering one single error in the log after playing. Not sure if this is actually affecting anything but figured I should try to solve it now instead of later. The final error is still coming from Break.

Yeah, same issue here. If you are using an output value from a blueprint node that is not pure (meaning it has execution pins), you need to make sure that any nodes that use the output value happen after this node in the execution chain. For the break node you are trying to get the result of a cast that has not been cast yet. Sorry, I should have seen it when I gave you the colution. You could set it up so that the cast happens before break is set, but in this case I think it is simpler and just as performant to convert the cast to a pure cast (meaning it will be re-run any time a node requests its output without the need of executing it first). Right click the cast node, select “convert to pure cast” and that should fix it.

That completely solved the problem, thank you so much. I really appreciate you breaking down why these errors are occurring. I’m new to blueprints so honestly you breaking it down like that really helps me understand how to avoid problems like this in the future. :smiley:

@OperatorCrux : Happy to help! Understanding the execution chain is crucial to getting good at blueprints.

Also, to all: The toolkit is currently 30% off during the Spring Sale!

hey @ i made a thread for my project if you wanna keep up with us :>

https://forums.unrealengine.com/community/work-in-progress/1441653-shimapanzer-strike-anime-girls-and-tanks

Thanks a lot! You’ve done amazing work with the cel-shaded artstyle. I saw the WW2/cute anime girl combination quite a bit when I was in Tokyo, and I find it a bit bizarre, but I’m very much looking forward to playing your game :slight_smile: Following you on twitter now.

I was wondering if there was any way to make the default tiles bigger, but still be blocking? I am trying to make an underground level, so I need walls all around where the players are moving, and a rectangular grid will not work. I have simply been changing the scale of the default tiles (Tile_Wall), but the grid manager will path around only the center of the tile wall. Is there any way I can make this work with scaling? For instance, a tile_wall of 1x5 will block a 1x5 area, not a 1x1 area?

Simplest way to do this is to the toolkit’s procedural wall tracing system. If you use this you can skip using tiles and just place regular static meshes if you want. Just make sure that whatever you want to block walkability blocks the WallTrace channel in its collision settings and set “Trace for Walls” to true in the public variables of BP_GridManager.

In other news UE4.19 is out and so will soon the big ATBTT update I’ve been working on for ages. It seems that there are more issues than expected after converting to 4.19, so it might take a few days, but it should be in all your hands fairly soon.

Great to hear it, keep up the good work dude!

Hi man! Thanx for the support. I tried to modify the AttackVictim event in BP_Unit so it won’t call ChooseNextPawn automatically after an attack has been resolved. I made a brunch checking if there’s any movement left, if so, it will call ActivateUnit again, if not, ChooseNextPawn will be called. I also add a bool to check if the unit has already attacked, so it won’t be possible to attack twice. I made it simple but I think I’m missing something, because it’s not working properly. Now I can attack first and move second, but I can’t move a little bit, attack, then move again… Any thoughts? Thanx in advance!

This is probably a stupid question but how do you sort units that have the same initiative value?
I’ve checked “sort units in initiative order” function and found nothing. :frowning:

Hey there,
Question to people who already used this pack and to a creator ( if he is not too busy) What do you think is this may be a good base to create a game with a similar mechanic as a Silent Storm ( video)
So with the main goal of the fully destructible environment and multi-floors buildings.

Sorry for the late reply, eveyone. I’ve been super busy both with work and with fixing bugs in the update.

Thanks! Will do :slight_smile:

You’re almost there, but there is a tiny mistake. Current move is subtracted when moving, not adding up, so you should be checking if current move is 0, not if it equal to max move (which would mean that it currently has remaining move equal to its maximum possible move). My fault for having unclear, variable names, I guess. Try changing that and see if it works.

Not a stupid question, and it is honestly something I’m not 100% sure of myself. If units are tied in initiative they will be sorted in the order they are ordered in the output array of GetAllActorsOfClass(Unit). In the editor I think this means the order in which they were either placed or last modified in the viewport, but I don’t think this holds true for a packaged project. If you want control of the acting order, you should make sure all units have different initiative values. This is something I should probably change to using a random number generator instead, so what happens is at least transparent. I’ll put that on my to-do list.

There would at least be a lot of stuff you would not have to make from the ground up, such as all the grid-functionality (including multi-level grids), pathfinding, visibility checks etc. The AI included should also serve as a good starting point. For these reasons I think ATBTT would be a great starting point for something like Silent Storm. However, you would of course still need to make lots of stuff yourself, but it should be a good fit. Destructible terrain is not terribly difficult to add, and I can help you with it if you are stuck.

Thanks, @ you just sold it to me = )

Great :slight_smile: Just don’t underestimate the amount of work required to make a game like that. For all the stuff I’ve added over the years, my toolkit still only provides the basic building blocks (by design, really). If it is your first game I would recommend first trying something simpler, but if you’re experienced with UE4, go for it.

Hey, any idea on how to make the guys respawn after they are killed? This is what I have right now:

I’m trying to make them respawn at the index determined by Temp Faction after they die. I have the following issue. Whenever the red team (enemy faction) kills a pawn, his position is registered as being one tile off as in the following pictures:

Green team turn:

Red team turn:

This happens only when the red (enemy) pawn kills someone.
If the red pawn is killed, the unwanted effect disappears, but reappears as soon as it kills a pawn again.
The game should be player-vs-player: no AI involved

EDIT: After further testing, I can get the unwanted effect to happen for the green team(not as consistently as for the red team though)