Pick Up Plus Inspect - PUPI (PUPO v2.0)

After trying a bit I came up with a way to clamp Pitch but it has a side effect. When you rotate object sideways and keep increasing/decreasing Pitch by moving mouse up or down, the inspected object starts rotating back and forth in 8 shaped way but I think it is better than getting weird angles while trying to look at something. It requires very small modification, so I’ll just post it here:

[SPOILER]Open PUPI, search (Ctrl + F) for RotateInput, in Collapsed Graph go to the right end and make the modification as seen in the picture. Also you might want to have some objects with unlimited rotation so I made it depended on a Tag. If you want a certain object to be clamped just add ClampPitch tag to it.

ef115d0b86b0d46249755f28de73f454aa97f9ee.jpeg
[/SPOILER]About the bug, thank you very much for detailed explanation! It really helped in fixing it. Here is how to fix:

[SPOILER]Open PUPI, search (Ctrl + F) for AutoScale, in the function add the nodes in orange mark.


[/SPOILER]Thanks! :slight_smile:

Spot on - thank you!

As you know from our email conversations I’m already working on implementing some functionality to be able to “interact” with non physics based objects but now that I think about it, this would be a great addition to PUPI so I’m going to suggest it here as a feature request as well.
A branch in the code that looks to see if the object is either using a tag for “useable” (or maybe a component since tags are really a pain to work with) and if it is, execute a custom event that we can easily connect our own BP code to. This way we could use the Pickup/Inspect button to open doors, push buttons or whatever else we like.

Thank you for the suggestion but PUPI is supposed to be a standalone “Plug and Play” kind of system without too much access to outside to make it as compatible as possible with other systems. Still as you have seen, you can access most events of PUPI from other blueprints. So I can’t promise this but we’ll take this into consideration in later updates to see if we can make it easier to extend PUPI even more into the projects it is used on.

I really enjoy this Blueprints Package. Its very powerful. 5 STARS!!!

I have a couple of Rotation questions, I’m seeking answers/advice:

  1. What PUPI Settings do I need to configure to rotate Objects on specific Axis independently when grabbed and rotated in RotateMode?
  2. What PUPI Setting do I need to disable rotation so that the object retains angle when grabbed and moved in a direction?

Any and all assistance in this matter is greatly appreciated in advance.

Glad you liked it and thanks for nice words! :slight_smile:

If I understood your questions correctly, both of those can be achieved by: **PUPISettings -> Pick Up Settings -> OrbitalObjectMovement -> AllowObjectRotation ->
set Pitch and/or Yaw to False **.
This will prevent object from rotating when it is grabbed and player is looking around. Also, the object will rotate in world Pitch and/or Yaw in RotateMode when either are set to false. However, I am not sure if that is what you meant in 1st question, so please explain it in more detail, if that is the case.

I would like to Rotate the object on its axis like in the video below. Im creating a ingame Builder of sorts. I also desire the object to remain at the same angle when moving the object in a rotated direction. Currently, the objects rotates when moving as if im holding with motion controller. I would like to toggle these rotations behaviors off/on. I truly appreciate your prompt response and you taking time out to answer.

[/SPOILER]
I think, this time I got what you mean. To achieve that:
Open PUPI blueprint located in [PUPI -> Blueprint] folder, search (ctrl+f) Add Rotate input to Mouse Input Rot, you’ll find a CombineRotators node, just switch A and B connections and you’ll get rotation based on local axis of object. And set Pitch and Yaw to false as said in the post above.

To be honest, I found it confusing to use, that is why decided to make rotation work relative to camera in RotationMode.

Was that your request or did I misunderstand something again? Hopefully not and you are welcome! :smiley:

Thank you so much. That was the solution. Here’s how i set it up.

Thanks for sharing your solution, I’ll probably add it as an option!

How exactly do I go about removing/replacing the red crosshair? In the camera tracer that is.

Please check your email.:slight_smile:

I have an issue and a question.

The issue is when I use this in another project the box I’m picking up disappears after picking up a few times. It happens on all items I use with the system.

The question I have is how would I go about making my character hold the box after he picks it up. I have animations already but when I click the box it is usually rotated and at a different distance like it’s floating in front of him. I’d like to have it stay lined up with the characters hands at the same spot every time.

I am sorry for the problem. I would need more info to be able solve it. So, please send an email to headsandbrains@gmail.com and let me know your UE4 version and if you have any other interaction systems in your project. Also, does this problem happen with “default” meshes of Demo map (the Demo map of PUPI project) in your project?

About default grab location, in PUPISettings under StartingPosition set UseCustomPosition to True and set the CustomPosition to the distance relative to PUPI in your character. However, currently it is not possible to have custom rotation for grabbed objects. Do you need to be able to have different rotations for each object, or can one custom rotation match all of the objects?

I hope we can get these sorted out soon! :slight_smile:

Thank you for this huge time saving set of blueprints. I am attempting to make this work in multiplayer and despite numerous hours of reading forums, watching videos and scripting, I just can’t get it to work. I have a decent understanding of networking (I think!) and managed to get replication working for numerous scenarios with PUPI. I have physics replicating from server to client but not vice versa in PUPI’s case. It could be something to do with replicating/creating physics handles on the client but I’ve tried all sorts of combinations to get the right references and client owning permission to run server processes. Do you have a recommended solution for this which could be shared? Ideally one that replicates the static mesh root movements so that all its collisions and impulses can be replicated by the server to all clients.

Glad you found PUPI useful! :slight_smile:

Now the sad part. Even if I was able to replicate simple systems, unfortunately replicating PUPI turned out much more complicated than I expected, so I’ll take another look at it after finishing things I’m currently working on. Honestly, replication is the thing I really want to implement but it is like rocket science to me at the moment.

I am sorry for not being to help with this. I’ll try to implement it, even if it means reworking the whole system! :wink:

Looking forward to that! PUPI is no doubt one of the best content for UE4

Thanks for making it real!

Hi,

Yes it is supported. Please take a look at the small guide in the “first post -> Guides -> Disable Trace Visibility” on the node in the screenshot uncheck the Trace Complex.

Have fun, you are welcome! :slight_smile:

PUPI just got updated with a bug fix and few new features. Here is the change log:

  1. Changed content type to Asset Pack - you can now add this to your project by pressing Add to Project without having to manually migrate it,
  2. Added ability to clamp Pitch to (-20, 20) when rotating object. You can do this by adding a tag “ClampPitch” to component (not to Actor),
  3. Added option to change Trace visibility, to PUPISettings -> Main,
  4. Added option to disable Depth of Field when inspecting, to PUPISettings -> Inspect,
  5. Added option to rotate on Local axis, to PUPISettings -> Pick Up,
  6. Fixed an issue with Inspect Auto Scale - report,
  7. Changed demo character controls to key events instead of Input Mappings. This was done to reduce the steps of setting up Demo characters,
  8. Replaced deprecated nodes for UE4.14+.

Thank you everyone for your suggestions and support! We’ll still keep this updated for newer engine versions and make fixes when needed but this is probably the last feature addition to PUPI. Apologies for not being able to add multiplayer support.

I’ve got one more news! A system for making physics simulated doors and locks (previously known as PAMMBO) is finally finished and will be published after making a preview and short tutorial video.

Edit: it is published - Marketplace link