[Unity] 작업노트 - Playmaker 연습하기 3, 변수의 응용 - 환쟁이님 강좌

환쟁이(slee16) 강좌 따라 연습하기 계속
플레이메이커 기초 4 - 변수의 응용


-Find Game Object : 이름 또는 Tag 지정하여 오브젝트를 찾고 변수에 저장
-Move Towards : 타겟을 향해 오브젝트를 이동
-Int Compare : Int 변수의 차이에 따른 이벤트 처리
-Add FSM : 하나의 게임 오브젝트에 2 이상의 FSM 추가
-Send Event : FSM 선택하여 이벤트를 Call 한다
-Global Transition : 리니어 방식으로 이벤트 트랜지션이 아닌, 언제나 이벤트를 받도록
-iTween Move Add : itween 스크립트를 활용한 오브젝트 이동 관련 액션


  1. Add FSM
하나의 게임오브젝트에 여러개의 FSM 추가

마우스 우클릭하여 Add FSMComponent
상단 탭에서 한 오브젝트에 있는 여러 FSM들을 볼수있음 (여러개를 동시에 보는 뷰는 안되는건가?)

대안으로 FSM Browser에서 리스트뷰로 볼수있는데 FSM  많아지면 정말 헷갈릴듯!

1a. Game object 변수
Enemy_Move FSM에서 플레이어 오브젝트 저장할 GameObject 변수 Obj_Player’만들기

1b. Find game object action

tag로 설정시 랜덤한 검색

*확인하는 방법 (오!)

우측 변수에 Value none 이었는데 

플레이하면 Player 오브젝트가 쏙 들어가있음 

1c. Move towards action

Target position - None으로 눌러주기
적이 플레이어 위치 +1까지 도달하면 (Finish distance)
다음 이벤트로 넘어감

1d. Look at action

적이 이동할때 플레이어를 바라보게.
Y축으로 회전하여 , 적의 Z 방향이 플레이어를 향하도록.

1e. iTween move add
Knock Back이라는 스테이트 만들어 적이 플레이어를 향해 돌진하고, 플레이어에 의해 피해를 입고 뒤로 넉백.

원래는 itween으로 Space 좌표를 Self로 하며 Z축 -2로 해야 왔던길로 튕겨나가는데
Itween이 지원되지 않아 move towards로 대체했다. 그래서 일단 임시방편으로 그냥 X로 튕겨나가는척만 연출

2 set enemy color
튕겨나가는 넉백일때 빨갛게 바꿈

3.LOGIC
플레이어를 만날때 Enemy_HP연산되도록
Enemy_Damage FSM에 Enemy Alive?스테이트 추가하고 Yes No 이벤트 두개 추가


Enemy Alive로 경로 변경.
적이 피해를 입은 후, 적이 살아있는가’를 판단

3a. Int compare

Int 1이 2보다 같은지/작은지/큰지에 따라 컨디션 설정

적이 살아있지 않으면 Enemy Dead 상태로 보내고,
살아있으면 HP 값을 표시하고 처음으로 돌아가도록 설정

Enemy_Move FSM에 넉백할때 Send Event 하여 HP 줄어들도록


근데 0이 되어도 계속 움직이는 중

4.Global Transition

Enemy_Move FSM에 state와 글로벌 이벤트 Emeny Dead 추가.

Enemy_Damage FSM에도 Enemy Dead 스테이트에 dead 이벤트 추가


그리고 마지막으로 Move FSM에서 Dead 일때도 넉백 (Move Towards 추가)




*itween에 대한 환쟁이 님 블로그 질문/답변



*작업노트 적을때 티스토리에서 바로 적거나 메모장에서 적어서 옮겼었는데 사진 첨부하는게 너무 귀찮아서 에버노트 맥에서 작성해서 이미지는 바로 스크린캡쳐해서 붙여놓고 에버노트-티스토리 연동 플러그인을 설치해서 업로드하는걸로 바꿈
단점은 이미지의 폭이 들쑥날쑥..




[Unity] 작업노트 - Playmaker 연습하기 2 - Game Artz님 강좌


한글 유튜브 강의를 살짝 들어봄

https://www.youtube.com/watch?v=gA1Yxkq_uQc (Game Artz님) unity playmaker 02

https://www.youtube.com/watch?v=T36lEjrS2cQ unity playmaker 03


- 플레이메이커 설치후 중요 셋팅

- 버튼 눌러서 캐릭터 조작하기


유니티 메뉴 Playmaker > Addons>> download addons

Ecosystem browser 추가 설치해야 기타 플러그인을 사용할 있음


UI> Canvas 생성

안에 UI > button 생성

버튼에 Add FSM



버튼을 눌렀을때 오른쪽으로 이동하도록 만들어보겠음

Ecosystem browser 에서 U gui proxy full 다운로드


그러면 이제 state 에서 transition


반드시 add script 해야함

Play maker u component proxy (script) 추가!



키보드로 캐릭터가 4방향으로 로 움직이도록 했고, 버튼 누르면 구 쪽으로 달려감

Smoothy Look At, Move Towards 액션 사용




카메라가 캐릭터 쫓아가도록 main camera 오브젝트를 player캐릭터 넣음

