안녕하세요, 저는 무기를 만들때 복사해서 BP_Sword1 , 2 , BP_Sword_Enemy 이런식으로 늘리고 Mesh Asset 만 바꿔서 사용중인데, 적이 들고있는 무기를 전용으로 만들고 그 무기도 똑같이 바닥에 배치해두어서 플레이어도 주워 사용할 수있게 했는데, 플레이어가 다른 Sword1,2 사용시에는 Left_Alt를 누르면 패링 애니메이션 기능 , 스태미너 감소 다 잘이루어집니다. 근데 적 무기랑 똑같은걸 들면 스태미너만 차감되고 패링 기능 + 애니메이션같은게 재생이 안되고 캐릭터가 멈춰버립니다. 그리고 좌클릭 ( 공격) , Space(구르기) 같은 모션을 하면 StateClear가 되서 돌아옵니다. 어느 부분을 체크해봐야 이것을 고칠 수 있을까요 ?
33:56 SELECT count(col2) FROM TABLE WHERE col1 in (2,3) or col2 in (3,5); 에서 결과가 4인점은 이해가 됩니다. (count는 Null 포함 x) 다만 오른쪽 아래 테이블이 헷갈리는 데, 만약 count(col2)가 아닌 col2만 출력하면 아래 처럼 나오는걸로 이해하고 있습니다. col2 ---- Null 6 5 3 3 강사님께서는 count에 해당하는 투플만 테이블만 표현하신건가요? 또 집계함수(sum, avg, max,min,count) 모두 Null은 포함하여 계산하지 않는다고 이해하면 될까요?
안녕하세요 강사님! 언리얼이 쉽지 않네요, 본론으로 질문하겠습니다. 현재 상황 조준 상태일 때 상체에 에임오프셋을 적용시켰는데 비정상적으로 동작하는 현상 1번 사진은 에임오프셋이고 Pitch만 받아서 사용함, 2번 사진은 인게임에서 해당 에임오프셋을 적용한 상태로 Pitch값은 0으로 둘다 동일함, 하지만 인게임에서는 손 위치가 밑에 떨어져 있음 구현하고자 하는 기능 조준 상태일 때, basePose에서 상체에 에임오프셋 을 적용하여 상하로 움직이는 상태로 만들어주고 싶음 코드 설명 및 구현한 방법 BasePose는 IdleWalkRun의 블랜드스페이스로 적용이 되어 있고, 착용가능한 무기에 따라서 각기 다른 IdleWalkRun을 구현할 수 있도록 만듬 우클릭을 누르면 조준상태가 되며 관련 정보는 Cpp내부에서 처리 MainState에서 스테이트 에얼리어스를 추가하여 조준 상태일 때, Aiming스테이트로 이동하게 만들고 Aiming 상태에서 가지고 있는 장비타입에 따라 다른 에임오프셋들을 적용시켜주고, 해당 에임오프셋과 BasePose를 Layerd blend per bone으로 섞어 상체는 에임오프셋, 하체는 기존 BasePose를 사용하도록 애니메이션을 섞음 구글 드라이브 링크 https://drive.google.com/file/d/1X1tpQo5A2J-XeGTXWUaEiWsjXJ1j4Th_/view?usp=sharing PS. 우클릭 을 누르고 있으면 조준상태 로 바뀌며, 콘솔창에 Handle Pistol, Fist, Rifle을 입력하면 현재 캐릭터가 착용하는 무기타입이 바뀌게 설정해놨습니다.
UI ProgressBar 작동 흐름을 요약해보자면 게임이 시작되면 DS1PlayerHUDWidget -> NativeConstruct 함수에서 OnAttributeChanged를 델리게이트 바인딩하면서 초기값을 세팅하고 만약 스테미나 값이 변경되면 AttributeComponent에서 변경된 타입과 비율을 담아 신호를 보내고, 신호를 받은 DS1PlayerHUDWidget -> OnAttributeChanged함수가 호출되며 자동 바인딩된(이름이 같은) StaminaBarWidget을 통해 SetRatio함수로 비율을 넘거주며 DS1StatBarWidget에서 비율을 받아 SetRatio 함수를 통해 Progress Bar의 퍼센트가 변경되며 화면에 보여진다. 제가 델리게이트 활용이 처음이라 헷갈려서 복습을 하며 정리를 해보았는데, 제가 정확히 이해했을까요? AttributeComponent ( 신호를 보내고 ) PlayerHUDWidget ( 신호를 받고 , 바인딩된 변수를 통해 함수를 호출하고 ) StatBarWidget ( Progress Bar가 변경된다. )
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 섹션 5의 <프린터 예제3 - 인터럽트 코드 개선 관련> 질문입니다. printer.addJob(input) 관련하여, 어떤 스레드에서 어디서부터 어디까지 책임지고 실행하는지 헷갈려서 정리해봤는데 검토해주시면 감사하겠습니다. === printer.addJob(input) 은 main 스레드(호출 스택)에서 실행된다. 공유하는 Heap 메모리 영역에 Printer 객체 주소가 있다. main 스레드는 Printer 객체의 jobQueue 변수에도 접근이 가능하고 addJob() 메서드를 호출할 수 있다. 따라서, addJob() 메서드에 대한 스택 프레임도 main 스레드(호출 스택)에 쌓여서 처리된다. === JPA 이후 오랜 만에 영한님 강의를 다시 듣기 시작했는데 재밌네요. 늘 감사합니다.
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 2:33초의 강의 내용 중 비효율이 있을 뿐 로직은 모두 정상 작동한다. 이 부분 말씀이 그냥 소비자가 소비자를 깨우는 상황에도 예를 들어 put(), take() 안의 로직이 작동한다는 거죠? 만약 생성자나 소비자가 같이 대기 하고 있을 때 같은 종류의 스레드만 계속해서 깨울 시에 starvation이 발생할 수 있는 것과는 이야기와는 별개인거 맞을까요?
안녕하세요, 토비님. 현재 MemberRegister 인터페이스는 register 뿐만 아니라 활성화/비활성화, 정보 업데이트 등의 오퍼레이션을 제공하고 있는데요, 해당 인터페이스에 작성된 주석은 회원의 등록과 관련된 기능을 제공한다 여서 ' register 를 제외한 오퍼레이션은 다른 인터페이스에 위치해야 하지 않나?' 하는 생각이 듭니다. 혹은 회원 등록 외 오퍼레이션이 해당 인터페이스에 존재하는게 의도하신 바지만, 주석 내용이 수정되지 않은 걸까요? 궁금한 점을 요약해서 정리하자면, xxxFinder 는 조회와 관련된 오퍼레이션을, xxxRegister 는 생성/수정/삭제와 관련된 오퍼레이션을 가지는 걸까요? 완강 후 회사에서 강의로 알려주신 것들을 이것저것 적용해보며 재밌게 일하고 있습니다, 정말 감사드립니다.
안녕하세요 강사님, 강의 잘 시청하고 있습니다. 월드 파티션 쪽 공부하다가 GTA스타일로 미니맵을 구현해보고 싶어서 질문드립니다. 현재는 단순하게 위에서 아래로 직교로 런타임 단위로 촬영하는 카메라를 도입하여 구현 한 상황입니다. 하지만 GTA같은 거대한 오픈월드의 미니맵을 구현할 때, 모든 엑터를 동적으로 촬영하는 것은 비효율적이라 생각하기에 마음에 들지 않는 상황입니다. 그래서 새롭게 구현하고자 하는 방식은 동적 엑터 와 정적 엑터 를 나눠서 구현하는 것입니다. 동적엑터 는 런타임에 생성되거나 움직이는 엑터 ex) 플레이어나, 적, 미션위치, 기타 등등 2. 정적엑터 런타임에 수정되지 않고 고정되어 있는 엑터 ex) 도로나, 건물 기타 등등 정적 엑터를 미리 Texture로 깔아 놓고 동적 엑터만 위에 깔아두는 식으로 설계하면 성능적으로 더 효율적일꺼라 생각했습니다. 그래서 먼저 맵에 깔려있는 도로나 건물같은 정적 엑터 들을 미리 Texture로 만들 수 있는 방법을 찾아보다가 베이킹이라는 용어도 알게되었고, World Partition Minimap 및 World Partition Minimap Volume이라는 걸 찾았습니다. 이걸 이용해서 현재 레벨의 맵을 베이킹할 수 있다고 하는데 그 방법을 당최 모르겠습니다. 언리얼 5.4에서 도입되었다고 하는데, World Partition Minimap, World Partition Minimap Volume을 이용하면 현재 레벨의 맵을 베이킹할 수 있는지도 궁금하고, 만약 안된다고 하면 현재 레벨의 맵을 어떻게 베이킹할 수 있는지 궁금합니다.