[RELEASED] [SUPPORT] Moore's RPG Template

Hi Georgii,

There is some documentation about Quests in the user guide that explain that there are 4 data tables that hold info about the quests and within these data tables you will see the NPC ID column that links a particular quest to a particular NPC Quest Giver e.g. someone you get a quest from, or links a quest step to an NPC Quest Subject, e.g. someone you may have to talk to or rescue from a big dragon etc.

See the data tables listed here: https://docs.google.com/document/d/1…h.1z2hduf3xv9y

Also there is a “How to” section at the end of the user guide that explains how to add more quests :

https://docs.google.com/document/d/1…h.nrhv3139ihdt

Have fun!

Best regards,
James

To all customers, I’m working on adding the following for the next update now:

  • RPG character skeletal meshes (multiple parts of body = multiple skeletal meshes)

  • When equipping a piece of armour, not only will the item get equipped within the inventory as it currently does, but also the relevant skeletal mesh will get replaced with a skeletal mesh that shows the piece of armour as well as any skin that may need to be shown to avoid showing gaping holes. I believe this is how RPGs do the equipping method for armour and clothing, but not for armour pieces like the helmet or other “attachable” pieces of armour that have no risk of clipping through the underlying body. Those attachable parts can be attached to a socket on the skeleton.

  • The individual parts (skeletal meshes) of the character will consist of the following parts:

  • Head

  • Hair

  • Eyes

  • Torso

  • Left arm

  • Left hand

  • Right arm

  • Right hand

  • Legs

  • Left foot

  • Right foot

  • A combat system with smooth interpolation between changes of movement direction and physics based reactions

  • Animations for movement, combat and death

Progress screenshots of the character are attached. This will be without any items on. Still have to texture the rest of the body and add hair cards to head , eyebrows and eyelashes.

I hope you like my progress so far and I welcome any suggestions you may have.

Best regards,
James

Is this good enough guys or should I try to make it even more realistic?

This guy was my second attempt at creating a UE character. It’s not good enough so I’m going to try to sculpt, UV unwrap and repaint a new guy and try make him more realistic. Hyper realistic. I’ll be a while.

Third attempt. This guy has a different face and skin tone that is more untanned/caucasian. I’ll combat-animate this guy next.

Using Auto Rig Pro for Blender v2.90 I have now rigged and skinned this character. It is rigged to the UE4 Mannequin Skeleton. Upon import of the FBX file that came from Blender, I chose the UE4 Mannequin Skeleton for the skeleton within the import options dialog. This skeleton was already present within the project and you can get it with any free Unreal Engine demo content. e.g. from the Third Person Template or Animation Starter Pack for example.

The attached screenshots show the skeletal mesh using the default walk animation and also show the skeleton that is assigned to the skeletal mesh. So this means that no “animation retargeting” will be required in order to use this skeletal mesh with any marketplace animations that are also rigged to the UE4 Mannequin Skeleton (aka the Epic Skeleton).

Next I’ll investigate and implement visually equipping the armour, clothing pieces, weapons and shield. New skeletal meshes will be required for the armour and clothing pieces. Sockets on the skeleton will be required for the weapons and shield. The default rotation and pivot points may need modifying for the weapons and shield in order to orient them correctly upon equipping them.

New socket on head bone on skeleton: created
New Blueprint function to spawn and then attach helmet to head socket when equipping the helmet on the inventory screen: done
New Blueprint function to despawn and unequip helmet: done

I have now split the body skeletal mesh (which included the whole of the human being except the hair and eyes) into several skeletal meshes , one skeletal mesh per part of the body. Then exported them along with the rig, using the Auto Rig Pro addon for Blender to fbx to ensure they remained rigged to the Epic Skeleton (with root motion enabled). I imported the fbx files into UE4 and added them as child skeletal mesh components of the torso mesh, within the Character blueprint. I then used the Set Master Pose Component node in the Construction Script of the Character blueprint to ensure that they all use the bone transformations of the main/torso skeletal mesh. Now each piece is replaceable in-game with armour or clothing pieces (skeletal meshes).

It is making progress.

More progress

