728x90
반응형

Game Development, 게임개발 182

Time.deltaTime의 의미 [Unity]

유니티에서 왜 시간을 안쓰고 deltaTime을 쓰는지? 궁금해 하는 사람이 있을 것 같다. 아니라고? 궁금해할 것이다. 아니면 어차피 이 글을 안봤을테니 ++사실 Time엔 종류가 무지하게 많다. 그건 나중에 정리할 생각이다. 정식으로 소개한다. public static float deltaTime ++ float 형식을 가지고 있다. The completion time in seconds since the last frame ->??? 무슨 말이지?? 정확하게 말하자면 This property provides the time between the current and previous frame 이전프레임과 현재프레임 간의 차이 (delta)를 뜻한다. ? 그래서 몇초인데? FPS가 60이라면 1초당 ..

Collider에 대한 모든 것(기본) [Unity]

이번 글에서는 Collider의 종류와 쓰임 보다는 Collider가 무슨 역할을 하며 왜 필요한지.. 어떤 property를 가지고 있는지를 알아볼 것이다. 도대체 무엇인가? ++Unity.Engine 클래스에 포함되어 있다. RigidBody가 나온다면 항상 따라오는 것이 있다. 바로 Collider다 ++영어단어 뜻이 Collide with, 으로 많이 쓰이듯이 "충돌"을 의미한다. 즉, 충돌에 대해, 접촉에 대해, 모든 것을 관리한다고 볼 수 있다. 다시 말해서 물리적인 상호작용에 관여한다고 보면 된다. 어떤 속성을 가지고 있는데?? 그냥 충돌하면 그게 끝 아니야?? 사실 우리가 당연하게 여기는 모든 행동 안에는 물리적인 법칙이 끊임없이 적용되고 있다. 유니티는 조금이라도 자연스럽게 만들고자 여러..

용어 정리

Real-Time (실시간) how quickly an image is rendered (or displayed) on the screen. 얼마나 이미지들이 실제로 보는 화면(스크린)에 빨리 반영되느냐? 를 말한다. 스타크래프트 같이 RTS라는 실시간 전략 시뮬레이션 게임 장르가 있다. 얘는 우리가 우클릭만 하면 유닛들이 바로바로 움직여서 화면에 움직이는 것을 알 수 있다. 그렇다면 개발자 입장에서 실시간은 무엇이냐? 게임을 업데이트할 때 업데이트에 이상이 있거나 잘 작동하는지 알아보려면 우리는 실행시켜서 확인을 해봐야 한다. 하지만 그 작업을 맨날 처음부터 우리가 수정했던 부분까지 확인하려면 시간이 정말 오래걸린다. (실제로 지금도 그렇게 하고는 있지만 컴퓨터 속도가 빨라졌다.) 그렇게 빨라져서 수정..

AddForce에 대한 모든 것(+RelativeForce) [Unity]

Rigidbody에서 엄청 많이 쓰이는 AddForce를 알아보자 어떠한 form을 가지고 있냐? 2가지 형태가 있다. 하지만 비슷한 메커니즘을 가진다. public void AddForce(Vector3 force, ForceMode mode = ForceMode.Force); public void AddForce(float x, float y, float z, ForceMode mode = ForceMode.Force); 쉽게 말하면 AddForce(방향*힘 값, 힘의 종류) 라고 보면 된다. 무엇을 하는 메서드냐? 말 그대로 AddForce다. Rigidbody에게 힘을 전달해준다. (하지만 모든 Rigidbody가 아닌 Active 상태일 때만 전달된다.) **이러한 Force calculatio..

행렬, Matrix - 2, 가우스 요르단 소거법, 역행렬, 행렬식, Determinant [게임수학]

지난 번에는 연립 1차 방정식을 어떻게 행렬로 푸는지를 알아봤다. 하지만.. 연립 일차 방정식을 구하는 데 그치지 않았으니 역행렬까지 건드려버린 것이었다. ** 역행렬은 왜 정방행렬(정사각행렬) 밖에 없어요?? 라고 할 수 있다. 따지고 역으로 역행렬이 있는 행렬들을 보면 교환이 가능하다. 근데 만약 정방행렬이 아니라면 교환을 해도 과연.. 연산이 가능할까? 를 생각해보자. 가우스-요르단 소거법을 역행렬을 구하는 데 사용했다는 것인데 우선 주어진 행렬과 같은 크기의 항등행렬을 붙여서 확대 행렬을 만들고 원래 주어진 행렬을 기본 행 연산을 사용해서 기약 행 사다리꼴 형,으로 만든다. 이 과정에서 원래의 항등행렬의 성분들도 똑같은 기본 행 연산들에 의해 바뀌게 되는데 그것이 바로 주어진 행렬의 역행렬이 된다..

행렬, Matrix - 1, 연립1차방정식, 가우스 소거법 [게임수학]

