example


Richard Dawkins - Biomorphs

https://www.youtube.com/watch?v=wQVPPTGubEk&feature=youtu.be&fbclid=IwAR23kJ9vyD9-N4ddhmS5rd8NAWyx7luiMXFgQS8Vq0ud-15iBmBP2-YE23I


https://www.youtube.com/watch?v=jAy9TIp3qH4&feature=youtu.be&fbclid=IwAR1FX9Gkn2uSIlctJ_42TzkoUhCfRUVBbcbXybmL8jD6b3m7NFZXPBiY1b8



Karl Sims - Evolved Virtual Creatures

https://www.youtube.com/watch?v=JBgG_VSP7f8



Tutorial


Genetic Algorithm Concept

https://medium.com/@venkateshtata9/an-introduction-to-evolutionary-algorithms-and-code-part-1-theory-behind-genetic-algorithm-df75af08d5d6


Evolutionary Computation

https://www.alanzucconi.com/2016/04/06/evolutionary-coputation-1/


Unity Genetic Algorithm tutorial 

https://www.youtube.com/watch?v=HHRPDkgItjE&list=PLAp0ZhYvW6XascsaB0F-aYSPykSs2QUTk


Daniel Shiffman genetic Algorithm 

https://www.youtube.com/watch?v=9zfeTw-uFCw&list=PLRqwX-V7Uu6bJM3VgzjNV5YxVxUwzALHV  ( 10)


https://www.youtube.com/watch?v=DIXtg5VVz2E&t=0s&list=PLI73C1zJus3RSwGG23RXBFualKHpEra6K&index=20 (3시간)


Algorithm tutorial

https://www.youtube.com/watch?v=QlzfC5eZvDg&list=PLRsPe93DnzPNUBLjyGofVFAjdFWVcmt_z&index=1







Posted by 도이(doi)
,

http://rapapa.net/?p=2974


http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_Lecture_series&no=126&z=

Posted by 도이(doi)
,

우선, 아래 링크에서 unity package를 받아와서 unity와 kinect를 연동한다.

https://developer.microsoft.com/en-us/windows/kinect


아래 링크의 튜토리얼을 따라오면 kinect의 input값을 가져올 수 있다. 

https://blogs.msdn.microsoft.com/kinectforwindows/2015/09/25/gesture-control-in-unity-via-kinect-for-windows/



끄읕...



Posted by 도이(doi)
,

코드 타입 확인(정의로 이동)

 

kinect의 position값을 받아올려고 하였는데. 

Vector3 type이 아니었다. 

1
var pos = body.Joints[Trackedjoint].Position;
cs

Position에 마우스 커서를 갔다대면 CameraSpacePoint라는 알 수 없는 변수형이 뜬다. ^^;;

어떤 타입으로 받아와야 될지 몰라서 선생님께 질문하였다...

 

이럴 경우 파고들어가고 싶은 코드에 블록처리를 하고 우클릭을 누르고 

'정의로 이동(window-f12/ mac - command + D)' 을 선택하면, 코드 내에 내장된 코드들이 나온다.

 

CameraSpacePoint의 타입은 들어가보니, struct구조로

Vector값을 float형으로 X,Y,Z로 가져오고 있었다.

1
2
3
4
5
public struct CameraSpacePoint
    {
        public float X { get; set; }
        public float Y { get; set; }
        public float Z { get; set; }
cs

 

pos값을 가져오기 위해서 새로운 벡터를 만들고

CameraSpacePoint의 내부에 있는 X, Y, Z값을 가져왔다.

1
2
3
var pos = body.Joints[Trackedjoint].Position;
 
                Vector3 movePos = new Vector3(pos.X, pos.Y, pos.Z);
cs


 

structure과 class의 차이


둘 다 변수와 함수의 집합이다. 

차이는 저장 위치이다. 


structure - 스택에 저장 ex) rayCast.hit

class - 힙에 저장


*스택 : 함수 호출시 생성, 호출 완료되면 사라짐.(임시할당) 

지역변수 매개변수 저장되는 영역.

LIFO(last in first out) - 마지막에 입력된 자료를 가장 먼저 삭제함.

 

*힙 : 할당할 메모리의 크기를 런타임에 정함. (동적할당) 

호출이 끝나도 사라지지 않음.(가비지 컬렉터로 지워야함.) 

static, 전역변수가 저장되는 영역.

FIFO(first in first out) - 가장 먼저 들어간 데이터를 먼저 삭제함.

/-------------------------/  메모리상에서
|                         |       높은 구역
|         Stack           |
|                         |
/-------------------------/
|                         |
|          Heap           |
|                         |
/-------------------------/
|   Uninitialized data    |
| ---------Data---------- |
|    Initialized data     | 
/-------------------------/
|                         |
|          Text           | 
|                         |  메모리상에서
/-------------------------/       낮은 구역

[참고] 

https://m.blog.naver.com/PostView.nhn?blogId=codingspecialist&logNo=221195242403&proxyReferer=https%3A%2F%2Fwww.google.com%2F

http://dsnight.tistory.com/50

https://kldp.org/node/199

 

 

 

보간

 

tracking하는데 position에 multiplier를 적용해서 끊김현상이 심하게 일어나서 보간을 해주었다.

보간 코드는 아래와 같다.

1
transform.position = Vector3.Lerp(transform.position, movePos * multiplier, Time.deltaTime * 10.0f);
cs

 

multiplier는 이동해야될 목적지 코드에 곱해주면 된다.

이후에 곱하면 보간이 잘 작동하지 않더라...

Posted by 도이(doi)
,