Engine (14) 썸네일형 리스트형 [Unreal] BehaviorTree BehaviorTree 는 언리얼에서 인공지능을 좀더 효율적으로 다루기 위해 여러 간선으로 이루어진 AI시스템입니다 애니매이션을 다룰때 사용했던 상태머신과 비슷한 개념으로 이해하시고 글을 읽으면 도움이 되실거라 생각됩니다 BehaviorTree는 데이터를 저장하는 BlackBoard와 저장된 BlackBoard 의 값을 이용, 수정하며 AI에 명령을 내리는 BehaviorTree 이렇게 두가지를 활용합니다 BehaviorTree노드 종류 Root(루트) BehaviorTree의 시작점입니다 아래로 향하는 노드는 하나만 연결 할 수 있으며 데코레이트나 서비스 노드를 부착할 수 없습니다 셀렉터(Selector) 왼쪽 자손노드에서 오른쪽 자손노드 순서로 실행되며, 자손노드중 하나가 성공한다면 나머지 자손노드는.. [Unreal] UFUNCTION UFUNCTION(BlueprintCallable) void doSomething(); BlueprintCallable : 가장 기본적인기능으로 C++에서 작성한 함수를 블루프린트에서 사용할 수 있게하는 키워드이다 BlueprintPure : 간단하게 값을 넣고 반환하는 형태의 키워드입니다 BlueprintImplementableEvent : 위의 기능들이 C++로 작성한 함수를 블루프린트에서 사용하게 하려는 키워드였다면 해당키워드는 블루프린트로 작성한 함수를 호출할 수 있게하는 키워드입니다 BlueprintNativeEvent : BlueprintImplementableEvent 와 같은 느낌이지만 해당 키워드는 블루프린트에서가 아닌 C++에서 가상함수를 만드는 개념입니다. Category 와 meta.. [Unreal] UPROPERTY UPROPERTY()는 변수에 붙는 리플렉션 메크로입니다 빌드 시에 UHT(Unreal Header Tool)가 이 매크로를 감지하고 리플렉션 유형에 추가하게 됩니다 https://darkcatgame.tistory.com/62 UE4 C++와 블루프린트 연동 기본 -1. UPROPERTY() UPROPERTY() UPROPERTY()는 변수에 붙는 리플렉션 메크로입니다, 위 코드 처럼 UPROPERTY() 메크로에 인자 값을 넣어서 용도에 맞게 활용 할 수 있습니다. 내부에 들어가는 인자 스타일은 제가 자주 쓰는 darkcatgame.tistory.com 해당 블로그가 정리가 너무잘되어있어 해당 블로그를 보며 참고했다 UPROPERTY(EditAnywhere) float TestP; // Visible.. [Unreal]언리얼 함수 메모장 myfvector.Normalize() // 해당벡터 자체를 정규화시키는 함수 인자값의 정밀도로 체크하여 정규화가되었다면 bool타입을 반환시키는 inline 함수 Fvector myfvector = Fvector.GetSafeNormal(float Tolerance); // 인자 값 이상의 오차범위가 아닌 경우 벡터를 정규화 복사하여 정규화시켜 반환시킴 SetActorLocation(Fvector()); // 엑터의 위치를 지정한 좌표로 이동시킴 AddActorLocalOffset(Fvector(),bSweep,&hitresult); // 엑터의 위치에 Fvector의 좌표값만큼 이동시킨다 bsweep가 true라면 충돌을 방지한다 // 4번째 인자는 물리엔진 순간이동할지 여부에대한 설정이라함 // 로.. [Unreal]C++클래스 삭제 언리얼로 C++ Actor를만들고 공부하던도중 실수를 너무많이해서 차라리 다시만들자 라는 생각이 들어 C++ 클래스를 삭제하려했습니다 클래스를 누르고 우클릭을 눌러서 삭제 버튼을 아무리 찾아봐도 삭제버튼이 보이지않아서 글을 써야겠다 마음먹었습니다 우선 엔진을 끄고 해당 프로젝트의 브라우저-> Source로 이동하여 해당 삭제하고 싶은 C++ 클래스의 cpp 파일과 헤더 파일을 삭제한다 이후 Binaries 파일을 삭제한다음에 Generate Visual Studio project files를 실행시킨후 해당 폴더를 다시 더블클릭하여 삭제된 파일들을 확인하고 실행시키면된다 조금번거롭지만 프로젝트가 터지는 경우를 방지하기에 좋아보인다 다른방법은 비쥬얼 스튜디오와 탐색기에서 Cpp와 헤더 파일 모두를 지운다음.. [Unreal] c++ 클래스 생성 오류 '신규 클래스 이름' 클래스 추가에 성공했지만, '프로젝트이름' 모듈을 다시 컴파일해야 콘텐츠 브라우저에 나타날 것입니다. '프로젝트이름' 모듈을 자동으로 핫 리로드하는 데 실패했습니다. 언리얼 공부중 해당 오류가 발생하며 클래스가 생성되지않는 문제가 발생되었다 생성되지않는것이 아니라 생성은되지만 에디터 상에 보여지지않는 문제가 발생한것이다 내 경우는 오류가 난 코드를 컴파일하지않고 새로운 클래스를 생성하려다가 해당 오류가 발생하였다 해당 오류를 수정하고 다시 컴파일한후 비쥬얼스튜디오에서 솔루션 빌드 까지 마친후에 에디터상에 보여졌다 [Unity] 애니메이션 오브젝트가 이동을할때 정적으로 움직이면 뭔가 심심하고 재미가없다 떄문에 우리는 애니메이션을통해 오브젝트에 생명을 불어넣어 오브젝트가 살아있는것처럼 이동하게끔한다 우선 첫번째로 에니메이션 컨트롤러를 생성해주어야한다 우리는 애니메이션 컨트롤러에서 플레이어의 상태에 따른 애니메이션을 실행시키기위한 리모컨과같은 존재라고 보면된다 이제 애니메이션 컨트롤러를 만들면 해당화면이 보일것이다 유니티 애니메이션 커트롤러의 3가지 구성요소인 스테이트, 트렌지션 파리미터가 있는데우선 우리는 애니메이션의 상태에 해당하는 스테이트를 만들어볼것이다 다운받은 애니메이션 클립을 드래그 드롭하여 넣어줘도되고 우클립 [Creat State] -> [Empty] -> [Motion]에서 해당 클립을 넣어주는방식 둘중 편한 방식으로 애니메이.. [Unity] 네비게이션 몬스터가 플레이어를 따라오게하는 기능을 구현하는경우 네비게이션 기능을 이용하면 쉽게 구현이 가능하다 우선 [Window] -> [AI] -> [Navigation]창이 필요하다 게임을 플레이할 맵을 클릭한 다음에 object에서 Navigation Static을 체크한다 Terrain이나 Mesh Renderer 컴포넌트를 가진 게임 오브젝트만 Bake 하여 해당 구역만 내비게이션 영역으로 설정하겠다는 옵션이다 그다음에 Bake를 누르면 되는데 Bake는 CD를 굽는다는 말처럼 미리 계산을 해두어 사용하겠다는의미이다 실시간으로 연산을 하기에는 너무 많은 자원이 소모되기에 정적으로 존재하는 맵과 같은 경우는 미리 Bake하여 불필요한 연산을 줄이려는 방식이다 using System.Collections; .. 이전 1 2 다음