안녕하세요!

이번 포스팅은 포톤 엔진을 유니티에 적용하는 과정에 대해 알아보려고 합니다.


먼저, 여러분이 사용할 포톤 엔진을 간략하게 설명해드릴께요.

독일의 함부르크에 위치한 엑시트 게임즈(Exit Games)가 처음 개발했어요. 골프 게임인 '월드 골프 투어' 온라인 엔진을 만드는 과정에서 쌓인 노하우로 시작했습니다.



이제

포톤 홈페이지에 오셔서 회원가입을 해주세요

물론, 무료고 간단하게 이메일로 회원가입하시면 됩니다.


https://www.photonengine.com/




회원가입을 하셨으면

포톤엔진(Photon) 관리페이지에서

새 어플리케이션을 만들겠습니다.






필요한 포톤 서비스를 선택하시고 (Realtime, PUN, Bolt 등등)

생성버튼을 누르세요!




부담없이 관리화면에서 '새 어플리케이션'을 만드세요.

20CCU는 무료로 얼마든지 이용가능합니다!


그리고 생성된 어플리케이션 ID를 유니티에 세팅하면 됩니다.




유니티란

3D 및 2D 비디오 게임의 개발환경을 제공하는 게임엔진이자, 3D 애니메이션과 건축시각화, 가상현실(VR) 등 인터렉티브 콘텐츠 제작을 위한 통합 저작 도구입니다.

그리고 2005년 WWDC(애플 세계 개발자 회의)에서 소개되었고, 현재 가장 인기있는 게임엔진입니다.



유니티(Unity 3D) 다운로드

https://store.unity.com/kr/?_ga=2.183207782.134718227.1532307302-2009930978.1440059350




게임 만들적에 한국에서 가장 많이 이용하는 툴이죠.



이제 유니티를 설치하셨으면

어셋 스토어로 가볼까요!!?



어셋스토어에서 'PUN'을 검색해보세요


위와 비슷한 화면이 나올텐데요.


사진과 같이

PLUS 와 FREE 두 종류의 PUN이 있습니다.



* PUN vs PUN+ (차이점)

1. Photon Unity Networking Free 모바일용에 빌드 Android/iOS Pro라이센스가 필요하지만, PUN+ 필요하지 않습니다.

2. PUN+에는 60개월간 100CCU까지 사용할 있는 쿠폰이 포함되어 있습니다.



이번 포스팅에서는 모바일로 빌드를 하는게 아니라서

FREE 를 다운받고, 임포트하겠습니다. 





임포트가 완료되면

포톤 어플리케이션 ID를 세팅하는 창이 뜹니다.



실수로 창을 닫으셨거나

나중에 설정하고 싶으시면


Photon Unity Networking \ Resources \ PhotonServerSettings

에서 값을 입력하시면 됩니다.




이상

포톤엔진을 유니티에 적용하기를 마치겠습니다.




Photon 공식 홈페이지 
https://www.photonengine.com/ko-kr/Photon

★Photon Help Center
https://support.photonengine.jp/hc/ko




'Tip' 카테고리의 다른 글

[Photon 팁]포톤엔진 구매-클라우드편  (0) 2018.09.28
[Photon 팁]포톤엔진 구매-서버편  (0) 2018.09.07
[Photon 팁] 포톤 Cloud vs Server  (0) 2018.06.20
[Photon 팁] 포톤 Plugin  (0) 2018.06.01

VR(가상현실)이란

컴퓨터 등을 사용한 인공기술로 만들어낸 실제와 유사하지만 실제가 아닌 어떤 특정한 환경이나 상황 혹은 그 기술자체를 의미합니다.



사실상 최초의 현실적인 게이머용 VR 헤드셋 영상을 한번 보세요!


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





구글 카드 보드란

2014년 구글 I/O 컨퍼런스에서 발표된 DIY 도면 및 해당 도면으로 만들어진 HMD(Head Mounted Display)를 지칭합니다.


* HMD : 주로 가상현실 또는 증강현실의 구현을 위한 디스플레이 장치



* 공식 홈페이지

https://vr.google.com/cardboard/index.html





이제 서론은 접고, 개발을 시작해보겠습니다.



요약

1. SDK 준비 (구글 카드보드, PUN)

2. 



유니티 (포스팅시 적용 버전 2018.1.8f1)

VR 개발툴 선두주자라고 할 수 있는 유니티는 다 설치해놓으셨죠?



그 다음,

구글 카드보드 SDK for Unity 를 다운 받겠습니다.


유니티 어셋스토어에서 받는게 아니라

깃허브에서 다운받으면 됩니다.


https://github.com/googlevr/gvr-unity-sdk/releases

(포스팅시 적용 버전 1.150.0)





* 참고

(혹시나 예전버전 SDK가 필요하시면)

https://github.com/googlevr/gvr-unity-sdk/releases/tag/v1.110.0








유니티 공식 샘플 소스로 VR 테스트를 해보겠습니다.

Roll A Ball 프로젝트입니다.




튜토리얼 사이트


https://unity3d.com/kr/learn/tutorials/s/roll-ball-tutorial


 



VR이 아닌 앱으로 실행을 하면



이제 VR 프로젝트로 변환시켜보겠습니다!!


구글 카드보드 SDK의 카메라 말고

Dive Camera를 한번 사용해보겠습니다.


https://www.durovis.com/en/sdk.html





홈페이지에서 유니티 플러그인 패키지를 다운받으세요.