This is looking great and, for me your use of the UE4 skeleton mean I can use the Quang Phan characters, (well male anyway at this point unless your doing a female too) without issues because his setup is close to the way your doing this. If I fit armour or clothing I fit to these

https://www.unrealengine.com/marketp…uct/human-base

I found them a good starting point

Will this be both thrird/first person or first person only?

Do the Quang Phan characters come in several parts, e.g. head skeletal mesh, torso skeletal mesh etc? If so then I guess you can use the head mesh with my armour meshes. If not then you may have a tricky problem on your hands. Really someone should create a standard for MMORPG characters. Like how many parts/meshes should each character consist of and where the seams/cuts should be.

Do the Quang Phan characters come with their own clothing?

I’m aiming for both 1st and 3rd person usage. I’ll probably do a female. It’ll be good fun and practice.

Here Quangs asset page you can check out how he does it, he has a head, TopBody, hands (both hands and left and right) botbody and feet and you can use the master controller to add items like belts water botters etc, he there tutorials on the you tube pages and has a Discord where he’s very active and helpful. His character come with clothing that skined to a body part to cut out clipping

I’ve finally managed to merge the Advanced ARPG Melee Combat System v1.0 with RPG User Interface Kit. If anyone has a copy of both products and wants a copy of this merged project just send me a message/email with evidence of purchase. (The merged project UE version is UE4.25.4)

Hello,

Thank you for that amazing pack. It’s perfect. I cannot think of a better way to implement an inventory system in a real RPG. Or almost perfect; I just made some minor tweaks but that was not a big deal. For instance, I was surprised you need to press different keys in order to sell an item, to move an item to your inventory, or to move an item to a container. I made some verification with all the handy booleans you’ve made (are we in a container mode, in a trader mode, in inventory mode, is the 0 or 1 widget switcher activated, etc), and I replaced all the keys with a simple left mouse click and then I called the appropriate functions. It seems to work, even if I have just tested it for 2 min in your demo map.

I wanted to invert the right / left hand slot. Right now, if you left click (which is the primary click on a mouse) on an item, it will be set on the left hand, which will then be used by the right click in game (blocking for instance). My personal opinion is it’s perhaps not very intuitive(?).
I took a look at the “Get slot Type by item for right click” and in the “Contains” node, I found the “Right”. I was like: “ok, cool, I’ll just change it to left and do the opposite way in the “Get slot Type by item for left click” function. :D” But actually, it is not implemented the same way. So I was wondering if I could just copy past the “Get slot Type by item for right click” into the left one, and then modify the Rigt / Left in the Contains node without breaking the system.

I am wondering if the shield items shoud not be automatically set to the left hand (right now, we can put them on the right hand).

I am trying to do what you are actually developping; really equipping an item you have clicked on in the inventory. I’ve done it for the weapon / shield, giving them a static mesh. it works well, except for that part: if a shield / weapon is already equipped in one hand and I want to swap hand, it’s perfectly well noticed in the inventory but I don’t know where exactly. So, right now, the static mesh keeps on staying on the other / free hand.

And now, the fun part: if I want all my NPC to have their own inventory, to be able to equip (on them) an item, a weapon, or if I want to loot their body and the helmet I take on them disappear from their head, I would need to recreate a large part of that system but directly in their BP?

Anyway, again, thanks. I’ve tried to do it myself before saying your product on the market. And now I realize that I would never really be able to make it, or it would have taken months and months.

Hi IlliciteS,

