
소켓을 통해 메시에 부착하기만든 총을 부착하기 위해서는 기존에 있던 총을 제거하거나 안보이도록 감추는 작업을 해주어야 한다.우선 총이 스켈레톤 메시의 어느 부분에 해당하는지 체크해보자. 이제 해당 메시를 C++ 에서 잡아주는 작업을 해보자.GetMesh() 함수를 통해 해당 메시를 얻는 것이 가능하다. 이후 얻은 메시를 감춰주어야 하는데, 이는 HideBoneByName 함수로 가능하다.해당 함수는 감출 대상의 이름과, EphysBodyOp 이라는 변수를 받는다.PBO_None을 작성함으로서 디폴트값 표시가 가능하다. 기존 weapon_r의 위치를 사용하기 위해 해당 위치에 소켓을 생성해주자.해당 소켓은 끼워 넣을 수 있는 지점을 나타내게 된다. 이제 해당 메시를 생성한 소켓 위치에 붙여주는 작업을 해야..

런타임에 액터 스포닝하기(spawning)저번에 만든 총을 이제 캐릭터에 연동할 차례이다.이를 위해 우선 런타임 동안에 소총을 스포닝하는 방법을 알아보자. 액터 스폰에 대해서는 UWorld에 속한 SpawnActor 함수를 통해 스폰하게 된다.총은 게임이 시작되자마자 캐릭터가 가지고 있어야 하므로 BeginPlay에서 해당 함수를 작성하게 된다.해당 함수는 템플릿 함수이므로 우리가 사용할 총의 타입인 AGun을 넣어준다.다음으로 인수를 받는데, 인수는 클래스로 받는 것이 가능하다. (UClass 타입) 기본적으로 우리는 C++에서 스폰 작업을 하지만, 여기서 해당 Gun의 블루프린트 하위를 스폰하게 된다.이를 위해 블루프린트에 후킹할 방법을 알아야한다.C++에서 직접 후킹하는 것은 어려우므로 다른 방법을..

건(Gun) 액터해당 게임은 총을 사용한 슈터 게임이다.따라서 캐릭터는 총을 가지게 되므로 이번 강의에서는 총 액터를 생성해주는 작업을 해본다. 기존 캐릭터를 보면 총이 이미 존재하지만, 기본적으로 슈터 장르의 게임에서는 여러 총을 사용하기 위해 총이 교체 가능해야 한다.따라서 따로 총 액터를 생성하고, 이를 캐릭터의 하위로 할당하여 사용하게 된다.먼저 총을 생성하는데 총은 캐릭터나 폰의 기능이 필요없으므로 단순 Actor 클래스로 생성하게 된다. 그리고 해당 클래스에 대한 블루프린트도 미리 만들어두자. 다음으로 해당 총의 루트가 될 SceneComponent와 이에 어태치하여 사용할 Mesh를 선언해주자.이때 Mesh는 총이 어떤 이유에서인지 스켈레톤 메시로 작성되어있기 때문에 스켈레톤 메시로 선언해주..
문제링크 : https://www.acmicpc.net/problem/11536 #include using namespace std;typedef long long ll;typedef pair pii;const int MAX = INT_MAX;int N;string s;vectorv;vectorv1;vectorv2;int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> N; for(int i=0; i> s; v.push_back(s); v1.push_back(s); v2.push_back(s); } sort(v1.begin(), v1.end()); //오름차순 sort(v2.beg..

애니메이션 속도 계산하기현재 애니메이션의 속도와 캐릭터의 속도가 같지 않아서 마치 발이 미끄러지는 듯한 현상이 관측되는 것을 볼 수 있다.이를 개선하기 위하여 애니메이션의 속도를 계산해보자.이를 위해 우선 앞으로 달리는 애니메이션 모습을 체크해보자. 우리가 앞으로 달리는 애니메이션에서 체크해야할 것은 발의 움직임이다.발이 지면에 붙은 순간의 시간과 발이 지면에서 떨어진 순간의 시간을 이용하여 해당 움직임의 속도를 구할 수 있다.아래 표시한 마커의 소수점이 해당 시간을 나타낸다. (0.26) 그리고 추가로 속도를 구하기 위해 해당 발 움직임의 위치가 필요하다.우측 상단을 보면 Location을 확인할 수 있는데 로컬 좌표계로 보면 위치가 그대로인 상태에서 회전만 하는 것이기에 위치의 움직임을 구하는 것이 ..