근데 그러면 귀여운 앞모습이 보이질 않잖아..흑




카메라에 FSM 추가해서 Smoothy Follow Action 추가하면 카메라가 오브젝트를 자연스럽게 쫓아가고 회전함





https://www.youtube.com/watch?v=XRUUGhWB1Wg unity playmaker 04

큐브 위에 마우스 클릭하면 큐브가 사라지면서 다음 큐브가 나타나는 예제







다음 단계로 버튼을 누르면 캐릭터가 다음에 나타나는 큐브를 바라보도록 응용 해보았다

그리고 Cube를 누르면 Cube쪽으로 쫓아가고, sphere를 누르면 그쪽으로 쫓아감

근데 Sphere를 누르면 state가 finish 되면서 cube를 바라보는 state로 자동 넘어가서 획 돌아가버리는 느낌.

이건 어떻게 해결해야할까? finish가 되면서 cube를 바라보지 않는 state를 캐릭터에 하나 더 추가해야하나?

암튼 현재는 일일히 event 1 2 3 4 만들어서 큐브1 클릭하면 큐브 2 액티베이트 되면서 이벤트 1 보내고 rotateCube라는 글로벌 게임오브젝트에 Cube2를 넣는다. 

다음 cube2 클릭하면 cube3 액티베이트, 이벤트 2 보내고 rotateCube Cube 3 넣고.. 이렇게 동일하게 반복하게 된다. 

 이때 event 1 2 3 4 따로 보내지 않고 nextcube라는 이벤트를 만들어서 공용화하고, 다음에 액티베이트 되는 큐브를 글로벌게임오브젝트에 넣도록 공용화(함수화?)하고 싶은데 어떻게 하는지 잘 모르겠다. playmaker의 액션 종류에 대해서 좀더 공부해야할듯


getter/setter 구분해서 쓰는거랑 gameobject랑 FSMgameobject랑 변수로만 만든 gameobject랑 너무 헷갈림 0ㅁ0...


그래도 로직을 만들면서 헤매기는 하는데 연두색 선으로 state의 이동에 대한 디버그를 하면서 할수있어서 좀 다행이다


텍스트 코딩으로 했으면 내 실력으로는 어림도 없는 구성이었을듯!


playmaker 만세!








2015년 9월 25일


왜 벌써 9월말이지;; 개강 직전부터 지금까지 쉴새없이 바쁘다. 추석 연휴라 맛있는거 먹고 조금 더 자긴하겠지만 왔다갔다하며 준비도 돕고하다보면 체력도 시간도 어차피 소진되는데 과제는 과제대로 엄청 폭탄처럼 던져져있다
남교수님 혹은 결혼안하신 여교수님이 '여러분 추석연휴라 시간 많으니까' 하면서 막 던져주시는데 진짜 몰라서 하는 소리 아닌가 싶음.
그렇게 막 투덜대다가도 딱 오늘부터 며칠간 수업이 없어서 내가 내 시간을 조금 컨트롤할 수 있다는 자체로 약간 숨통이 트이긴 하다.
카페에 앉아서 커피마시는거 진짜 오랜만이다 - 작업 좀 할랬더니 콘센트가 없네 배터리도 없고. 손으로 뭔가 쓰면서 정리해보는 낭만을 억지로 만들어 주셔서 감사해봄니다




콘센트 자리나서 자리 옮겼다
반사되서 모니터 안 글씨가 잘 안보이긴하는데 하늘위에 글쓰는 기분이랄까.
추석연휴부터 약 2-3주간 달려야할 스케쥴을 체크해봤는데 엄청났다. 계획을 잘 짜서 하지 않으면 와르르 무너질지도 모른다는 불안감에 휩싸였다. 실라버스며 수업ppt며 다 열어서 체크하고 캘린더에 적고 공유폴더 세팅하고 에버노트에 정리하고 했더니 벌써 저녁먹을 시간;


아직 귀향하지 못한 자들의 만찬.
보쌈 시켜먹었는데 대만족!
다들 바빠서 집에 못가고 좀비처럼 학교를 배회하고있다. 가더라도 맘도 불편하고 ㅠ ㅠ 힘내자아아..



계속 무리하니 체력도 바닥나고 감기 기운 오기시작. 옆방 금총각이 준 몽골산 꿀 + 말린 모과로 차 한잔


Hmd & ar & iot 컨셉으로 과제 중인데 아이에게 저런 흉물을 씌워야하다니 마음이 좋지 않다..


같은방 모션랩 사람들은 오늘 새벽까지 학회 제출 마감이라 부산스럽다. 어제 실험당해줬는데 구현한거 써보니까 멋지기도하고. 부디 좋은 결과있어야할텐데


퇴근할때즈음이나 기억하고 싶은 시점에 책상샷을 남기고 있다. 모아보면 재밌을듯




'오늘하루 > 일기' 카테고리의 다른 글

2015년 11월 21일  (0) 2015.11.21
2015년 11월 17일 새벽 두시  (0) 2015.11.17
2015년 9월 25일  (0) 2015.09.25
2015년 8월 30일, 여름방학 마지막 날  (0) 2015.08.31
2015년 1월 일상 (2)  (0) 2015.08.30
2015년 1월 일상 (1)  (0) 2015.03.14