나서스는 오늘도 스택을 쌓는다

나서스는 오늘도 스택을 쌓는다

  • clutchplay (247) N
    • 게임 (142) N
      • 개발 일지 (60)
      • 기획 (6)
      • 개발 (4)
      • 아트 (1)
      • Unity (27) N
      • Unreal (39)
      • 게임 분석 노트 (5)
    • CS (30)
      • 알고리즘 (19)
      • CS (11)
    • 백엔드 (45)
      • SQL (20)
      • MongoDB (1)
      • Spring (12)
      • 서버 (12)
    • Claude Code (3)
    • 토익 (15)
    • 기타 (12)
  • 홈
  • 태그
  • 방명록
로그인
로그아웃 글쓰기 관리

나서스는 오늘도 스택을 쌓는다

컨텐츠 검색

최근글

댓글

공지사항

아카이브

[Unity] AI 작업의 기본, TDD(Test-Driven Dev)

먼저 TDD가 무엇인지 간단하게 말씀드리면,TDD는 코드를 점검할 테스트 케이스를 먼저 만들고, 그 테스트를 통과할 수 있는 코드를 작성하며, 리펙토링하는 기법입니다. AI가 발전하면서 개발 속도가 빨라지고, 자동 생성되는 코드도 굉장히 많아졌는데요. 그럴수록 AI가 만드는 모든 코드를 읽는 것은 어렵겠죠. 그래서 우리는 Test Case를 만들어두고, AI가 작성한 코드가 그 Test를 통과함으로써 안전한 코드라고 믿을 수 있게끔 환경을 구축해주는 겁니다. TDD의 작업 흐름은 사진과 같습니다. AI를 사용하는 경우 이 과정을 AI가 진행하게 됩니다. 개념은 간단하지만 처음 보면 어떤 테스트를 만들어야할 지 막막할 수 있어요.그래서 아래의 예시를 참고해서 AI가 테스트를 만들도록 합니다. Unity에..

자세히보기
[Unity] Unity에서 AI 활용하기 (1)

(6.4ver) AI 활성화 시 Assistant(어시스턴트) 창 활성화 됨. 명령 방법- Assistant 창에서 프롬프트 작성> 영어 명령이유리함> 어시스턴트 탭에 결과물을 요약하고, 작업을 실행함. 가능한 작업 목록- 믹사모 캐릭터, 애니메이션 적용- new Input System 적용- NPC 제작- SOILD 원칙에 맞도록 리펙토링 어려운 작업- 캐릭터 모델 제작(비용 크고, 구림) 느낀점.AI로 코드 작성이 빨라짐.그러나 SOLID 원칙과 디자인 패턴을 코드은 한 번에 완벽하게 적용해주지 않기 때문에 AI 사용자도 이 설계 능력이 필요함. 이제 코드 작성 능력의 비중이 줄고 아래 능력들이 중요해졌다.- 기획- 효율적인 설계(SOLID, 디자인 패턴)- AI 활용- 마케팅 https://ww..

자세히보기
[Unity] SOILD 원칙 (1)

SOILD 원칙S: 하나의 클래스엔 하나의 책임(역할)만 부여 O: 기능 확장을 쉽게 하되, 기존 코드를 바꾸지 않아야 함 (Open - Close) L: 자식클래스(상속 받은 클래스)는 부모 클래스를 대체할 수 있어야 함.> 부모클래스가 할 수 있는 행위는 자식도 할 수 있어야 함.만약 자식클래스에서 부모클래스를 수정해야하는 상황이 생긴다면 수정하지 말고, Interface를 사용해보자.interface는 has, 상속은 is 개념 I: 인터페이스를 작은 단위로 나눠라.> 기능 단위로 나누자 D: 추상화가 세부 사항에 의존해서는 안됨. > 반대는 OK> 상위 개념은 하위 개념에 의존해선 안됨. 하위개념이 상위 개념에 의존해야함. 추상클래스(is) VS 인터페이스(has)추상클래스는 기본적으로 클..

자세히보기
게임 수학 강의 정리 (9)

반사 코드에서 벡터의 반사를 구할 때 Vector.Reflect(a,b)를 사용한다. 반사된 벡터를 구하는 공식은 아래와 같습니다. 평면으로의 사영 레이싱 게임을 하면 차가 벽에 비스듬하게 부딪혔을 때 튕겨나가지 않고 붙은 채로 나아가는 모습을 볼 수 있다. 이것이 어떻게 구현되는지 아래와 같다. 입사각과 법선벡터를 통해 튕겨나가는 방향이 결정되고, 공식도 확인할 수 있었다.

