본문 바로가기

전체 글

(231)
(카메라, Inventory, NPCShop, Widget, 트레이스 ) 3 플레이어 돈을 상점에서 보이게 만들자         상점 클릭시 인벤토리에 아이템 데이터 저장 인벤토리 컴포넌트 제작
09-26 (카메라, Inventory, NPCShop, Widget, 트레이스 ) 2 Step3 상점 NPC 와 상호작용 시 상점과 슬롯이 나오도록 설정   Pre-Construction:'Pre-Construction'은 위젯이 생성되기 전에 호출되는 단계입니다. 이 단계에서 위젯은 아직 화면에 나타나기 전에 초기화되며, 구성 요소가 아직 화면에 배치되기 전에 설정해야 할 속성들을 다룰 수 있습니다. 예를 들어, 위젯의 초기 상태를 설정하거나, 변수를 초기화하거나, 다른 위젯 구성 요소들을 추가하기 전에 실행되는 단계입니다. Construction:'Construction'은 위젯이 실제로 화면에 생성되고, 렌더링되기 직전에 호출되는 단계입니다. 이 단계에서는 위젯의 시각적인 부분을 구성하거나, 데이터를 로드하여 표시할 준비를 하거나, 다른 위젯과의 상호작용을 설정할 수 있습니다. 화면..
새싹 09-25 (카메라, Inventory, NPCShop, Widget, 트레이스 ) Inventory와 Shop 을 만들기 NPCShop 액터 클래스 : 트레이스를 받은 후 상호작용 키를 누르면 상점을 연다. 전용 카메라가 존재하여 카메라블랜드로 자연스럽게 시점이 변경되도록한다. Inventory : 아이템을 담고 특정 갯수 이상 받으면 다음칸에 쌓인다. Step 1 트레이스를 이용해서 캐릭터가 NPC 를 바라보면 트리거 작동 가능하도록 만든다.  상호작용은 인터페이스를 이용해서 독립성을 유지하도록한다.  인터페이스를 이용해서 캐릭터가 트레이싱 했을때 상호작용에 가능하다는 위젯을 띄워준다.  상호작용시 카메라블랜드를 이용해서 npc 가 가지고 있는 카메라로 자연스럽게 시점 변환이 일어난다. Step2아이템, 아이템 구조체, 매니저 FItemData : 아이템의 정보를 저장하고 데이터 테..
24-09-12 (애니메이션) 뼈대가 다르면 결국 리타겟팅을 위한 체인을 생성해야한다. 뼈대가 같다면 자동 리타켓팅이 가능하다. 리타게터에서 뼈대를 맞춰주고 나면 원하는 스켈레탈 메쉬로 원하는 애니메이션을 임포트 가능하다. 블렌드 스페이스애니메이션끼리 자연스러운 모션변경을 위한 기능.생성한 블렌드 스페이스는 ABP 에서 사용가능하다. 애니메이션 몽타주ABP의 특정 상태에서도 다른 애니메이션을 사용하고 싶을 때 사용 가능한 기능이다.몽타주를 생성하고 나면 Layerd blend per bone 노드를 이용하여 기존에 사용하던 스테이트 머신의 포즈와 내가 사용할 특정 슬롯을 이용하여 블렌드 하여 원하는 애니메이션 혹은 몽타주를 가져올수있다.        노드에서 특정 본을 기준으로 포즈들을 블랜드 가능하도록 만든다. 기준을 안잡으면 몽타..
09-09 (캐릭터 클래스) SetActorLocation 은 위치를 재정립하는 함수이다. AddMovementInput 은 캐릭터의 이동을 처리하는 기본적인 방법 이다.  AddMovementInput  1. 이동 방향과 크기를 입력 받는다. 주어진 방향으로 일정한 속도로 움직이게 만든다. 2. 물리 기반 이동 : 물리적으로 캐릭터를 이동한다. 이동하기전에 물리 법칙에 영향 받는지 체크하고 결과가 나온다.--> 물리 연산 --> 입력 연산 --> 결과 CharacterMovementComponent 와 함께 사용된다. 물리 엔진과 상호 작용 및 중력의 영향을 받는다. 3. 프레임 독립성 : 프레임 독립적으로 동작. 프레임 속도에 따라 이동 거리가 달라지지 않도록 자동으로 조정된다. 캐릭터 이동이 일관되게 유지되게 만듬. SetAc..
백준 17829 - 222풀링 쿼드트리로 2*2 행렬을 계속해서 만들자 #include #include #include #include int n;using namespace std;int Recursion(int x, int y, int len, vector>& vec){ // 마지막 2*2 정사각형을 만들기 위해 if (len == 1) { return vec[x][y]; } vector v; int divsize = len / 2; v.push_back(Recursion(x, y, divsize, vec)); v.push_back(Recursion(x, y + divsize, divsize, vec)); v.push_back(Recursion(x + divsize, y, divsize, vec)); v.push_back(Rec..
백준 2493 탑 스택 문제 어렵네... 생각이 안남 #include #include #include #include using namespace std;int main(void){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int num; cin >> num; stack> sta; for (int i = 0; i > n; while (!sta.empty()) { if (sta.top().first > n) { cout
09-04 (위젯) cpp 에서도 해당 클래스의 헤더 파일을 제일 위에 두는게 좋다. WBP 에 추가한 기능들을 cpp 상에서도 똑같이 추가해주어야한다. 이름이 같아야함. TitlePannel->SetVisibility(ESlateVisibility::Hidden); GetWorld()->GetFirstPlayerController()->SetInputMode(FInputModeGameOnly()); GetWorld()->GetFirstPlayerController()->SetShowMouseCursor(false); 여러 캔버스를 하나의 위젯에 넣고 원하는대로 보거나 숨기게 만들자.마우스와 위젯의 사용 경우도 따져야한다. 위젯을 게임모드에서 추가한다면 래퍼런스 클래스와 인스턴스 클래스 2개를 만들어 에디터에서 설정해주고 ..