Currently Roblox’s camera system uses http://wiki.roblox.com/index.php?title=API:Class/Camera/GetLargestCutoffDistance to determine how far out you can zoom before collidable objects gets in the way of what you see.
The problem with this method is that it only takes an ignorelist, and we can’t specify it to work on a given collision group / part’s collision group(s).
I’ve noticed that the GetLargestCutoffDistance method behaves differently than simply raycasting to find parts that may clash with the camera view, and running loop to add noncollidable parts to the ignore list used for GetLargestCutoffDistance didn’t seem to do the trick.
Current behavior, as GetLargestCutoffDistance doesn’t account for collision groups:
Behavior where GetLargestCutoffDistance accounts for collision groups:
Proposed solution:
Change
float GetLargestCutoffDistance (
array<PVInstance> ignoreList
)
to
float GetLargestCutoffDistance (
array<PVInstance> ignoreList,
BasePart collidesWithPart = nil
)
So that passing the optional HumanoidRootPart as a second parameter would solve the above use case, given that the HRP can be part of multiple collision groups etc.