자세히보기
게임 수학 강의 정리 (8)

외적( cross product , Vector product ) 외적은 두 벡터 간의 연산이며, 새로운 벡터를 배출하고, 3차원 공간에서만 성립한다.외적의 결과물 벡터는 연산에 사용한 두 벡터와 모두 수직인 벡터이다. * 법선벡터(Normal Vector): 한 평면(선)에 수직인 벡터외적은 순서가 중요하다. 두 벡터의 외적은 각 좌표마다 연산하는데,C의 x좌표 = (ay*bz) - (az*by)이런식으로 교차하여 곱한다.(아래 사진 참조)외적은 순서가 중요하다. 외적의 크기는 두 벡터가 그리는 평행사변형의 너비와 같다.> 두 벡터가 이루는 각도가 0이거나 180이라면 평행사변형의 너비도 0이고, 외적도 0이 된다.> 90도(직각)에서 외적은 가장 크다. 이에 대한 공식이 있지만 게임 개발에선 자..

자세히보기

  • [Unity] AI 작업의 기본, TDD(Test-Driven Dev)

    먼저 TDD가 무엇인지 간단하게 말씀드리면,TDD는 코드를 점검할 테스트 케이스를 먼저 만들고, 그 테스트를 통과할 수 있는 코드를 작성하며, 리펙토링하는 기법입니다. AI가 발전하면서 개발 속도가 빨라지고, 자동 생성되는 코드도 굉장히 많아졌는데요. 그럴수록 AI가 만드는 모든 코드를 읽는 것은 어렵겠죠. 그래서 우리는 Test Case를 만들어두고, AI가 작성한 코드가 그 Test를 통과함으로써 안전한 코드라고 믿을 수 있게끔 환경을 구축해주는 겁니다. TDD의 작업 흐름은 사진과 같습니다. AI를 사용하는 경우 이 과정을 AI가 진행하게 됩니다. 개념은 간단하지만 처음 보면 어떤 테스트를 만들어야할 지 막막할 수 있어요.그래서 아래의 예시를 참고해서 AI가 테스트를 만들도록 합니다. Unity에..

  • [Unity] Unity에서 AI 활용하기 (1)

    (6.4ver) AI 활성화 시 Assistant(어시스턴트) 창 활성화 됨. 명령 방법- Assistant 창에서 프롬프트 작성> 영어 명령이유리함> 어시스턴트 탭에 결과물을 요약하고, 작업을 실행함. 가능한 작업 목록- 믹사모 캐릭터, 애니메이션 적용- new Input System 적용- NPC 제작- SOILD 원칙에 맞도록 리펙토링 어려운 작업- 캐릭터 모델 제작(비용 크고, 구림) 느낀점.AI로 코드 작성이 빨라짐.그러나 SOLID 원칙과 디자인 패턴을 코드은 한 번에 완벽하게 적용해주지 않기 때문에 AI 사용자도 이 설계 능력이 필요함. 이제 코드 작성 능력의 비중이 줄고 아래 능력들이 중요해졌다.- 기획- 효율적인 설계(SOLID, 디자인 패턴)- AI 활용- 마케팅 https://ww..

  • [Unity] SOILD 원칙 (1)

    SOILD 원칙S: 하나의 클래스엔 하나의 책임(역할)만 부여 O: 기능 확장을 쉽게 하되, 기존 코드를 바꾸지 않아야 함 (Open - Close) L: 자식클래스(상속 받은 클래스)는 부모 클래스를 대체할 수 있어야 함.> 부모클래스가 할 수 있는 행위는 자식도 할 수 있어야 함.만약 자식클래스에서 부모클래스를 수정해야하는 상황이 생긴다면 수정하지 말고, Interface를 사용해보자.interface는 has, 상속은 is 개념 I: 인터페이스를 작은 단위로 나눠라.> 기능 단위로 나누자 D: 추상화가 세부 사항에 의존해서는 안됨. > 반대는 OK> 상위 개념은 하위 개념에 의존해선 안됨. 하위개념이 상위 개념에 의존해야함. 추상클래스(is) VS 인터페이스(has)추상클래스는 기본적으로 클..

  • 게임 수학 강의 정리 (9)

    반사 코드에서 벡터의 반사를 구할 때 Vector.Reflect(a,b)를 사용한다. 반사된 벡터를 구하는 공식은 아래와 같습니다. 평면으로의 사영 레이싱 게임을 하면 차가 벽에 비스듬하게 부딪혔을 때 튕겨나가지 않고 붙은 채로 나아가는 모습을 볼 수 있다. 이것이 어떻게 구현되는지 아래와 같다. 입사각과 법선벡터를 통해 튕겨나가는 방향이 결정되고, 공식도 확인할 수 있었다.

  • 게임 수학 강의 정리 (8)

    외적( cross product , Vector product ) 외적은 두 벡터 간의 연산이며, 새로운 벡터를 배출하고, 3차원 공간에서만 성립한다.외적의 결과물 벡터는 연산에 사용한 두 벡터와 모두 수직인 벡터이다. * 법선벡터(Normal Vector): 한 평면(선)에 수직인 벡터외적은 순서가 중요하다. 두 벡터의 외적은 각 좌표마다 연산하는데,C의 x좌표 = (ay*bz) - (az*by)이런식으로 교차하여 곱한다.(아래 사진 참조)외적은 순서가 중요하다. 외적의 크기는 두 벡터가 그리는 평행사변형의 너비와 같다.> 두 벡터가 이루는 각도가 0이거나 180이라면 평행사변형의 너비도 0이고, 외적도 0이 된다.> 90도(직각)에서 외적은 가장 크다. 이에 대한 공식이 있지만 게임 개발에선 자..

  • 게임 수학 강의 정리 (7)

    벡터의 정규화 = 벡터의 방향을 유지한 채 크기가 1인 단위 벡터로 바꾸는 작업ㄴ 벡터를 크기로 나눈다. > Vector.Normalize(v) 영백터는 벡터의 크기가 없다는 뜻이다.ㄴ 속도가 0인 경우 Vector.zero 내적(Dot Product): 벡터간의 곱 내적을 구할 때 두 벡터의 방향이 다르다면, 단위벡터를 곱하거나 cos연산으로 해당 방향의 성분을 구할 수 있다. 그 결과 아래 공식이 도출 된다. 두 벡터의 내적은 각 벡터의 크기와 cos각도의 곱이다. 위 공식의 변형으로 각도(세타)를 구할 수 있다. 게임에서 적용 예시- 플레이어의 위치 좌표, 바라보는 방향, 적의 위치, 시야각을 알 때 플레이어의 시야에 적이 들어와 있는지 알 수 있는가?> 마지막 공식인 각도(세타)를 구하여 계..

  • 게임 수학 강의 정리 (6)

    벡터의 크기를 구할 때에도 점과 점 사이의 거리 공식을 적용할 수 있다. Unity 는 왼손 좌표계를 사용한다.왼손으로 좌표계를 만들고, 엄지부터 x y z 순이다. blender같은 툴은 오른손 좌표계를 사용해서 이를 그대로 사용하면 혼동이 있을 수 있다.> 좌표의 축 순서를 바꾸거나 부호를 바꾸며 해결하는건 오류를 발생시킬 확률이 높다. 벡터의 합은 각 성분의 합으로 계산한다. 벡터에 스칼라를 곱한다는 것은 각 성분에 스칼라를 곱한다는 뜻이다.ㄴ 속도 등 계산에 사용

  • [Unity] Raycast 오류 해결

    1. ray는 콜라이더를 감지하기 때문에 대상 오브젝트는 반드시 콜라이더 컴포넌트를 갖고있어야 합니다.2. 코드에서 Physics.Raycast 로 호출하는 매개변수 경우의 수가 16가지나 되기 때문에 올바르게 사용하고 있는지 확인해본다.주로 사용하는 매개변수 5가지는 아래와 같습니다. 1)시작위치와 방향을 갖는 rayㄴ Ray ray = new Ray(origin, dir);Physics.Raycast(ray) 2) RaycastHit 를 매개변수로 받고 Ray에 대한 정보를 RaycastHit에 반환하는 Rayㄴ Physics.Raycast(ray, out rayhit)3) Ray의 길이를 설정하는 distance 변수ㄴ Physics.Raycast(ray, out rayhit, distance)..

티스토리
© 2018 TISTORY. All rights reserved.

티스토리툴바