[Unreal] AnimNotify 애님 노티파이 시스템.

이미지
이전 언리얼에 이어서 , Notify 에 관련된 얘기를 조금 하겠습니다 . AnimNotify 란 , 일종의 콜백으로 해당 함수를 특정 타이밍에 연결하여 호출할 수 있도록 하는 일종의 델리게이트 ( 대리자 ) 라고 보시면 됩니다 . 적어도 언리얼 내부에선 이렇게 얘기해요 . 언리얼은 애니메이션 , 혹은 몽타주에서도 이런 콜백을 지원하고 있습니다 . 그래 서 AnimNotify죠.   주로는 애니메이션 몽타주 쪽에서 사용하는걸로 알고있지만 , 개별 행위에 스테이트를 넣을땐 애니메이션 시퀸스 등에 직접 넣을 수 있습니다 . 애니메이션 시퀸스에서 넣는걸로 해보죠 .  애니메이션 시퀸스 입니다 . 에셋 브라우저에서 선택한 상태로 있습니다 . 여기서 몽타주나 블렌드 스페이스 등 다른 항목을 조절할 수 도 있습니다만 , 애니메이션 시퀸스를 더블 클릭하면 기본으로 나오는 창이니 이걸로 해보겠습니다 . 아래쪽에 노티파이 라는 부분이 있는데 , 이 부분이 AnimNotify 를 직접 입력할 수 있는 위치입니다 . 원하는 애니메이션 위치에서 오른쪽 클릭을 사용하면 위와 같이 노티파이 추가를 할 수 있는 창이 뜹니다 . 이곳에서 노티파이 추가 항목을 자세히 보면 각종 노티파이를 넣을 수 있도록 되있습니다 . 맨 위가 커스텀 애님노티파이 , 중간이 네이티브 노티파이 ( 언리얼 엔진이 기본으로 가지고 있습니다 .), 그리고 아래에 노티파이 추가가 있습니다 . 아래에는 노티파이 스테이트 추가가 있는데 , 노티파이 스테이트는 일정 시간동안 지속적으로 해당 행위를 할 수 있도록 만들어진 노티파이입니다 .  앞의 그림이 노티파이 , 뒤의 그림이 노티파이 스테이트입니다 . 조금 다르게 생겼죠 . 애니메이션 프리뷰에서 해당 노티가 지나갈 때마다 노티에 등록한 함수들을 실행시킬 수 있게 되어있습니다 . 이제 , 새 노티파이를 추가했을때 해당 파일을 찾아가보죠 .  

[Unity] MySurvivalDay - 데이터 직렬화, 인스펙터에 표시되는 클래스, 구조체.

이미지
아는 기획 취직 희망 자가 프로젝트 제작해서 포트폴리오로 사용하고 싶어해서 조금 도와주고 있는 프로젝트 입니다. 데이터는 Serializable 로 선언을 했는데, 이는 C#에서 직렬화를 뜻하는 내용이지만, 저의 경우엔 Inspector에 인자로 보여주고 싶은 Class나 Struct를 사용할때 자주 쓰게 됩니다. StoryData도 직렬화 한 데이터로, 인자들을 직접 입력할 때 데이터 모음 형태로 할 수 있어서 편하게 사용하는 기능 중 하나입니다. 데이터 클래스를 짜고 싶었으나, 기획서의 개념간에 대해서 서로 얘기가 달라지는 부분이 많아서 제대로 쓰지 못하는 시간이 길어지네요. 또한, 이 구현에 대해서 기획자의 생각과 프로그래머의 생각이 항상 달라지니 이걸 표현할때 생각하지도 못한 부분에서 막히는 부분도 생깁니다. 적당히 뚜드려패서 합의점을 찾고, 거기에 대해서 만들어야 되는데, 시간이 자꾸 부족하네요. 언제 또 코드에 손을 댈 수 있을지 알 수 없네요 ㅠ

[Unity2018.3.0f2] 코루틴 - 유니티에서 While문 멈추지 않고 돌리기.

