너무 궁금해서 질문올립니다. 구글 검색해보니 PlayerController를 쓰는 예제도 있고 뭐 여러가지가 있는데 캡슐 콜라이더를 붙이고 정상적으로 이동이 되는 걸 보고 싶어서요. 강사님께서는 키네마틱이 꺼져있어서 물리 적용을 받아서 그런거 같다고 하는데 제 생각도 같습니다. 다만 키네마틱을 켜는 순간 다른 오브젝트들과 물리 상호 작용을 하지 않는 것으로 알고 있어서 물리 상호 작용하면서 정상적으로 구현하고 싶네요. 예전에도 만들다가 결국 PlayerController써서 중력 적용 시켜서 만들었는데 뭔가 안되서 포기하고 만들었던거라 찜찜한게 남아있거든요. 부탁드립니다 ㅠㅠ 아 그리고 강의 중반부터 섹션 5부터 섹션 6으로 넘어갈때 캡슐콜라이더가 꺼져있고 메쉬콜라이더가 켜져서 움직이던데 스킨메쉬렌더러라서 메쉬정보 없어서 convex가 안되는 것으로 알고 있는데 어떻게 plane위에 서있는지도 궁금합니다.
안녕하세요 강의 너무나 잘 듣고있습니다. 강의에서 CameraController의 Raycast에서 origin(플레이어) direction(카메라 방향)으로 구현하셨습니다. origin을 카메라로 direction을 플레이어 방향으로 구현하지 않으신 특별한 이유가 있을까요? 몇 가지 이유를 생각해봤는데 계산이 어렵다는 생각이 들더군요 (벽이 두껍다던지 다수의 오브젝트가 카메라를 막고있다던지..의 상황에서요) 다른 이유가 또 있을까요?
검색해보니 후반에 추가 수정하셨다는 답변글이 있는거 같은데... 아직 거기까지 진도는 못빼서요. 키보드 입력받고 캐릭터를 돌릴땐 아무 문제가 없습니다. freeze Rotation을하니 회전이 안먹더라구요. 근데 마우스 입력 부분 집어 넣으니 땅을 찍고 이동하면 꼭 도착할때쯤 마지막에 가서 x축이나 z축의 회전이 먹네요. freeze Rotation을 했음에도 불구하고... 후반부에 이 내용에 대한 수정 부분이 나온다면 계속 보면 되겠지만 현재로선 궁금해서 질문 올려봅니다. 제 생각에는 마지막 도착할 즈음에 bool 변수를 false로 바꿔서 더 움직임을 갖고 가지 않도록 막는거 같던데 거기에서 로테이션 값을 리셋시켜주는 방법으로 풀어나가야하나 생각하고 있었습니다.
안녕하십니까, 현재 RetinaNet을 구현해보고자 Retitanet paper를 읽고 케라스 공식홈페이지의 Retinanet 예시 코드(https://keras.io/examples/vision/retinanet/#implementing-smooth-l1-loss-and-focal-loss-as-keras-custom-losses) 를 이해하고자 하는데 제가 전반적인 흐름을 이해하질 못하고 있습니다. 본 강의에 있는 Fast RCNN 파트에서, 예측 박스가 Ground Truth 좌표값을 따라가는 것이 아닌 Anchor Box 중에서 Ground Truth와 IOU 높은 Positive Anchor Box를 따라간다고 하였습니다. 그렇다면 1. RetinaNet이 작동하기 전 과정이, 우서적으로 Anchor box들 생성하고 그 중에서 Ground Truth와의 IoU>= 0.5인 Positive Anchor Box 찾기 가 맞는지요. 2. 그리고 RetinaNet 구조를 보면 FPN 에서 나온 P3 ~ P7(Retinanet paper 기준) feature map을 class subnet과 box subnet으로 각각 들어가게 되고, 위 케라스 공식 홈페이지 예제 코드 이때, box subnet의 결과값이 W x H x (4 x 9) 꼴인데, Positive Anchor Box의 좌표는 (x, y, w, h)로 4개인데 어떻게 regression 계산이 되는지 궁금합니다. class subnet에 들어가게 되면 W x H x (num_classes x 9) 꼴의 결과값이 나오는데, 이는 2번질문과 마찬가지로 class labeling은 0,1,2,...과같은 정수형이거나 벡터형으로 나타날텐데 어떻게 regression 계산이 되는지 궁금합니다. 3. 또한, Positive Anchor Box를 제외한 나머지 Anchor Box들은 결국에는 직접적인 학습에 사용되지 않는 것인지요? 만약 사용된다면 Negative Anchor Box(IoU < 0.4)와 Ignorance Anchor Box(0.4 <= IoU < 0.5)가 어떤식으로 사용되는 지에 대해 설명 부탁드립니다. 4. 또한, 한 이미지에 서로 다른 객체가 2개 이상일 때, feature map이 class subnet에 들어가서 도출된 결과값( (num_classes) X 9)이 어떤 방식으로 해당 객체의 레이블과 대응하여 학습되는지 궁금합니다. 예를 들어, 사과(0), 고양이(1), 강아지(3) 클래스가 3개인 데이터셋에서, 사과(0)와 고양이(1)가 존재하는 특정 이미지를 RetinaNet에 training시키게 되면, P3 ~ P7의 feature map이 class subnet으로 들어가서 W x H x (3 x 9)꼴의 결괏값이 나올텐데, 이때 해당 결괏값이 사과(0)인지, 고양이(1)인지 어떤 값이 대응하여 학습해야할 지에 대해서 알 수가 없어 이렇게 질문드립니다. 대략적인 이론을 알고 있다고 생각하여 직접 코딩을 하려했지만, 막막하여 keras 예제를 통해 역으로 이론을 이해하려 시도했습니다. 하지만 코드 자체가 이해가 되질 않고, 어떤 식으로 데이터가 흘러가지는에 대해서도 파악할 수가 없었습니다.. 혼자서 해결해보려 했으나 며칠동안 해결되지 않고 오히려 이해가 되지 않는 부분이 많아져서 이렇게나마 질문을 드립니다...
마우스 클릭해서 캐릭터가 이동하는거까지 잘되는데요. 이동한 후 캐릭터가 조금씩 뜨면서 천천히 날아갑니다. Use Gravity켜면 날아가지는 않는데 어떤 힘을 받는지 천천히 앞으로 쓰러져요. Is Kinematic켜면 물리현상이 없어져서 이런게 다 괜찮아지기는하는데, 강사님 영상에서는 UnityChan이 Use Gravity랑 Is Kinematic이 체크가 안되어 있더라고요. 영상이랑 똑같이 gravity랑 kinematic 체크푼 상태에서 잘 잘작동했으면 좋겠는데. 마우스 이동 후 공중으로 천천히 올라가는걸 고치고 싶은데 어떻게 해야하나요? 코드는 다 살펴봤는데 다른 점은 없었던 것 같아요.
안녕하세요 강의를 들으며 많은 것을 배워가고 있습니다. static 키워드에 관해 두가지 질문을 드리고 싶습니다. 1. static 변수는 프로그램의 시작과 함께 데이터 영역에 할당이 된다고 배웠습니다. 의문점은 문득 코드를 살펴보다 static으로 선언된 Input이라는 변수는 인스턴스화 하기 전에 할당되는 변수인데 get으로 _input을 반환한다는게 조금 어색하게 다가왔습니다. 혹시나 하는 마음에 s_instance를 반환하는 Instance 프로퍼티를 가지고 유사하게 실험을 했습니다. static Managers s_instance;에서 static을 없애니 Instance로 선언된 프로퍼티의 get부분에서 s_instance를 static으로 선언하라는 에러가 났습니다. 위의 두 줄과 아래 두 줄이 동일한 매커니즘을 거치는 것 같은데 한쪽은 static이 없고 한쪽은 static이 있어야 하는 상황에 대해서 알고싶습니다. 2. 두번째 질문은 static 메서드와 static 변수는 정확히 어느 시점에서 할당이 되는지 궁금합니다. 구글링을 해보니 "클래스가 메모리에 올라갈때" 라는 다소 추상적인 글을 확인할 수 있었습니다. 이 말이 로딩과정에 일어나는 일이라고 이해해도 되는걸까요? 이에 대해 조금 자세히 설명을 부탁드려도 될까요?
안녕하세요. 강의 잘 듣고 있습니다. 제가 Singleton 패턴을 잘 이해한 것인지 헷갈려서.. 아래와 같이 메모해 두었는데 제대로 이해한 것일까요? //그러니까 // Manager s_instance = new Manager(); 이게 안되니까 // go라는 GameObject를 만들어 @Managers 라는 GameObject를 생성해 집어넣던지 있으면 찾아넣던지 하고 // @Managers에 Managers클래스(스크립트)를 컴포넌트로 같다붙인 뒤 // Managers 클래스의 static instance인 s_instance에다가 // @Manager라는 GameObject에 붙어있는 컴포넌트 -> Managers 클래스를 집어넣음으로써 // 결과적으로 Managers의 static instance인 s_instance에다가 // Managers 를 갖다넣음 즉 Manager s_instance = new Manager(); 이거를 // @Managers 라는 GameObject라는 애를 통해서 우회적으로 한 것임. 감사합니다.
Slerp 함수를 사용해서 북쪽을 본 상태에서 남쪽으로 방향으로 전환을 하게 되면 그 즉시 방향이 남쪽으로 변환이 되는건가요? transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.back), 0.5f); transform.position += Vector3.forward * Time.deltaTime * _speed; 코드를 살펴보고 실행결과를 보면 캐릭터가 북에서 남으로 자연스럽게 움직이지만 월드 좌표 방향으로 즉시 전환되는 듯 합니다. (즉시 전환되기 때문에 ransform.position += Vector3.forward * Time.deltaTime * _speed; 이 코드가 실행됐을 때 월드좌표 방향으로 가는 것이 아닐까 하는 생각입니다..) 제 개인적인 추측이지만 궁금해서 질문 올립니다. 감사합니다.
실제 Vector3 클래스를 살펴보면 연산자 오버로딩의 선언(?) 부만 있고 구현부는 찾아볼 수 없습니다. public static Vector3 operator +(Vector3 a, Vector3 b); public static Vector3 operator -(Vector3 a); public static Vector3 operator -(Vector3 a, Vector3 b); public static Vector3 operator *(float d, Vector3 a); public static Vector3 operator *(Vector3 a, float d); public static Vector3 operator /(Vector3 a, float d); 실제 구현부는 다른곳에 정의되어있나요? 감사합니다
안녕하세요. 노드버드 강의 보면서 제가 맡은 프로그램을 짜보고 있습니다. 다름이 아니라, mysql 디비에서 라우팅해서 관련 데이터가 포스트맨으로 넘어오는거까지 확인이 되었는데요, 프론트엔드 부분에서 statusView 페이지에서 관련 데이터 받아와서 뿌리는 테스트 코드를 작성해봤는데, 아무런 반응이 없습니다. 테스트 코드는 다음과 같습니다. 크롬창에서 localhost:3000/statusView 들어가보면 Hello Town1 List만 나오고 console.log(test) 이부분은 undefined로 나옵니다. getInitialProps가 동작을 했다면 console.log('aaaaaa')가 나왔어야 하는데 이건 출력이 안되더군요. 참고로, 백앤드 서버는 실행한 상태에서, 새로 폴더를 만들어서 react, react-dom, next 만 설치한 상태에서 pages 폴더를 만들고 statusView 페이지에 위에 코드를 넣어보니 이때는 또 데이터가 잘 넘어 옵니다. 어디서 부터 디버깅을 해야할지 막막해서 두서없지만 질문 올립니다.
멀티 쓰레드 질문 드립니다. GameRoom 이 JobQueue를 가지고 있어서 멀트 쓰레드에서 안전하다고 하셨는데 GameRoom 의 Broadcast , Enter,Leave 등은 JobQueue 를 이용 하니 멀티 쓰레드에서 안전 한거 같은데 GameRoom 의 Flush 는 어떻게 안전 할수가 있나요?
유니티 특정 폴더의 mp3 파일들을 리스트로 보여주는 리스트 뷰 만드는 방법 궁금합니다. 안드로이드 디바이스 특정 폴더에 mp3파일이 여러 개 있는 경우에 전체 경로와 파일명을 같이 보여줄 수 있도록 하고싶은데 디바이스의 특정 폴더 접근과 리스트 뷰에서 프리팹을 어떻게 만드는지 몰라서 계속 막힙니다;;