라떼는.. 수1이라는 고교과정에서 배웠는데.. ㅋㅋㅋㅋ 지금은 없어졌다 하대? 아무튼 어차피 그 행렬은 행렬도 아니었다. 왜 벡터 이후에 행렬을 공부하냐? 벡터가 행렬에 적용되는 것을 보면 그런 말 안나온다. 다시 백지부터 시작해보자 행렬은 row, column 으로 이루어져 있고 가로 세로로 나누어져 있다. **무엇이 가로이고 세로인지 모를 땐 (가로 횡) 한자를 기억하자. 가로가 행, column 이다. 세로가 렬, row 이고 기본적으로 행렬은 연립 1차 방정식을 풀기 위해 나타낸 개념이다. 실제로 우리가 2차 행렬을 배울 때만해도 이게 다인 줄 알았다. 그렇게 행렬은 이어져 내려오다가 어떤 수학자에 의해 선형 변환들의 조합을 연구하다 행렬 곱셈의 정의를 이끌어 냈다고 한다. 그래서 벡터와 선형 변..

C#, Unity에서의 접근제한자,Access modifier [Unity]

물론 C#을 이용하는 사람이 모두 Unity를 쓰는 것은 아니겠지만.. 난 Unity를 기준으로 설명하겠다. 어차피 C#도 똑같다. 종류는 4가지가 있다. private 클래스 내부에서만 접근이 가능. 즉, 동일 클래스나 구조체 내의 멤버만 접근 가능하다. public 모든 곳에서 해당 멤버로 접근이 가능. 여기서 말하는 모든 곳은 inherit class를 포함한 정말 모든 외부를 말한다. internal 같은 어셈블리에서만 접근이 가능. protected 클래스 외부에서 접근할 수 없으나 파생 클래스에서는 접근이 가능. public + private이라고 보면 된다. 약간 mixed 되어 있다. ++ protected internal( 결합) 같은 어셈블리에서만 protected으로 접근이 가능. 근..

테스트와 피드백(User Testing & Feedback) 이 필요한 이유 [게임 개발]

우리는 테스트와 피드백이 필요한 것을 알지만 무엇을 위해서 필요한지는 정확히 모를 때가 있다. 그래서 알아보려고 한다. 우선 User Testing이 무엇을 위한 것일까? The purpose of user testing is to gather qualitative and quantitative information about how well your design and its current implementation is meeting the user needs that the experience is designed to address. 우리가 만든 게임에 대해서 양적, 질적으로 우수한 정보를 취합해서 그에 대한 유저들의 니즈를 반영하기 위함. User testing isn’t a once-and-d..

벡터(Vector) - 3(외적, Cross product) [게임수학]

이번에는 외적에 대해서 조금 알아보려고 한다. 내적이랑 비슷하겠지 생각하면 정답 다를 거 없다. 알아보자 ** Outer Product라고도 부르는데 이는 벡터곱이 아닌 텐서곱을 의미한다. 결과값이 행렬로 나온다. 벡터의 외적은 두 벡터를 가지고 다른 벡터를 만드는 연산이다. 다만 그 벡터가 두 벡터에 대해 수직인 벡터일 뿐... 아래 그림이 바로 외적 그림이다. u가 v,w가 만드는 평면에 대한 법선벡터가 되는 것이다. ** 법선벡터 2개 아닌가요? 위 아래 2개? 라고 할 수 있다. 맞다!! 2개가 나온다.. 그래서 외적이 교환법칙이 성립하지 않는 이유다. 곱하는 순서에 따라 벡터의 방향이 반대로 나와서 그렇다. 왼손 좌표계를 쓸 것이냐 아니면 오른손 좌표계를 쓸 것이냐? 에 따라 달라진다. 3D 그..

벡터(Vector) - 2(내적, Dot product, Inner product) [게임수학]

벡터를 이어서 공부할 건데 내적을 공부해 볼 생각이다. 하지만 주제가 게임 수학이니만큼... 어디에다 쓰일 수 있을지 생각해보면서 배워보자 단순히 벡터 내적이 무슨 뜻인지 부터 알아보자 영어로는, Dot Product, Inner Product라고 한다. 보통 내적은 벡터의 방향이 얼마나 일치하는 지의 용도로 쓰인다. -> 벡터 간의 유사도로 쓰이는 경향이 있음 그래서 내가.. NLP할 때 유사도를 많이 사용했지 ㅎ 만약 해당되는 2개의 벡터가 크기가 1이라면 벡터 사이각에 대한 cos 값을 얻을 수도 있다. 또한 벡터의 성분으로도 내적을 구할 수 있다. **또한 자기 자신과 내적을 할 경우에는 자신의 크기 제곱을 구할 수 있다. -> 실제 프로그래밍에서는 벡터의 길이보다 길이의 제곱을 사용하는 경우가 ..

728x90
반응형