let me introduce that little pack I’m working on. It’s an essential kit of basic VR mechanisms, compatible with Epic VR template.
it is composed of 3 customizable blueprints :
- interactable physically simulated objects (can be used for door, drawers, levers, chests etc …)
- slots (usable for any kind of locks)
- pickables objects (can be use as keys, coins, gear etc … they fit into slots to unlock the interactable objects.
here a little demo on how it works
feature list :
*** BP_PickupObject actor ***
Similar to epic’s BP_PickupCube actor but with additional features.
can be place in a slot
has a “type” variable picked up from the enumeration “ENUM_PickupObjectType”
If the type of the PickedupObject doesn’t match the “type” of the slot he’s dropped on, it won’t collide and fallto the ground.
has a “ID” integer variable
If the type matches but not the ID, the PickupObject will be place into the slot (aligning its pivot to the slot’s pivot) but the slot will remain “locked”(slot’s “Locked” variable is still set to true)
If Both ID and type match, PickupObject will be place into the slot (aligning its pivot to the slot’s pivot) and the slot will be “unlocked”(slot’s “Locked” variable is still set to false
*** BP_Slot actor ***
actor with a customizable apparence (static mesh component), Slot can hold BP_PickupObject.
- has a “Full” boolean variable set to true when it contains an object
- has a “type” variable picked up from the enumeration “ENUM_PickupObjectType”
- has a “ID” integer variable
*** BP_InteractableObject actor ***
Gameplay related actor with a customizable apparence (static mesh component), they can rotate or translate, be physically simulated, have a limited or unlimited range of motion etc …
“type” from “ENUM_InteractableActorType”, currently can do 1 rotation or 1 translation
“Limit” defines how far the object can move, can be positive or negative (affect the direction), if type is rotation, limite can be more then 360° or less then -360°, in that case, the object can do multiple turns. If set to 0, the range of motion is unlimited.
“Snap when closed” use this to prevent object from bouncing when returning to initial position (both by autoreturn or by hand), it alos prevent an object from pushed by a dynamic object.
“Snap Limit” how far the magnetism from the snap feature extend, expressed in % (usually less then 10%)
“Is Physic” if checked the object is physically simulated, otherwise it isn’t (when release the object stay in place)
“damping” define the damping if the object is physic
“Autoreturn” if checked, the object will return to its initial position when released
“Return Duration” defines the speed of the return, in second for a full motion (from max position to initial position), if object isn’t limited the duration is base on 100 cm or 360°.
“Return Delay” defines hos long it takes for the autoreturn to start once the object is released (in second)
“Linked to” Interactable object can be linked to slot or other interactable object, in that case it read the “locked” state of all their linked objects, if at least one of them is set to true, the object cannont be grabbed or move, neither by hand or simulated. if the autoreturn is true, it will be activated immediatly.
“Attached Object” slots or other non dynamic Blueprint objects can be parented to the interactable actor. Note that it CAN’T be another interactable actor Neither a simple static mesh (a simple blueprint with a static mesh component will work perfectly.
Currently everythings is almost done, just need a little bit of polish (like tool tips for the variable field etc) and make all the screenshots for the marketplace. the pricing will probably be around 25 or 30 bucks.