게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for UnrealKyu-sung Choi
강력한 시각화와 몰입도 높은 가상세계 표현을 위해, 게임엔진은 측량기반의 콘텐츠를 필요로 하고 공간정보 3D 플랫폼은 강력한 프리미엄급 클라이언트를 필요로 하는데, Cesium for Unreal은 이런 수요를 만족하는 솔루션입니다. 이 발표자료는 공간정보 3D 콘텐츠가 어떻게 게임엔진 안으로 들어가서 국가 또는 지구 범위로 확장성을 발휘하는지, 그 기능구현을 진입단계 수준으로 소개하고 있습니다.
게임엔진과 공간정보 3D 콘텐츠 융합 : Cesium for UnrealKyu-sung Choi
강력한 시각화와 몰입도 높은 가상세계 표현을 위해, 게임엔진은 측량기반의 콘텐츠를 필요로 하고 공간정보 3D 플랫폼은 강력한 프리미엄급 클라이언트를 필요로 하는데, Cesium for Unreal은 이런 수요를 만족하는 솔루션입니다. 이 발표자료는 공간정보 3D 콘텐츠가 어떻게 게임엔진 안으로 들어가서 국가 또는 지구 범위로 확장성을 발휘하는지, 그 기능구현을 진입단계 수준으로 소개하고 있습니다.
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담Sumin Byeon
이 발표는 넥슨의 신규 개발 게임인 듀랑고의 생태계에 대한 간략한 소개와 OpenCL 을 이용한 병렬 처리에 관한 전반적인 기술적 내용을 다룹니다. 게임 속의 세계에서 지형과 기후, 지질 조건에 맞게 여러 종류의 식물과 광물들을 알맞은 곳에 배치시키는 것이 생태계 시뮬레이터의 역할인데, 이 시뮬레이터는 방대한 양의 계산을 수행합니다. 초기에 만들어진 프로토타입은 이러한 계산을 수행하는데 30분이 넘게 걸렸지만, 병렬처리, 알고리즘 시간복잡도 개선 등의 여러가지 방법들을 통해 그 시간을 11초까지 단축시켰습니다. 구체적으로 어떤 방법들을 시도했었고, 어떤 방법들이 효과가 있었는지 여러분과 그 경험담을 공유하고자 합니다.
Meetup tools for-cloud_native_apps_meetup20180510-vsminseok kim
마이크로서비스로 시스템을 구성하면 서비스간에 연관관계가 줄어들면서 서비스 릴리즈 속도가 높아지고 유연하게 대처할 수 있지만, 관리포인트가 늘어나게 되어 운영상에 많은 어려움을 마주치게 됩니다. 배포 될 때마다 생성되고 소멸되는 마이크로서비스를 다른 마이크로서비스가 쉽게 참조하게 하고 마이크로서비스들의 설정 정보를 일관되게 관리하는 일은 쉬운일이 아닙니다. 이러한 문제를 해결하기 위해 Spring Cloud 프로젝트와 같은 도구를 비롯하여 Pivotal Cloud Foundry와 같은 클라우드 플랫폼등이 있습니다. 이번 밋업에서는 마이크로서비스를 운영할 때의 어려운점과 도움을 주는 다양한 도구들에 대해 알아보도록 하겠습니다.
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기Chris Ohk
C++11을 시작으로 모던 C++이 도입된 지도 어느새 6년이라는 시간이 흘렀습니다. 올해는 C++17 표준이 도입될 예정입니다. 그만큼 많이 개선되고 새로운 기능들이 많이 도입되었기에 실무에서 사용해보고 싶은 경우도 많습니다. 하지만 이미 서비스 중이라 기존 프로젝트를 새 버전의 VS로 마이그레이션하기 어려운 프로젝트가 많습니다. 그렇다고 아예 불가능한 일도 아닙니다. 이번 세미나에서는 기존 프로젝트를 새 버전의 VS로 마이그레이션하면서 발생했던 문제와 마이그레이션 이후 모던 C++을 사용하면서 발생했던 문제, 그리고 해결법을 설명하고자 합니다. 또한 새 버전의 VS에 생긴 유용한 기능들도 함께 알려드립니다.
Klaytn 101 #2 Blockchain Application(BApp) 동작원리와 구성요소 이해하기
1. BApp 개요: BApp의 동작원리와 BApp을 구성하는 요소들에 대해 설명
2. Count BApp: Klaytn Docs에 소개된 Count BApp 튜토리얼을 step-by-step으로 따라가며, web 기반 BApp 구현방법에 대해 설명
* 54 페이지 두번째 줄의 함수명 callPlus은 callMius로 변경해 주세요.
[야생의 땅: 듀랑고]의 식물 생태계를 담당하는 21세기 정원사의 OpenCL 경험담Sumin Byeon
이 발표는 넥슨의 신규 개발 게임인 듀랑고의 생태계에 대한 간략한 소개와 OpenCL 을 이용한 병렬 처리에 관한 전반적인 기술적 내용을 다룹니다. 게임 속의 세계에서 지형과 기후, 지질 조건에 맞게 여러 종류의 식물과 광물들을 알맞은 곳에 배치시키는 것이 생태계 시뮬레이터의 역할인데, 이 시뮬레이터는 방대한 양의 계산을 수행합니다. 초기에 만들어진 프로토타입은 이러한 계산을 수행하는데 30분이 넘게 걸렸지만, 병렬처리, 알고리즘 시간복잡도 개선 등의 여러가지 방법들을 통해 그 시간을 11초까지 단축시켰습니다. 구체적으로 어떤 방법들을 시도했었고, 어떤 방법들이 효과가 있었는지 여러분과 그 경험담을 공유하고자 합니다.
Meetup tools for-cloud_native_apps_meetup20180510-vsminseok kim
마이크로서비스로 시스템을 구성하면 서비스간에 연관관계가 줄어들면서 서비스 릴리즈 속도가 높아지고 유연하게 대처할 수 있지만, 관리포인트가 늘어나게 되어 운영상에 많은 어려움을 마주치게 됩니다. 배포 될 때마다 생성되고 소멸되는 마이크로서비스를 다른 마이크로서비스가 쉽게 참조하게 하고 마이크로서비스들의 설정 정보를 일관되게 관리하는 일은 쉬운일이 아닙니다. 이러한 문제를 해결하기 위해 Spring Cloud 프로젝트와 같은 도구를 비롯하여 Pivotal Cloud Foundry와 같은 클라우드 플랫폼등이 있습니다. 이번 밋업에서는 마이크로서비스를 운영할 때의 어려운점과 도움을 주는 다양한 도구들에 대해 알아보도록 하겠습니다.
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기Chris Ohk
C++11을 시작으로 모던 C++이 도입된 지도 어느새 6년이라는 시간이 흘렀습니다. 올해는 C++17 표준이 도입될 예정입니다. 그만큼 많이 개선되고 새로운 기능들이 많이 도입되었기에 실무에서 사용해보고 싶은 경우도 많습니다. 하지만 이미 서비스 중이라 기존 프로젝트를 새 버전의 VS로 마이그레이션하기 어려운 프로젝트가 많습니다. 그렇다고 아예 불가능한 일도 아닙니다. 이번 세미나에서는 기존 프로젝트를 새 버전의 VS로 마이그레이션하면서 발생했던 문제와 마이그레이션 이후 모던 C++을 사용하면서 발생했던 문제, 그리고 해결법을 설명하고자 합니다. 또한 새 버전의 VS에 생긴 유용한 기능들도 함께 알려드립니다.
Klaytn 101 #2 Blockchain Application(BApp) 동작원리와 구성요소 이해하기
1. BApp 개요: BApp의 동작원리와 BApp을 구성하는 요소들에 대해 설명
2. Count BApp: Klaytn Docs에 소개된 Count BApp 튜토리얼을 step-by-step으로 따라가며, web 기반 BApp 구현방법에 대해 설명
* 54 페이지 두번째 줄의 함수명 callPlus은 callMius로 변경해 주세요.
5. MCG 소개 및 Maxscript, Python과의 차이점
• Maxscript : • Python :
• Maxscript, Python은 프로그래머 친화적인 직접 코딩을 하는 방식으로 아티스트들이 접근하기 힘든 부분이 있었습
니다
6. MCG 소개 및 Maxscript, Python과의 차이점
• Max
Creation
Graph
(MCG):
• MCG는 프로그래머 뿐만 아니라 아티스트분들도 쉽고 빠르게 할 수 있는 노드 기반의 새로운 비주얼 프로그래밍 입
니다
7. MCG 소개 및 Maxscript, Python과의 차이점
• Max
Creation
Graph
(MCG):
• MCG는 프로그래머 뿐만 아니라 아티스트분들도 쉽고 빠르게 할 수 있는 노드 기반의 새로운 비주얼 프로그래밍 입
니다
8. MCG Package Install
• https://area.autodesk.com/tutorials/mcg-whats-new-2018--sample-pack/ 으로 이동합니다
• 사이트로 이동 후 밑으로 내려 보면 위의 빨간 부분이 나옵니다. 빨간 부분을 클릭해서 MCG Package를 다운 받습니다
• C:Users유저 이름(ex:Hong)AppDataLocalAutodesk3dsMax맥스 버전(Ex:2019 – 64bit)ENU 안에 있는 3dsMax.ini 파
일을 오픈 합니다
• MCG Tools 과 MCG Compound 경로를 추가로 적어 주고 저장 합니다
[MCG Tools Directories]
samples=C:Users유저이름(ex:hong)Autodesk맥스 버전(ex:3ds Max 2019)Max Creation Graphsrc
[MCG Compound Directories]
samples=C:Users 유저이름(ex:hong) Autodesk 맥스 버전(ex:3ds Max 2019)Max Creation Graphsrc
• 위에 다운 받은 MCG Package 압축을 풀고 src 폴더 안에 내용을 설정한src 경로에 copy/past합니다. 다음에Packages폴더를
설정한 경로 Max Creation Graph경로에 copy/past 합니다
• 3ds Max를 다시 실행 시킵니다
9. Creating a Compound for MCG
• What’s Compound : MCG안에서 자주 사용하는 복잡한 노드들을 하나의 노드로 만들어 재사용 할 수 있도록 합니다. 다른
프로그래밍에서는 함수와 유사합니다
10. Creating a Compound for MCG
• Compound Input: SceneNode : Compound 제작 시 사용 하는 Input 노드로 Scene에 있는 노드를 받아 올 수 있습니다
11. Creating a Compound for MCG
• SceneNode World Position : SceneNode의 월드 공간의 위치 값을 받아 올 수 있습니다
18. Creating a Compound for MCG
• Graph Properties:
• Identifier: MCG를 식별 할 수 있는 이름을 등록 합니다
19. Creating a Compound for MCG
• Graph Properties:
• Version Major/Minor/Revision: MCG의 버전을 알 수 있도록
번호를 입력합니다
20. Creating a Compound for MCG
• Graph Properties:
• Graph GUID: 파일의 읽기 전용 전역 식별자 입니다
• Display Name: 노드 편집기의 인터페이스, 즉 제목 표시줄
• Author: 작성자 정보를 입력합니다
• Company: 작성자 회사 정보를 입력합니다
21. Creating a Compound for MCG
• Graph Properties:
• Version GUID: 파일 현재 버전의 읽기 전용 전역 고유 식별자 입니다
• Category: 사용자 정의의 범주 정보를 입력합니다
• Copyright: 저작권 정보를 입력 합니다
• Url: 작성자의 웹주소나 사용자를 위한 정보를 줄 수 있는 웹주소를 입
력합니다
22. Creating a Compound for MCG
• Graph Properties:
• Description: MCG에 관련된 설명을 입력 합니다
23. Creating a Compound for MCG
• Graph Properties:
• File: MCG의 경로와 이름을 보여 줍니다
• Created: MCG를 처음 만든 날짜를 출력 합니다
• Last modified: MCG의 마지막 수정 날짜를 출력합니다
24. Creating a Compound for MCG
• Graph Properties:
• Save: 입력 정보를 저장 합니다
• Cancel: 입력 정보를 취소 합니다
25. Creating a Compound for MCG
• Save Graph As: • Save 경로에 Compounds폴더 경로가 맞는지 확인 합니다
• Save 버튼을 클릭 저장합니다
26. Creating a Compound for MCG
• Operator Depot에서 View창으로 드래그 하
면 청록색 노드를 보실 수 있습니다
• 이름으로 검색도 가능하고 Compound는 글자에 청록색을 가지고 있습니다
• 두 오브젝트 사이에 위치하는 오브젝트 만들기:
46. • Auto Move BP:
• 1: StaticMesh선택
• 2: 원하는 StaticMesh를
선택
• 3: EventGraph 선택
• 1
• 2
• 3
47. • Auto Move BP:
• 4: 선택 후 변수를 만들어
줌
• 5: 생성된 변수 선택
• 6: 변수 이름 설정
• 7: 변수 타입을 Vector로
설정
• 8: 생성된 변수를 Event
Graph로 드래그 하고 Set
으로 출력 합니다
• 9: 마우스 우 클릭
GetActorLocation생성
• 10: 노드 연결
• 4
• 5
• 6
• 7
• 8
• 9• 10
48. • Auto Move BP:
• 게임이 시작 되면Actor의
Location값을 변수 Initial
Location에 넣어 줍니다
• Event BeginPlay: 게임
이 플레이 되면 발생 할 이
벤트 설정
• GetActorLocation: Actor
의 위치 값을 실시간으로
받아옵니다
• Set Initial Location: 생성
된 변수에 원하는 값을 넣
어 줄 수 있습니다
49. • Auto Move BP:
• 1: 변수를 생성
• 2: 선택 후 눈 아이콘을 활
성화 해 줌
• 3: 변수의 이름을 설정하고
타입을 Integer로 만들어
줌
• 4: Value Range를 1~3으
로 설정
• 5: 변수의 디폴트 값을 1로
설정
• 6: 선택한 변수를 드래그해
서 Get으로 설정
• 7: 마우스 우 클릭 후에
Compareint 생성,
Compare With값을 2로
설정
• 8: 노드 연결
• 1
• 2
• 3
• 4
• 5
• 6
• 7• 8
50. • Auto Move BP:
• 게임에 프레임이 흘러가면
서 Compareint노드로 입
력 되는 변수를 Compare
With 값 2와 비교 하여 작
거나 같거나 크거나 를 비
교해서 세가지 경우를 만
들어 줍니다(여기서는 X, Y,
Z 방향 설정)
• Event Tick:
게임에 프레임이 흘러가는
것을 받아옵니다
• X:1 Y:2 Z:3 :
Actor에서 설정 하는 값을
받아 옵니다
• Compareint:
입력되는 변수의 값을
Compare With값 2와 비
교 해서 세가지 경우를 설
정
51. • Auto Move BP:
• 1: 변수를 생성
• 2: 선택 후 눈아이콘 활성
화
• 3: 이름을 설정 및 변수 타
입을 Float로 만들어줌
• 4: 선택 변수를 드래그 한
수 Get으로 생성
• 5: Event Graph 빈 곳을 선
택 후 Get Time Seconds
노드 생성
• 6: Event Graph 빈 곳을 선
택 후 float X float
Multiply 노드 생성
• 7: 노드 연결
• 1
• 2
• 3
• 4
• 5 • 6
• 7
52. • Auto Move BP:
• 움직이는 장애물의 속도를
제어 합니다
• Get Time Seconds: 현
재 게임 시간을 초 단위로
받아 옵니다
• Z Speed: 속
도를 제어 할 수 있는 변수
값을 받아옵니다
• Float*Float(Multiply):
입력되어지는 float값두개
를 곱해준 값을 출력 합니
다
• 3
53. • Auto Move BP:
• 1: 변수를 생성
• 2: 선택 후 눈아이콘 활성
화
• 3: 이름을 설정 및 변수 타
입을 Float로 만들어줌
• 4: 선택 변수를 드래그 한
수 Get으로 생성
• 5: Event Graph 빈 곳을 선
택 후 Cos(Radians)노드
생성
• 6: Event Graph 빈 곳을 선
택 후 float X float
Multiply 노드 생성
• 7: 노드 연결
• 1
• 2
• 3
• 4
• 5• 6
• 7
54. • Auto Move BP:
• 움직이는 장애물의 범위를
제어 합니다
• Cos(Radians):
Cosine값을 출력 합니다
(시간에 따라 1 ~ -1사이
값 출력)
• Z Size: 움
직이는 물체의 범위를 제
어 하는 변수 값을 받아 옵
니다
• Float*Float(Multiply):
입력되어지는 float값두개
를 곱해준 값을 출력 합니
다
• 3
55. • Auto Move BP:
• 1: Event Graph에서 빈 곳
을 클릭 하고 Make
Vector 노드 생성 (노
드 세개를 생성 하고 각각
X,Y,Z의 값에 0.0을 입력 합
니다 )
• 2: 세개의 Make Vector노
드를 각각 노드당 X, Y, Z부
분을 앞의
float*float(Multiply)노드
와 연결 합니다 • 1• 2
56. • Auto Move BP:
• 움직이는 장애물의 속도와
범위를 설정하고 움직임을
줄 수 있는 Vector를 각 축
별로 생성 합니다
• Make Vector:
X,Y,Z의 Float값을 각각 설
정 하여서 Vector를 만들
어 줍니다
• 3
57. • Auto Move BP:
• 1: 변수 선택
• 2: 선택한 변수를 드래그
이후 Get으로 변수 생성
• 3: Event Graph의 빈 곳을
우 클릭하고 Vector +
Vector노드를 생성 합니다
• 4: Initial Location 노드
Make Vector노드를
vector + vector노드로 연
결 합니다
• 4
• 1
• 2
• 3
58. • Auto Move BP:
• Actor의 위치 값을 받아와
서 움직이는 Vector값을
더해 줍니다
• Initial Location:
Actor의 위치 값을 받아 옵
니다
• Vector + Vector:
입력되는 두개의 Vector
값을 더해서 출력 합니다
59. • Auto Move BP:
• 1: Event Graph의 빈곳을
마우스 우클릭 하고
SetActorLocation노드를
세개 생성 합니다
• 2: 앞에 만들어진 Vector값
을 New Location에 연결
합니다 Compareint
에서 출력 되는 세 가지 경
우를 각각 연결해 줍니다
• 3: 모든 노드들의 연결이
완료 되면 Compile버튼을
눌러 줍니다
• 1
• 2
• 3
60. • Auto Move BP:
• 최종적으로 받아온 Vector
값을 Actor에 설정해 줍니
다
• SetActorLocation:
Actor의 위치 값을 설정해
줄 수 있습니다
61. • 3ds Max에서 소스 가져 오기:
• 2
• 3• 1: C:Program FilesEpic
GamesUE_4.20Engine
Extras3dsMaxScriptsV
ertexAnimationTools.ms
로 이동
• 2:VertexAnimationTools.
ms를 3dsMax로 드래그해
서 실행합니다
• 3: script가 실행이 되면 창
이 활성화 됩니다
• 4: 원하는 Mesh를 모두 선
택을 해 줍니다
• 5: 실행된 Script에서Paint
Selection Sequence버튼
을 클릭 합니다
• 1
• 5
• 4
63. • 3ds Max에서 소스 가져 오기:
• 2 • 3
• 1: Export할 경로를 설정
합니다
• 2: 파일 이름과 확장자를
설정 합니다
• 3: Save버튼을 클릭하고
저장 합니다
• 1
64. • 3ds Max에서 소스 가져 오기:
• 2
• 3
• 1: 원하는 Setting으로 설
정
• 2: Animation 체크 비 활
성화 해줍니다
• 3: OK버튼을 클릭
• 1
65. • 3ds Max에서 소스 가져 오기:
• 2
• 3
• 1: import누르고 import
한 파일을 선택합니다
• 2: Combine Meshes를 체
크를 활성화 합니다(이 옵
션이 활성화 되면 모든 메
쉬를 하나의 메쉬로 결합
합니다)
• 3: Import버튼을 클릭해서
Mesh를 가지고 옵니다
• 1
66. • 3ds Max에서 소스 가져 오기:
• 1: import한 Mesh를 선택
합니다
• 2: Use Full Precision UV’s
의 정확한 계산이 필요 할
경우에는 체크 박스를 활
성화 해줍니다 (기본적으
로 StaticMesh는 메로리
를 절약 하기 위해 정밀도
16비트 UV를 사용합니다
이옵션을 활성화 하면 메
쉬가 전체 정밀도 32비트
UV를 사용 하게 됩니다)
• 3: Distance Field
Resolution Scale을 0으로
바꾸어 줍니다
• 4:Save버튼을 클릭 해서
저장해 줍니다 • 1
• 2
• 3
• 4
67. • 3ds Max에서 소스 가져 오기:
• 1: 빈 곳을 선택하고 마우스 우 클
릭 이후에 Material을 생성합니다
• 2: 생성된 Material의 원하는 이름
으로 변경해 주고 선택해 줍니다
• 3: Material 안에서 우 클릭 후에
Constant3 Vector를 생성해 주고
원하는 색깔로 설정해 줍니다 설정
된 노드를 BaseColor와 Emissive
Color에 연결해 줍니다
• 4: Material안에서 우 클릭 후에
MS_SequencePainter_Sequence
Flipbook 노드를 생성하고 World
Position Offset에 연결해 줍니다
• 5: Material안에서 우 클릭 후에
Constant를 생성하고 3dsMax에
서 import해온 Mesh의 개수를 입
력 해 줍니다 설정된 노드를
Number Of Frames와 연결해 줍
니다
• 6: Save버튼을 클릭하고 Material
을 저장해 줍니다
• 1
• 2
• 3
• 4
• 5
• 6
68. • 3ds Max에서 소스 가져 오기:
• Import한 Mesh를 화면에
드래그 하고 새로 제작한
Material을 Mesh에 드래
그에서 연결 시키면 움직
이는 Mesh를 보실 수 있습
니다
72. 오토데스크 M&E Website
http://cafe.naver.com/autodeskme
• Autodesk M&E 카페 (이슈사항 수시로 업데이트!)
http://https://www.facebook.com/groups/1611269852441897/
http://www.scriptspot.com/3ds-max/mcg
• 3ds Max Procedural Tools - MCG + DCM + OSL
• Maxscript and MCG 사이트