[BUG]Why after scaling down bone collision is still there?

After scaling bone (using both animation blueprint and hide bone by name) collisions from phys asset are still there.

I want to shot out head and I can hide the bone, spawn head mesh and attach some gibs but collision for head is still working… anyone know how to disable them?

It was much more easier in UDK days :frowning:

I’ve found that node HideBoneByName don’t have implementation for PhysBodyOption. Then I don’t think it’s possible from blueprints now.

Still any news on this? I’m not the only developer having problems with this - but at home I can’t change C++ code to fix that.

Hi intoxicat3 -

Thank you for your post. We have assigned this issue to a member of our support staff, and they will begin investigation as soon as possible. If we are unable to reproduce the issue, or we need additional information, our staff member will comment here with additional questions. Otherwise, we will post an ‘Answer’ once we have logged the issue in our bug database or we have a solution for it.

Eric Ketchum

Hi

I was able to repro that PhysBodyOption “PBO-Disable” does not work as expected and have entered UE-19860 into our bug database.

However, for the time being, the PBO-Term option could work for you.

-.

Basically to fully fix the issue when scaling a bone in Animation Blueprint collision attached to this bone should scale as well.

Hello,
Could you explain what do you mean with
“However, for the time being, the PBO-Term option could work for you.” ?

In 4.9.2. PhysBodyOption is still not used in HideBoneByName().
Neither is it in 4.10 Preview 2

I’m not sure what you’re seeing on your end, but the PhysBodyOption is present in 4.9.2 on the HideBonesByName node. Is this not what you see?

64593-physbodyoption.png

The issue is simply that PBO Disable doesn’t work. PBO Term is an alternative that gives the expected behavior that intoxicat3 wanted.

Hello,
it is possible to give PBO option as a parameter to HideBoneByName( FName BoneName, EPhysBodyOp PhysBodyOption ),
but if I take a look in the Engine-Implementation it doesnt do anything:

From “Runtime\Engine\Private\Components\SkinnedMeshComponent.cpp”:

void USkinnedMeshComponent::HideBone( int32 BoneIndex, EPhysBodyOp PhysBodyOption)
{
	if (ShouldUpdateBoneVisibility() && BoneIndex < BoneVisibilityStates.Num())
	{
		checkSlow ( BoneIndex != INDEX_NONE );
		BoneVisibilityStates[ BoneIndex ] = BVS_ExplicitlyHidden;
		RebuildVisibilityArray();
	}
}
//...

void USkinnedMeshComponent::HideBoneByName( FName BoneName, EPhysBodyOp PhysBodyOption )
{
	// Find appropriate BoneIndex
	int32 BoneIndex = GetBoneIndex(BoneName);
	if ( BoneIndex != INDEX_NONE )
	{
		HideBone(BoneIndex, PhysBodyOption);
	}
}

Hi .Sch,

As this is a rather old thread and your issue seems only tangentially related to the original issue, could you go ahead and post a new question?

-.

it is 4.21.2 and HideBoneByName still does not use PhysBodyOption.

NVM, it does work: https://answers.unrealengine.com/questions/870451/how-i-can-disable-specific-body-collision-in-physi.html?childToView=880918#answer-880918