안녕하세요, 강의 내용에 없는 것일 수도 있는데 오랫동안 궁금하던 것이라 여쭤봅니다. 쓰고 보니 글이 너무 길어져서 죄송하네요. 그동안 유니티에서 Humanoid animation 을 적용했을 때 부자연스러운 현상이 좀 있었습니다. 1. Humanoid rig 적용된 캐릭터에 Humanoid animation 을 실행시켜보면 Body poking(옷 위로 몸체가 삐져나오는 현상) 을 자주 보게 되는데요, 해결 방법이 있을까요? 제가 강의를 들으면서 생각해 본건, - body와 cloth에 mesh collider를 붙인다. 근데 속도가 엄청 느려질 것 같고, 만들 수 있는 layer의 개수에는 한계가 있는데 캐릭터가 많아지면 어떡하나 싶네요ㅠ - 그리고 오래 전에 어떤 글을 본 것 같은데 cloth에도 body와 동일한 bone 구조를 줘서 body의 움직임을 그대로 따라가게 한다는 것이었나? 그런 방법도 있던 것 같습니다.. 2. 비슷한 문제일 수 있는데 Humanoid animation 실행 중에 특정 프레임에서 발의 일부가 바닥 아래로 빠지는 현상도 있더라구요. 3. 캐릭터가 무기를 잡거나 휘두를 때에도 해당 캐릭터와 같이 제공된 애니메이션이 아니라, 별도 애니메이션 팩에 있는 걸 쓰게되면 무기를 붙잡는게 좀 자연스럽지 않아보였습니다. 찾아보니 2와 3은 해결하려면 IK(Inverse Kinematic) 라는걸 써야 하는 것 같던데 감이 잘 안 오네요..ㅠ 4. 마지막으로, 유니티 강의 게시판에서 언리얼 얘기를 꺼내서 정말 죄송하지만, (언리얼 강의도 내실테니 양해 부탁드려요~) cgtrader 에서 rigging된 캐릭터 에셋들을 검색해서 보면 언리얼의 경우는 epic skeleton이라는 걸 적용하더라구요. 그리고 그런 에셋들은 (epic 적용된) 언리얼 패키지와 (humanoid rig 적용된) 유니티 패키지를 같이 제공하는 경우가 많습니다. 하지만 애니메이션 실행 데모 영상은 항상 언리얼 쪽만 올려놓던데 언리얼에서는 이러한 Body poking 현상이 거의 나오지 않아서 그런 것인지도 궁금하네요. 언리얼 데모 영상에서는 poking 을 본적이 거의 없습니다. 감사합니다.
혹시 저와 같은 문제를 겪으실 분들을 위해 제가 잠깐동안 삽질한 경험을 남깁니다. 강의를 쭉 듣던 도중에 로그를 찍는데 item.getOpen()이 안되는 상황을 겪었습니다. 그런데 item.setOpen()은 됐거든요. 찾아보니까 문제는 Item 클래스에서 open을 primitive타입인 boolean으로 선언했기 때문이었습니다. 롬복으로 게터세터를 적용할 경우 primitive boolean의 게터명명규칙이 getSomething이 아니라 isSomething입니다. 따라서 item.isOpen()을 입력해야 에러가 없습니다. 그럼 어떻게 영한님은 isOpen이 아니라 getOpen이 되었는가? 다시 잘 살펴보니 boolean이 아니라 참조형인 Boolean을 사용하셨습니다....ㅜ null값 때문인 것 같습니다. 참조형이니까 롬복이 getOpen을 생성합니다. 생각없이 따라치다가 이런 일을 겪네요. 집중해서 열심히 듣겠습니다. 혹시 이 글을 보게된 여러분 화이팅..
안녕하세요 JPA 활용 1편을보고 넘어왔습니다.. 1)질문 그렇나 현재 아직 이해못한점이 연관관계 편의메서드를 사용하면 어느면서에서 이점이 발생하는지 잘모르겠습니다.. 양방향관계시 연관관계메서드 에서 public void setTeam (Team team){ this . team = team ; team.getMembers().add( this ) ; } team.getMembers().add(this); 이부분이 team 엔티티에서도 Member의 값을 가질수있도록 하는것으로 보여집니다만 team.getMembers().add(this); 이부분이없어도 Team team = em.find(Team.class, teamA.getId()); System.out.println("연관관계"+team.getMembers()); team.getMembers() 를해도 값이 잘 보여집니다.. 어느면에서 편의가 발생하는지 감이잘 안잡힙니다 ㅠ.. 2)질문 일대 다 관계에서 페치조인 쿼리로 페이징을하면 데이터 뻥튀기 때문에 위험하다고 하셨습니다. 그래서 직접 확인을해보고있는데욥 Team teamA = new Team(); teamA.setName("팀A"); em.persist(teamA); Member member1 = new Member(); member1.setUsername("회원1"); member1.setAge(10); member1.setTeam(teamA); em.persist(member1); Member member7 = new Member(); member7.setUsername("회원7"); member7.setAge(10); member7.setTeam(teamA); em.persist(member7); String query = "select t from Team t join fetch t.members"; List<Team> result = em.createQuery(query,Team.class) .setFirstResult(0) .setMaxResults(1) .getResultList(); for (Team team : result) { System.out.println("팀이름 = " + team.getName()); for (Member member : team.getMembers()){ System.out.println("------------> member = " + member); } } 결과 딱이렇게 나왔는데 이것이 뻥튀기가 된결과인가요? 어느부분에서 위험한것인지 잘 모르겠습니다 .. (제생각으로는 0번인덱스 페이지에 팀의값 1개가 잘 출력됫다고 생각되거든요 아니라면 팀에 맴버의 값을 1개만 출력해야하는데 두개가 출력이되어서 문제인건가요?)
우선 Read_Lock에서 락을 얻는 일련의 과정은 다음과 같이 이해했습니다. 1. 동일한 쓰레드에서 ReadLock을 다시 호출 하면 ReadCount를 증가시키고 빠진다. 2. _LockFlag를 가져와서 READ_COUNT_MASK와 & 연산 후 나온 ReadCount값이 현재 들고 있는 _LockFlag와 같으면 ReadCount를 1증가시키고 나간다. 2번에서 통과하지 않고 반복하는 부분은 2가지가 있고, 1) 다른 쓰레드에서 WriteLock을 통해 WriteLock을 잡게 되면 _LockFlag 상위 16비트에 쓰레드 아이디가 들어가기때문에 통과되지 않는 것 2) 다른 쓰레드에서 ReadLock을 먼저 잡아서 2번을 수행하려고 할때 Expected값의 ReadCount와 _LockFlag의 ReadCount가 달라서 통과되지 않는 것 제가 이해가 잘 되지 않는 부분이 40 : 10분쯤에 경합하지 않고 ReadCount만 올려서 서로 통과시켜준다는 부분입니다. 2) 을 다시한번 확인해서 보니까 Expected값의 ReadCount와 _LockFlag의 ReadCount가 다르면 다시 읽어들이는데 또 다시 다른 쓰레드에서 ReadLock을 먼저 잡고, 극악으로 이와같은 상황이 반복되면 결국 경합이 생기는거 같은데 제가 이해를 잘못하고 있는건가요? ㅠㅠ
for (int i = 0; str[i] != '\0'; i++) { if (str[i] == '(') s.push(str[i]); else if (str[i] == ')') { try { s.pop(); } catch (exception e) { printf("NO\n"); return 0; } } } if (s.empty()) printf("YES\n"); else printf("NO\n"); ========================================== 저는 (())) 와 같은 상황에서 맨 마지막에 )일때 예외 처리를 해주어서 프로그램을 종료시킬려고 했습니다. 하지만, 이상하게 pop했을때 오류가 발생했음에도 불구하고 catch 로 넘어가지 않았습니다. 혹시 그 이유에 대해서 알 수 있을까요?
정규표현식 사용에 있어서 질문 드립니다. 현재 url을 작성하면 링크로 변환되어서 그 사이트로 이동할 수 있게 하고 싶은데 링크로 변환이 되지 않습니다... url을 링크로 변환하는 코드는 이거고 이렇게 PostCardContent의 해시태그로 변환하는 코드 밑에 배치했습니다. 이렇게 해시태그는 변환이 되지만 url은 변환이 되지않습니다... 어느부분을 고쳐야 할까요... 정규식이 잘못된 걸까요...
저는 맨땅에 헤딩식으로 유니티, C#을 배우고 게임을 만들다보면 주요 코드들은 깃이나 스택오버플로에서 가져와서 코드를 해석하여 저 입맛대로 코드를 수정하고 필요한것을 제작하여 게임을 주로 제작했는데 이런식으로 계속 해도될지 걱정이 되서 질문드립니다. 실무에서는 어떻게 코드를 짜시나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 아이패드로 어도비 애니메이트 실행 가능한가요?? 아니면 터치 노트북을 사야되나요??... 안드로이드 모바일은 어도비 애니 지원 안하는것같던데..