【UE4】AI Perception을 머리의 방향과 일치시킨다
5517 단어 위 4UnrealEngineUnrealEngine4
공지
2020-12-31
Get Head Loc Rot 함수의 구현 이미지를 교체했습니다. 단, 샘플 프로젝트는 변경하지 않았으므로 교체한 이미지를 참고로 수정하십시오.
참고 자료의 링크처의 동영상이 비공개가 되었기 때문에 열람 불가가 되었기 때문에 삭제했습니다.
소개
AI Perception에 대해서는 아래의 기사를 참조.
【UE4】AI Perception의 소개와 사용법
공식 소개 페이지 (최근 업데이트 된 것 같습니다)
Artificial Intelligence - AI Perception
AI Perception의 방향은 Root Component의 회전을 사용하기 때문에 반드시 머리의 회전과 일치하는 것은 아닙니다.
예를 들어 적군사가 순찰 중에 좌우를 향하는 애니메이션을 재생해도, Root Component 그 자체가 회전하고 있는 것은 아니기 때문에, 플레이어와 확실히 눈이 맞아도 「시야 내에 들어갔다」라고 지각해 줘 아니.
아래 이미지는 빨간색 테두리가 적을 나타내고 오렌지 화살표는 방향을 향하고 녹색 화살표는 AI Perception의 방향을 나타냅니다.
이 문제를 해결하려면 C++에서 GetActorEyesViewPoint 함수를 재정의해야 합니다.
프로젝트는 여기
기사의 내용을 구현한 프로젝트를 올리고 있습니다.
버전 4.22.3
htps // 1drv. ms/우/s! 오-8Fqg BK지 BrXYぉぁXcBj8v9? 에 = 오 T5PzR
수정해 보자!
GetActorEyesViewPoint 함수를 재정의하기 위해 AIController 클래스를 부모로 사용하는 C++ 클래스를 추가합니다.
무사히 생성&컴파일 할 수 있으면, 헤더측에 이하와 같이 추기합니다.
public:
UFUNCTION(BlueprintImplementableEvent, BlueprintCallable, Category = "PerceptionExtended")
void GetHeadLocRot(FVector& OutLocation, FRotator& OutRotation) const;
virtual void GetActorEyesViewPoint(FVector& out_Location, FRotator& out_Rotation) const override;
CPP측에는 다음과 같이 추기합니다.
void クラス名::GetActorEyesViewPoint(FVector& out_Location, FRotator& out_Rotation) const
{
GetHeadLocRot(out_Location, out_Rotation);
}
C++ 측은 이것으로 끝입니다.
다음은 BlueprintImplementableEvent로 선언한 GetHeadLocRot 함수를 블루프린트 측에서 구현합니다.
먼저 Character 클래스를 부모로 한 블루프린트를 만들고 메쉬나 애니메이션 블루프린트를 설정합니다.
Mesh 구성 요소의 자식으로 Scene Component를 추가합니다.
추가한 Scene Component를 선택하고, Details 패널(상세 패널)의 Sockets - Parent Socket 돋보기를 클릭하고 Head 본을 선택합니다.
추가한 Scene Component가 애니메이션과 추종하는지 확인한 후 Scene Component의 Rotation을 조정합니다.
AI Controller의 설정을 잊지 마세요.
그런 다음 C++에서 만들고 GetActorEyesViewPoint 함수를 재정의한 AI Controller 클래스를 부모로 사용하는 블루프린트를 만듭니다.
Event Graph에서 On Possess 이벤트를 호출하고 반환 값 PossessedPawn에서 위에서 만든 AI 캐릭터 블루 프린트로 캐스트하고 반환 값을 변수에 저장합니다.
My Blueprint 패널의 Functions에서 Override 버튼을 클릭하고 목록에서 GetHeadLocRot를 선택합니다.
선택하면 자동으로 GetHeadLocRot 탭이 열리므로 다음과 같이 노드를 배치합니다.
Add Component에서 AI Perception Component를 추가하여 AI Sight Config를 구성합니다.
이상으로 AI Perception이 머리의 회전과 일치하게 되었습니다.
참고 자료
없음
Reference
이 문제에 관하여(【UE4】AI Perception을 머리의 방향과 일치시킨다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Dv7Pavilion/items/0849201fcb8e3524ec25
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
AI Perception에 대해서는 아래의 기사를 참조.
【UE4】AI Perception의 소개와 사용법
공식 소개 페이지 (최근 업데이트 된 것 같습니다)
Artificial Intelligence - AI Perception
AI Perception의 방향은 Root Component의 회전을 사용하기 때문에 반드시 머리의 회전과 일치하는 것은 아닙니다.
예를 들어 적군사가 순찰 중에 좌우를 향하는 애니메이션을 재생해도, Root Component 그 자체가 회전하고 있는 것은 아니기 때문에, 플레이어와 확실히 눈이 맞아도 「시야 내에 들어갔다」라고 지각해 줘 아니.
아래 이미지는 빨간색 테두리가 적을 나타내고 오렌지 화살표는 방향을 향하고 녹색 화살표는 AI Perception의 방향을 나타냅니다.
이 문제를 해결하려면 C++에서 GetActorEyesViewPoint 함수를 재정의해야 합니다.
프로젝트는 여기
기사의 내용을 구현한 프로젝트를 올리고 있습니다.
버전 4.22.3
htps // 1drv. ms/우/s! 오-8Fqg BK지 BrXYぉぁXcBj8v9? 에 = 오 T5PzR
수정해 보자!
GetActorEyesViewPoint 함수를 재정의하기 위해 AIController 클래스를 부모로 사용하는 C++ 클래스를 추가합니다.
무사히 생성&컴파일 할 수 있으면, 헤더측에 이하와 같이 추기합니다.
public:
UFUNCTION(BlueprintImplementableEvent, BlueprintCallable, Category = "PerceptionExtended")
void GetHeadLocRot(FVector& OutLocation, FRotator& OutRotation) const;
virtual void GetActorEyesViewPoint(FVector& out_Location, FRotator& out_Rotation) const override;
CPP측에는 다음과 같이 추기합니다.
void クラス名::GetActorEyesViewPoint(FVector& out_Location, FRotator& out_Rotation) const
{
GetHeadLocRot(out_Location, out_Rotation);
}
C++ 측은 이것으로 끝입니다.
다음은 BlueprintImplementableEvent로 선언한 GetHeadLocRot 함수를 블루프린트 측에서 구현합니다.
먼저 Character 클래스를 부모로 한 블루프린트를 만들고 메쉬나 애니메이션 블루프린트를 설정합니다.
Mesh 구성 요소의 자식으로 Scene Component를 추가합니다.
추가한 Scene Component를 선택하고, Details 패널(상세 패널)의 Sockets - Parent Socket 돋보기를 클릭하고 Head 본을 선택합니다.
추가한 Scene Component가 애니메이션과 추종하는지 확인한 후 Scene Component의 Rotation을 조정합니다.
AI Controller의 설정을 잊지 마세요.
그런 다음 C++에서 만들고 GetActorEyesViewPoint 함수를 재정의한 AI Controller 클래스를 부모로 사용하는 블루프린트를 만듭니다.
Event Graph에서 On Possess 이벤트를 호출하고 반환 값 PossessedPawn에서 위에서 만든 AI 캐릭터 블루 프린트로 캐스트하고 반환 값을 변수에 저장합니다.
My Blueprint 패널의 Functions에서 Override 버튼을 클릭하고 목록에서 GetHeadLocRot를 선택합니다.
선택하면 자동으로 GetHeadLocRot 탭이 열리므로 다음과 같이 노드를 배치합니다.
Add Component에서 AI Perception Component를 추가하여 AI Sight Config를 구성합니다.
이상으로 AI Perception이 머리의 회전과 일치하게 되었습니다.
참고 자료
없음
Reference
이 문제에 관하여(【UE4】AI Perception을 머리의 방향과 일치시킨다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Dv7Pavilion/items/0849201fcb8e3524ec25
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
GetActorEyesViewPoint 함수를 재정의하기 위해 AIController 클래스를 부모로 사용하는 C++ 클래스를 추가합니다.
무사히 생성&컴파일 할 수 있으면, 헤더측에 이하와 같이 추기합니다.
public:
UFUNCTION(BlueprintImplementableEvent, BlueprintCallable, Category = "PerceptionExtended")
void GetHeadLocRot(FVector& OutLocation, FRotator& OutRotation) const;
virtual void GetActorEyesViewPoint(FVector& out_Location, FRotator& out_Rotation) const override;
CPP측에는 다음과 같이 추기합니다.
void クラス名::GetActorEyesViewPoint(FVector& out_Location, FRotator& out_Rotation) const
{
GetHeadLocRot(out_Location, out_Rotation);
}
C++ 측은 이것으로 끝입니다.
다음은 BlueprintImplementableEvent로 선언한 GetHeadLocRot 함수를 블루프린트 측에서 구현합니다.
먼저 Character 클래스를 부모로 한 블루프린트를 만들고 메쉬나 애니메이션 블루프린트를 설정합니다.
Mesh 구성 요소의 자식으로 Scene Component를 추가합니다.
추가한 Scene Component를 선택하고, Details 패널(상세 패널)의 Sockets - Parent Socket 돋보기를 클릭하고 Head 본을 선택합니다.
추가한 Scene Component가 애니메이션과 추종하는지 확인한 후 Scene Component의 Rotation을 조정합니다.
AI Controller의 설정을 잊지 마세요.
그런 다음 C++에서 만들고 GetActorEyesViewPoint 함수를 재정의한 AI Controller 클래스를 부모로 사용하는 블루프린트를 만듭니다.
Event Graph에서 On Possess 이벤트를 호출하고 반환 값 PossessedPawn에서 위에서 만든 AI 캐릭터 블루 프린트로 캐스트하고 반환 값을 변수에 저장합니다.
My Blueprint 패널의 Functions에서 Override 버튼을 클릭하고 목록에서 GetHeadLocRot를 선택합니다.
선택하면 자동으로 GetHeadLocRot 탭이 열리므로 다음과 같이 노드를 배치합니다.
Add Component에서 AI Perception Component를 추가하여 AI Sight Config를 구성합니다.
이상으로 AI Perception이 머리의 회전과 일치하게 되었습니다.
참고 자료
없음
Reference
이 문제에 관하여(【UE4】AI Perception을 머리의 방향과 일치시킨다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Dv7Pavilion/items/0849201fcb8e3524ec25
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【UE4】AI Perception을 머리의 방향과 일치시킨다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Dv7Pavilion/items/0849201fcb8e3524ec25텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)