I think you’re on the ball with the changes to whether an item goes into the left or right hand. With a bit of debugging you will no doubt get it to do what you want. To debug it in the most easy way I like to enable the debug booleans in the blueprints or functions I’m interested in and do a play test, then examine the Output window. Then I pick a node within a function that I suspect needs modifying and toggle the breakpoint on that node. Once its stops on that breakpoint during a play test I then click the Step Over button and follow along with what’s its doing.

  • There are probably several ways to change the hand in which an item goes. You could modify the GetSlotTypeByItemForLeftClick and GetSlotTypeByItemForRightClick functions or you could modify the contents of the AllowedSlotTypesLookupDataTable which is referenced by those functions. If you examine the AllowedSlotTypesLookupDataTable you can see that for ItemType of Shield its got a row for each hand so that means it allows shields to get equipped into either hand.
  • If you remove the row from the datatable for Shield to go into the RightHand, then when in-game , if you press the right mouse button on a shield in the inventory it will do nothing, but if you click the left mouse button it will still make it become equipped into the left hand.
  • The slot that an item is equipped into is stored within the variables EquippedSlot and IsEquipped the CharactersItems array (of data type ItemStruct).
  • The ItemWidget contains an event called On Clicked (Button Item) on the Event Graph that handles left clicks. The function OnMouseButtonUp, which you’ll see in the functions area on the left hand side, handles right clicks.

To get dead NPCs to visually lose their equipped armour you could create a few new functions to handle this:

  • NPCs already have an inventory that is populated at begin play by the 2 functions AddSpecialItemsToNPC and GenerateInventory. You’ll see these in the Event Graph of BP_NPC_Master. You could modify one of these functions or create another function that focuses on adding equipped items to the NPC. Again the item’s EquippedSlot variable will need to be set to something other than Unset for these equipped items. The IsEquipped variable also needs to be set to true if the item is equipped.
  • If you choose to modify AddSpecialItemsToNPC, some of the items added by this functions could be equipped items. The items added to NPCs read from the NPCItemsDataTable. Maybe add a new column to it (to the NPCItemStruct) called EquippedSlot of data type EquipmentSlotTypesEnum and another called IsEquipped (boolean) and read these (use a Branch node or a Switch node) within the AddSpecialItemsToNPC function. If an item is equipped then you could call a new interface function within BP_NPC_Master that visually equips the item/static mesh/skeletal mesh.
  • Then when looting the NPC, the function called TakeHighlightedItem in ItemMainWidget makes a call to the interface function SetInventory (the target is a Container reference) where it passes in the modified Inventory of the NPC. You could call a new interface function that visually removes the armour or weapon from the NPC just before this call to SetInventory.

I hope this helps.

Hey,

I haven’t noticed a lot of things about what you explained, and I should be able to have a better understanding on what’s going on. I have to dig a bit more. Thanks for the quick answer!

EDIT : I just took a look about the AllowedSlotTypesLookupDT, and it’s even better. Since I have no intention of allowing dual wielding (I have no animation for that), I removed the left hand for all the weapons, and I removed the right hand for the shield. Instead of doing nothing if I do the “bad” click, it will automatically select the left / right hand depending of the last option remaining in the DT. No need to code more, no need to specifically select the left / right click in the Controller BP. That’s so smooth!

I’ve created a skeletal mesh version of the breastplate which now comes with a gambeson and part of the torso so that the naked torso skeletal mesh can be dynamically swapped for this mesh when equipping it.

Developing this skeletal mesh is taking a considerable amount of time as each piece has to be modelled, UV unwrapped, rigged and skinned to the Epic skeleton (Auto Rig Pro and Voxel Heat Diffuse Skinning blender addons are useful for this), and then painted (in Substance Painter), joined together, exported to Unreal and tested with materials and animations then issues such as mesh parts poking through other mesh parts or mesh distortion has to then be fixed.

I hope I’ll get faster at this as time goes by.

I’ve removed some of the gambeson topology so that it doesn’t poke through. Pulled other parts of the breastplate and gambeson near the armpits outwards so that the skin doesn’t poke through during animations.

I’m currently not sure which method is best for fixing “meshes poking through other meshes” problems with modular characters, I suspect its either

  1. pulling areas of the mesh around a bit in Blender then re-exporting to Unreal
  2. removing some quads then re-exporting to Unreal
  3. reskinning parts of the topology then re-exporting to Unreal
  4. or creating a mask to hide part of the topology in SP then re-exporting to Unreal
  5. or all of the above

The Plate Legs are modelled but not yet UV unwrapped, textured or rigged/skinned.


That’s the plate legs done. I encountered a problem with skinning it with the Auto Rig Pro Blender addon but the supplier of it helped me resolve it within 24 hours.