First off, great asset. Inventory is incredibly well commented and organised.
I’ve been playing around with adding some additional functionality (on equip/unequip effects) for our game and discovered that UnequipItem is not reliably called. It is called when an item is dragged from the character into the backpack but not when it is unequipped via right click. It also doesn’t run the unequip function when it is placed into a container via right click, again it works fine if dragged.
The first instance was easy to fix by tweaking the UseEquipmentItem function to call UnequipToInventory instead of MoveInventoryItem.
The second doesn’t seem to be quite so straightforward, the issue is in UseInventoryItem when a container is open. It skips the ItemType checking and just moves the item directly into the open container rather than checking to see if it is Equipment and instead run the UseEquipmentItem function. For now I’ve just disabled placing from character to container and instead it runs the default UseEquipmentItem to place it back into the backpack whether a container is open or not.
I didn’t see this on the list of upcoming fixes so I thought it would be best to mention it
EDIT: Just noticed that when swapping equipment the Unequip function doesn’t seem to be run for the swapped out item either.
Good find, I can see that having the simpler logic path being an issue for people looking for a place to tag onto Unequip I will make the changes and post a solution ASAP. The fix will be included in the 1.4 update.
This is by design, when right clicking items when a container is open it overrides the normal logic and will swap the item between the inventory and container. If you look at most MMO’s imagine having your bank storage open. When you right click to use an item it moves the items to and from a container. For example in WoW your backpack is open and your Bank is open. If you right click on a potion it won’t consume the potion it will move it to the Bank or Backpack (depending on where it is located) same goes for equipment. Please feel free to change this logic if it is not what you want in your game
That’s fair it makes sense that it would allow for quick transfer of items and I did forget about consumables, should it not still run the UnEquip function for equipment though?
It’s not a major issue, I’ve slightly refactored the way it works for my project so it calls my custom EquipEffect checks if the item moved out was of type Equipment but it may be something worth considering if others are looking to implement events for OnEquip and OnUnEquip :).
The current implementation I have is to add an enum of EquipEffects to the InventoryItem struct, then in the Equip/UnEquip functions check to see if that enum != None and run a custom EquipEffect function that passes through the effect and whether the item has been equipped or unequipped. It then just switches through the different effects in the enum :).
It’s just one way to do it and it could get rather bloated with lots of effects but the fact that there is no easy way to get UStructs to run functions (if anyone knows of other ways of doing this I’d love to knoe) this was the solution I came up with.
Yes you are correct, I will make sure that any logic that Equips or UnEquips goes through the EquipFromInventory/EquipFromContainer & UnEquipToInventory/UnEquipToContainer functions.
Then these both have a clear path to make it easier for calling custom logic. The fix should only be a couple quick screenshots like the other fixes in the thread.
But if it ends up taking a few minutes to implement I will create a tutorial video.
If anyone else finds anything similar where you think something can be handled better please let me know. I want to make sure this asset is the best it can be for everyone.
I went through the process of changing the equipment slots for my own needs, and its not to hard to do on your own, i don’t think a video tutorial is needed just a few screenshot with some pointers.
You need to setup the array in the equipment widget, and also give your new slot in its properties a slot number which shoud match its variable name, you’ll have to edit equipment character and the equipment component so the mesh shows up on your character, and dont forget your item also needs to be setup to use that slot.
I reached out to them and received no response about when they plan on releasing it. I’m really surprised it’s not released yet usually it’s within a day or two at the most. I will try contacting them again
**Update **
Epic said it will be out today. We will just have to wait and see lol.
They are still on the list of tutorials to do. Not many people have been asking for them so a few other tutorials took priority.
I just spent this weeks time I had slotted for tutorials creating the new project merge video for v1.3.
I really hope to have them finished soon they are a priority and I don’t like having unfinished tasks sitting around.
I was wondering, can anyone point me to a good set of tutorials (I’d hate to ask for another to add to the queue here) to accurately get an existing mesh to play nice and be built using the existing skeleton so we can add working objects into the system? I’m pretty new to modeling, and I fought with it for a while and managed to either get a mesh that blinks/doesnt show up or get a mesh that is gigantic regardless of import scale or export settings. Rather then banging my head against a wall, only to figure it out by accident, I figured I’d ask on here since I’ve seen other people successfully add other objects. As a note, I have been able to add weapons, since they seem to use a more traditional ‘Attach’ approach rather than a skeletal one. Thanks in advance!
I search for and go through quite a few tutorials every week and as far as I know at this point, a complete tutorial showing a full end-to-end asset pipeline that starts in a 3d program and ends up in ARPGIS does not exist.
However, all the necessary steps are covered (at least for Blender and I would expect the same to be true for other 3d software) in various tutorials that exist on Youtube. A search with the following listed terms should turn up suitable videos.
To my understanding so far, this is the basic flow:
Export UE4 Skeletal mesh as .fbx
Import .fbx into 3d program (such as Blender)
Create model with materials
Parent to bone(s)
Weight paint model
Export model with skeleton and materials to .fbx
Export model with materials as static mesh (no skeleton) to .fbx
That definitely gives me a good starting point. There are so many different tutorials floating around out there, and it is a bit daunting for me without a real direct path moving forward. This should help me, and probably others, get started. The only one, at least in the case of ARPGIS, that strikes me as odd, is number seven (7). How would I use the item without a skeletal mesh? Or would that be part of number eight (8): importing it as both a static, then a skeletal mesh? That seems to be the majority of my issues at the moment. Thank you again!
The best way for a beginner is to use a mixamo character and you have a choice to use there animations, or to use unreal animations its very simple to fix the rigging so it looks right.
Only do the following if you want to use Unreals Animations without them looking like ****.
Make a mixamo character using Fuse.
Export it to the auto rigger then export it to your desktop.
Export the unreal Mannequin from the editor.
Open up your Mannequin character in a modeling program i use 3Ds Max.
Copy the weights of the model delete the bone/skeleton and skin modifier.
Import the Mannequin into the same file.
Heght match your model to the Mannequins then delete the Mannequins mesh .
I may give that a go after playing a bit more with 3Ds. Then the next step would be using the existing skeleton to create assets like a new backpack or helmet, for example. It seems to me that the steps would be similar in that respect?
For a wearable item, such as a helmet or brigandine, you need both the skeletal mesh + model and the static mesh (no skeleton.) Both are just plugged into the item list as per Pirate. The static mesh is used to drop the item in the world. Items that are not wearable (at least under normal circumstances), such as a watermelon or a potato, need only the static mesh. (Or should)
You’ll also need an icon for your item, but videos should also be available for that.