그리고 프로젝트에 임포트를 하세요.





Asset \ _Completed-Game \ Roll-a-ball 씬을 엽니다.

그리고 
임포트한 Dive Camera 를 하이라키에 넣겠습니다.

Asset \ Dive \ Prefabs \ Dive_Camera 프리팹을 하이라키에 드래그앤 드랍하세요.

기존에 하이라키에 있던 MainCamera는 비활성화시켜주세요.

그러면 이런 하이라키를 구성할 겁니다.




이제 VR 프로젝트가 완성되었습니다.
빌드앤 런을 해보세요






VR로 잘 실행되었다면
이제 멀티플레이어가 되도록 만들어보겠습니다.


멀티플레이어 게임을 만들기 위해서

포톤 어셋부터 임포트 하겠습니다.



PUN을 유니티에 적용하는 부분은

포톤코리아 블로그에서 포스팅한 글('포톤엔진을 유니티에 적용')을 참고해주세요~



http://photonkr.tistory.com/13?category=1000133







위 포스팅을 잘 따라하시면

유니티에 PUN 임포트&설정은 문제 없을 것입니다.




그 다음

빈 오브젝트를 생성한 후

이름을 'NetworkController'로 변경합니다.

곧 이 오브젝트에 곧 생성할 NetworkController.cs 파일을 컴포넌트로 넣을 것입니다.







이제 플레이어가 될 오브젝트를 프리팹(Prefab)으로 만들겠습니다.


Asset 폴더 아래에 Resources 폴더를 하나 생성합니다.

이 폴더로 Player 게임오브젝트를 드래그앤 드랍하세요.





프리팹을 만들었으니

하이라키에 있는 Player 오브젝트는 삭제하거나 비활성화 시켜주세요.





프로젝트 하이라키는 아래와 같습니다.



(Main Camera와 Player는 비활성화)





이제는 스크립트 파일을 만들겠습니다.


NetworkController.cs






* PhotonNetwork.ConnectUsingSettings()


* PhotonNetwork.Instantiate()

- 네트워크 객체를 자동으로 생성

- 프리팹 이름, 시작위치, 회정정보

- 프리팹은 Resources 폴더 안에 존재, 프리팹은 PhotonView 가 컴포넌트로 존재


NetworkedPlayer.cs




* OnPhotonSerializeView()

- steam 변수를 통해 read, write


**steam.isWriting


**steam.SendNext()

- 데이터 직렬화

- 다른 유저에게 데이터를 보냄

 





아까 말씀해드린대로

NetworkController.cs 파일은 NetworkController 게임오브젝트에 컴포넌트로 추가해주세요.




NetworkedPlayer.cs 파일은 프리팹에 컴포넌트로 넣어주세요.

그리고 포톤 엔진이 제어할 수 있도록

PhotonView 도 컴포넌트로 넣어주세요.


PhotonView를 넣은 후

Observed Components에는 NetworkedPlayer 컴포넌트를 드래그앤 드랍해주세요.


아래 사진은

Player 프리팹 수정한 인스팩터 부분입니다.





빌드 앤 런 해보세요!









Photon 공식 홈페이지 
https://www.photonengine.com/ko-kr/Photon


★Photon Help Center
https://support.photonengine.jp/hc/ko







'Photon > PUN' 카테고리의 다른 글

[PUN]PUN classic VS PUN 2  (0) 2019.05.30
[PUN] 매치메이킹  (0) 2019.04.24
[PUN]로비.룸 알아보기  (0) 2018.12.19
[PUN]RPC 알아보기  (0) 2018.12.10
[PUN]유니티짱을 이용한 PUN classic 시작하기  (1) 2018.05.30

<포톤 클라우드 Photon Cloud>


* 특징 *

 - 서버관리

포톤에서 서버 운영.관리를 해드립니다.

 - 확장성

자동으로 스케일링이 됩니다. 

 - 게임로직

PUN, Photon Chat 등의 SDK가 준비되어 있습니다. SDK 설치 후 Photon API를 이용해 빠르게 개발을 할 수 있습니다.

 - 신속성

어플리케이션 등록 후 즉시 실행됩니다.

 - 라이센싱

무료 플랜을 포함해 월별 사용자 수에 따른 다양한 서비스가 있습니다. 




* 라인업 *




* 보충 *

 - 클라우드 서비스 모델 비교



SaaS (Software as a service)

- 필요한 소프트웨어 설치없이 웹에서 이용

클라우드 서비스 공급자로부터 종량제 방식으로 구매하는 완전한 소프트웨어 솔루션을 제공하는 것을 말합니다.


예: 포톤 클라우드 엔진 서비스를 포함해서 지메일, 드롭박스 등등

장점: 

  필요할때 비용만 내면 어디서든 즉시 이용가능

  설치 불필요

  사용자가 일일이 업그레이드나 패치 작업할 필요 없음




<포톤 서버:온프레미스 Photon Server>


 - 서버관리

어플리케이션 실행의 모든 권한을 가집니다.

 - 확장성

적절한 서버 수 세팅은 각자 해야합니다.

 - 게임로직

서버 데모 SDK가 준비되어 있습니다.

 - 신속성

원격.로컬 모두 설치가능합니다.

 - 라이센싱

1회 또는 월별 구매가능합니다.






Photon 공식 홈페이지 
https://www.photonengine.com/ko-kr/Photon

★Photon Help Center
https://support.photonengine.jp/hc/ko



+ Recent posts