이미지
별거 아닌 얘기긴 한데, 한창 유니티 배우던 때, While문으로 내부에서 돌리고 싶은데 쓰면 거의 반드시 멈추기 때문에 골치아팠던 때가 있습니다. Update에서 주로 돌렸는데, 업데이트에서 while문을 돌리게 되면, 대충 잡아서 몇만회 이상 돌아가기 시작하면 Update에서 뻗어버리는 문제가 있었죠. 그 때 가장 흔하게 쓰던 방법으로 Coroutine 시스템이 있습니다. While은 코드의 컨트롤을 넘기지 않고 자기 자신이 끝날때까지 모든 일을 중단하고 잡고 있기 때문에 코드 중간에 넣어서 사용하기 시작하면 그 일을 끝날때까지 모든 코드의 일이 멈춰버리기 때문에, 부하가 심하게 걸리는 작업에 들어가버리면 가끔 멈춰버리기도 합니다. 1 2 3 4 5 6 7 void  Start()  // Unity Stop! {      while ( true )     {         Debug.Log( "Hello, World!" );     } } Colored by Color Scripter cs 그럴때 멈추지 않고 사용하기 위해서 특정 행위가 종료된 후 컨트롤을 다시 넘겨주고, 다시 돌아왔을때 해당 작업을 진행할 수 있도록 하는 내용입니다. 다음은 0.2초마다 1씩 더한 내용을 출력하는 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13      void  Start()     {         StartCoroutine(IncreaseCoroutine());     }         IEnumerator IncreaseCoroutine()     {          while ( true )         {             increaseInt + + ;             Debug.Log(increaseInt);

[Unreal 4.20] 애니메이션 블루프린트에 캐릭터 가져오기.

이미지
  블루프린트 애니메이션은 메인 애님그래프에 State Machine 을 이용해서 상태에 따라 다른 애니메이션을 재생해 주는 등 여러가지 기능을 제공합니다만 , 으레 그렇듯이 구조가 익숙하지 않은 사람에겐 이 상태를 업데이트할 부분을 찾는게 곤란해지기도 합니다 .( 이 글을 작성하기 바로 직전의 저처럼요 .) 그런고로 , 간단하게 애니메이션을 데려와서 상태별로 애니메이션이 변경하는 소스를 일부 발췌하여 올립니다 . 애니메이션 블루프린트 탭을 가면 볼 수 있는 애님 그래프 구조 . 스테이트 머신은 스테이트 머신 새로 추가로 넣을 수 있습니다 . 해당 스테이트 머신을 더블 클릭해서 들어가면    이런 황량한 핀이 나오는데 ,   스테이트 추가로 상태를 추가할 수 있습니다 . 만들어진 스테이트 Entry 를 해당 스테이트를 연결해 시작점을 만들어주고 ,    다른 스테이트를 추가해 연결해줌으로서 스테이트간 이동을 만들어 줄 수 있게 됩니다 .   테스트로 구성한 스테이트 . 해당 테스트 스테이트들은 각자의 스테이트가 애니메이션을 가지고 있을 수 있으며 , 조금 복잡한 몽타주도 가질 수 있는걸로 알지만 , 저는 기본 애니메이션만 넣었습니다 . 해당 테스트 스테이트들을 잇는 선 옆에 서로의 상태를 변경하는 bool 을 구하는 Can Enter Transition 이 있는데 , 해당 아이콘을 더블 클릭하면 ,    상태를 전환할 수 있는 내용을 그래프로 만들 수 있습니다 . 하지만 , 정작 Character 를 안가져 왔네요 .   간단히 사용할 CharacterTest 입니다 . 컨트롤러로 Possess 했을때 bPress 변수가 바뀌도록 세팅해뒀습니다 .   사용할 스켈레톤 정보와 애니메이션 클래스를 가져왔습니다 .

(웹서버) 우분투 마테 아파치 웹서버 설치

마테 터미널 실행. $ sudo apt - get install php $ sudo apt - get install apache2 $ sudo apt - get install mariadb - server   웹서버 필요 앱(php. apache2, mariadb-server) 설치.       apache2 - v $ sudo apt - get install libapache2 - mod - php7 . 0 $ php - v   아파치 및 php 연동 패키지 설치 후 확인.   sudo mysql > SET PASSWORD FOR root @ localhost = PASSWORD ( '원하는 패스워드 입력' ) ; > quit ;   마리아DB 접속 후 패스워드 입력.   sudo user/bin/mysql_secure_installation   마리아DB 보안설정. 맨처음 나오는 패스워드 입력후 나오는 패스워드 변경만 n, 나머지는 엔터.  $ sudo mysql > USER mysql ; > UPDATE USER SET plugin = '' WHERE user = 'root' ; > FLUSH privileges ; > quit ;   관리자 권한일때 비밀번호 입력 없이도 들어가지는 부분 수정. 1 2 $ sudo mysql - u root - p 자신이 설정한 패스워드   로그인 시도 테스트.   $ sudo apt - get install php - mysql   php 마리아DB연동 테스트. $ sudo adduser webuser $ cd ~ webuser $ sudo mkdir www $ sudo nano www / i