SlideShare a Scribd company logo
1 of 35
2016-01-11
Kiyoung Moon
 Autodesk에서 제공하는 UI Solution
 플래시(Flash)를 만들고자 하는 응용 어플
리케이션에서 재생 및 상호작용 가능하게
해주는 미들웨어
 http://www.autodesk.com/products/scalefo
rm/overview
 플래시를 이용한 UI 구현, 특히 게임 UI를
제작할 때 디자이너 친화적인 환경 제공
 벡터 그래픽
 애니메이션 표현의 자유도 높음
 ActionScript(AS)를 통한 제어 자유도 높음
 쉽게 말해 플래시에서 표현 가능한 모든 것
들이 일반 응용 어플리케이션에서 표현 가
능함.
 UE4
 UnrealEngine4
 스케일폼을 UE4에 통합하여 플래시 재생
및 상호작용
 스케일폼의 구매 과정은 설명하지 않음
 진행하던 프로젝트의 이미지를 포함하고
있으므로 일부 이미지들은 못생긴 사각형
박스로 표현
 https://gameware.autodesk.com/developer
 사이트에서 Downloads탭을 선택하면 다음과 같은 화면이 나타난다.
 현재 사용하고 있는 엔진의 버전에 맞게
Integration 코드를 다운로드 받아야 한다.
현재 우리가 사용하고 있는 엔진 버전은
4.9.2이고 그에 맞는 sf_4.4_ue4_4.9.2.zip
를 다운로드 받는다.
 Scaleform SDK 역시 사용하고 있는 비주
얼 스튜디오 버전에 맞게 다운로드 받아주
자.
 Scaleform SDK
 Scaleform UE4 Integration
 2개를 받으면 된다. (하나도 아니고 두 개임)
 설치를 끝내면 브라우저를 실행할 수 있다.
 여기에서 대부분의 정보를 얻을 수 있다.
 앞서 엔진 버전에 맞는 통합 코드를 받아야
한다고 했다. 이것은 설치형 파일이 아니라
zip파일을 풀고 수동으로 통합을 해주어야
한다.
 Engine폴더에 있는 모든 소스 코드를 현재
사용하고 있는 엔진 코드에 Merge해야 한
다. 문서에는 overwriting이라는 적혀 있는
데 그냥 덮어 썼다간 엔진을 수정한 프로젝
트일 경우 소스를 날려 먹을 수 있다. 즉, 덮
어쓰지 않고 Merge해야 한다.
 Engine 폴더의 내용을 모두 합친 후에
GenerateProjectFiles.bat를 실행해서 솔루
션 파일을 만들면 통합 끝!
 평가판을 사용할 경우 오토데스크로부터
라이선스 키를 부여 받는데 이 키를 소스
코드에 등록해 주어야 제대로 사용이 가능
하다. 라이선스 키 확인은 게임웨어 사이트
에서 어카운트 정보를 보면 된다.
 라이선스 키를 적용하려면
ScaleformEngine.cpp파일을 찾은 후
Insert Scaleform License Key here라는 항
목을 검색해서 등록해주면 된다.
 AS2(ActionScript2)는 더 이상 지원하지 않는 경우도 있으므로 앞으
로 프로젝트를 진행하려면 AS3를 적극 사용할 것을 권한다.
 AS2를 사용하지 않는다면 다음과 같은 코드를 찾아서 주석 처리 하
자. 그러면 쓸모 없는 코드 사용을 하지 않게 된다.
 Ptr<GFx::ASSupport> pAS2Support = *SF_NEW GFx::AS2Support();
 mLoader.SetAS2Support(pAS2Support);
 만일 팀의 규모가 클 경우에 모든 개발자에게 스케일폼 SDK를 설치
하라고 하는 것은 좋지 못하다 그러므로 Prebuilt 형태로 제공하려면
다음과 같은 파일들을 모두 엔진에 복사해서 넣어주자.
 GFx SDK 4.3.283rdParty to UE4-
QAEngineSourceThirdPartyScaleformGFx3rdParty
 GFx SDK 4.3.28include to UE4-
QAEngineSourceThirdPartyScaleformGFxinclude
 GFx SDK 4.3.28libs to UE4-
QAEngineSourceThirdPartyScaleformGFxlibs
 GFx SDK 4.3.28Src to UE4-
QAEngineSourceThirdPartyScaleformGFxSrc
 핵심 에셋 타입으로는 SwfMovie,
GFxMoviePlayer가 있다. 이때 이 둘의 관
계는 다음과 같다.
 SwfMovie는 swf파일 내부에 있는 정보(텍
스쳐, 문자열 등)를 가지고 있고
MoviePlayer가 이것을사용한다. 이때 런타
임 정보들은 모두 GFxMoviePlayer가 가지
고 있는다. (예를 들어 AS의 상태)
GFxMoviePlayer SwfMovie
 MoviePlayer마다 사용자로부터 입력을 받는
다거나 받지 않는 것들이 존재한다. HUD의
경우 보통 사용자 입력을 받지 않는다. UE4에
서 이 두 에셋을 더블 클릭해서 보면 키보드
입력값을 처리하는지 여부, 마우스 처리를 하
는지 여부와 같은 설정 값들이 존재한다.
 보통 플레이어 HP의 경우 HUD로 Movie를 재
생해 사용자 입력을 배제하고 캐릭터 인벤토
리와 같은 위젯은 MoviePlayerBP를 사용하여
사용자 입력을 모두 처리하도록 한다.
 블루 프린트로 간단하게 플래시 파일을 화면에
등록해서 재생 가능하다. 레벨 블루 프린트를 연
후 다음과 같이 블루 프린트를 작성한다.
 F7키를 누르면 Open Movie를 사용해서
Window라는 플래시를 화면에 표시한다. 이때
Movie Player를 MoviePlayerBP를 사용했는
데 이는 사용자로부터 입력을 받아들일 수 있
는 플래시이기 때문이다. 만일 HUD와 같이
사용자 입력은 받지 않고 화면에 표시만 하는
역할이라면 MoviePlayerHUD를 사용하면 된
다. 추가로 Open Movie 이후에 SetViewport
를 사용해서 플래시 컨탠츠의 사이즈를 조절
하는 것을 볼 수 있다.
 C++에서 플래시 애니메이션을 재생하고 이것
을 컨트롤 하기 위해서 함수를 호출하거나 변
수 값을 변경할 수 있다. 가령 화면에 UI를 띄
우고 이 안의 내용을 변경할 때 (C++에서 원
하는 값을 화면에 표시할 때) 사용된다.
 이것은 MoviePlayer-
>Function( MovieClipName, Parameters );와
같이 호출할 수 있다.

 만일 플래시 내부 정보를 변경하려고 하면 함
수를 호출해 변수 값을 전달할 수 있다.
<Set Variable를 사용해 플래시 내부 정보를 변경하는 모습>
 주요하게 살펴볼 점은 Set Variable Value에 전달
하는 요소들이다. Movie Clip Name을 보면 현재
screen_message.textField를 사용하고 있는데
이것은 플래시에서 다음과 같다.
 동영상 클립의 이름이 screen_message
 screen_message에 textField가 있다. 이 textField
의 값을 ASValue로 변환해서 넣어주는데 현재는
문자열로 설정하기 위해서 ASString으로 전달했다.
이제 실행을 해보면 dsdfasdf라는 문자열이 바뀐
것을 확인할 수 있다.
 런타임에 문자열이 바뀐 것을 확인할 수 있다.
 C++에서 AS함수를 호출하는 것의 반대 역
시 가능하다. AS에서 ExternalInterface를
사용하면 된다. 다음과 같이 버튼이 존재하
고 AS를 작성할 때 다음과 같이 원하는
C++함수를 호출해주면 된다
 MoviePlayer를 생성하고 연결된
ExternalInterface 클래스에 다음과 같이
UFunction으로 등록해두면 AS에서 함수를 호
출 할 수 있다.
 MoviePlayer의 Close를 호출하면 메모리
가 해제되며 인수로 false를 넘기면 화면에
서만 사라지고 메모리에서 점유 되는 것을
볼 수 있다.
 언리얼 커맨드에서 stat Scaleform을 실행
하면 다음과 같이 스탯 정보를 볼 수 있다.
 주어진 플래시 영상을 화면에 표시하고
Close를 했을 때 메모리가 소멸되는 것을
확인할 수 있다.
 스케일폼에서 제공하는 모든 PDF문서들을 읽어 볼 것
 UE4의 업데이트 버전보다 항상 스케일폼이 느릴 수 밖에
없기 때문에 진행중인 프로젝트에서 엔진을 업데이트 할
때는 스케일폼에서 통합 코드를 제공하고 있는지 아닌지
의 여부에 따라 엔진 업데이트 시기 조절이 필요하다.
감사합니다

More Related Content

What's hot

NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계Imseong Kang
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버준철 박
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기현철 조
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기Seungjae Lee
 
The Sight in a mirror 게임 개발 기술문서
The Sight in a mirror 게임 개발 기술문서The Sight in a mirror 게임 개발 기술문서
The Sight in a mirror 게임 개발 기술문서ssuser641680
 
프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법Lee Sangkyoon (Kay)
 
UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1Hong-Gi Joe
 
NHN NEXT 게임 전공 소개
NHN NEXT 게임 전공 소개NHN NEXT 게임 전공 소개
NHN NEXT 게임 전공 소개Seungmo Koo
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 
The Online Tech of Titanfall
The Online Tech of TitanfallThe Online Tech of Titanfall
The Online Tech of Titanfallvtslothy
 
What is Game Server ?
What is Game Server ?What is Game Server ?
What is Game Server ?흥배 최
 
Mmorpg의 재미 평가 모델에 관한 연구(2쇄수정)
Mmorpg의 재미 평가 모델에 관한 연구(2쇄수정)Mmorpg의 재미 평가 모델에 관한 연구(2쇄수정)
Mmorpg의 재미 평가 모델에 관한 연구(2쇄수정)병호 신
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはJun-ichi Sakamoto
 
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with ExceptionGCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception상현 조
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다KWON JUNHYEOK
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건강 민우
 
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화Seungmo Koo
 
世界を跨ぐリアルタイム PvP 対戦への挑戦 [Google Cloud INSIDE Games & Apps]
世界を跨ぐリアルタイム PvP 対戦への挑戦 [Google Cloud INSIDE Games & Apps]世界を跨ぐリアルタイム PvP 対戦への挑戦 [Google Cloud INSIDE Games & Apps]
世界を跨ぐリアルタイム PvP 対戦への挑戦 [Google Cloud INSIDE Games & Apps]Google Cloud Platform - Japan
 

What's hot (20)

NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기
 
The Sight in a mirror 게임 개발 기술문서
The Sight in a mirror 게임 개발 기술문서The Sight in a mirror 게임 개발 기술문서
The Sight in a mirror 게임 개발 기술문서
 
프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법프로그래머에게 사랑받는 게임 기획서 작성법
프로그래머에게 사랑받는 게임 기획서 작성법
 
UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1
 
NHN NEXT 게임 전공 소개
NHN NEXT 게임 전공 소개NHN NEXT 게임 전공 소개
NHN NEXT 게임 전공 소개
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
The Online Tech of Titanfall
The Online Tech of TitanfallThe Online Tech of Titanfall
The Online Tech of Titanfall
 
What is Game Server ?
What is Game Server ?What is Game Server ?
What is Game Server ?
 
Mmorpg의 재미 평가 모델에 관한 연구(2쇄수정)
Mmorpg의 재미 평가 모델에 관한 연구(2쇄수정)Mmorpg의 재미 평가 모델에 관한 연구(2쇄수정)
Mmorpg의 재미 평가 모델에 관한 연구(2쇄수정)
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
 
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with ExceptionGCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건
 
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
 
世界を跨ぐリアルタイム PvP 対戦への挑戦 [Google Cloud INSIDE Games & Apps]
世界を跨ぐリアルタイム PvP 対戦への挑戦 [Google Cloud INSIDE Games & Apps]世界を跨ぐリアルタイム PvP 対戦への挑戦 [Google Cloud INSIDE Games & Apps]
世界を跨ぐリアルタイム PvP 対戦への挑戦 [Google Cloud INSIDE Games & Apps]
 

Viewers also liked

코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법Kiyoung Moon
 
오토데스트세미나 스케일폼적용사례 김효영
오토데스트세미나 스케일폼적용사례 김효영오토데스트세미나 스케일폼적용사례 김효영
오토데스트세미나 스케일폼적용사례 김효영MinGeun Park
 
cgri-stanford-survey-ceos-and-directors-ceo-pay-2016-final
cgri-stanford-survey-ceos-and-directors-ceo-pay-2016-finalcgri-stanford-survey-ceos-and-directors-ceo-pay-2016-final
cgri-stanford-survey-ceos-and-directors-ceo-pay-2016-finalDavid Larcker
 
Heart transplantation
Heart transplantationHeart transplantation
Heart transplantationFortis Malar
 
Sahiba.catalog
Sahiba.catalogSahiba.catalog
Sahiba.catalogwatan sran
 
Asya P. Simpson Professional Resume
Asya P. Simpson Professional ResumeAsya P. Simpson Professional Resume
Asya P. Simpson Professional ResumeAsya Simpson
 
12.14 Article in Labor Disputes
12.14 Article in Labor Disputes12.14 Article in Labor Disputes
12.14 Article in Labor DisputesDaria Ivanova
 
A cluster-randomized
A cluster-randomized A cluster-randomized
A cluster-randomized Tanja Tomson
 

Viewers also liked (20)

코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법
 
오토데스트세미나 스케일폼적용사례 김효영
오토데스트세미나 스케일폼적용사례 김효영오토데스트세미나 스케일폼적용사례 김효영
오토데스트세미나 스케일폼적용사례 김효영
 
Azurite
AzuriteAzurite
Azurite
 
9tex BD Profile
9tex BD Profile9tex BD Profile
9tex BD Profile
 
cgri-stanford-survey-ceos-and-directors-ceo-pay-2016-final
cgri-stanford-survey-ceos-and-directors-ceo-pay-2016-finalcgri-stanford-survey-ceos-and-directors-ceo-pay-2016-final
cgri-stanford-survey-ceos-and-directors-ceo-pay-2016-final
 
CAFR 2012
CAFR 2012CAFR 2012
CAFR 2012
 
Heart transplantation
Heart transplantationHeart transplantation
Heart transplantation
 
Sahiba.catalog
Sahiba.catalogSahiba.catalog
Sahiba.catalog
 
FSP CHENNAI EXPERIENCE
FSP CHENNAI EXPERIENCEFSP CHENNAI EXPERIENCE
FSP CHENNAI EXPERIENCE
 
Asya P. Simpson Professional Resume
Asya P. Simpson Professional ResumeAsya P. Simpson Professional Resume
Asya P. Simpson Professional Resume
 
12.14 Article in Labor Disputes
12.14 Article in Labor Disputes12.14 Article in Labor Disputes
12.14 Article in Labor Disputes
 
Jumping Stocks
Jumping StocksJumping Stocks
Jumping Stocks
 
RENAVE Resolução nº 655 doc
RENAVE Resolução nº 655 docRENAVE Resolução nº 655 doc
RENAVE Resolução nº 655 doc
 
வெற்றி
வெற்றிவெற்றி
வெற்றி
 
Creative strategies to ensure deeper student engagement
Creative strategies to ensure deeper student engagementCreative strategies to ensure deeper student engagement
Creative strategies to ensure deeper student engagement
 
A cluster-randomized
A cluster-randomized A cluster-randomized
A cluster-randomized
 
IPv6: Is there a problem?
IPv6: Is there a problem?IPv6: Is there a problem?
IPv6: Is there a problem?
 
oscars-f
oscars-foscars-f
oscars-f
 
2014 Ken Resume
2014 Ken Resume2014 Ken Resume
2014 Ken Resume
 
Kowshikaa consultancy overseas
Kowshikaa consultancy overseas Kowshikaa consultancy overseas
Kowshikaa consultancy overseas
 

Similar to 스케일폼(Scaleform) ue4에 통합 및 간단한 사용법

3D 모델러 ADDIN 개발과정 요약
3D 모델러 ADDIN 개발과정 요약3D 모델러 ADDIN 개발과정 요약
3D 모델러 ADDIN 개발과정 요약Tae wook kang
 
S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션codercay
 
Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Dong Chan Shin
 
혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 웹 플랫폼 서비스 구현(삽질) 후...
혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 웹 플랫폼 서비스 구현(삽질) 후...혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 웹 플랫폼 서비스 구현(삽질) 후...
혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 웹 플랫폼 서비스 구현(삽질) 후...Tae-Seong Park
 
2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드Tai Hoon KIM
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridappNAVER D2
 
구글앱엔진 스터디
구글앱엔진 스터디구글앱엔진 스터디
구글앱엔진 스터디소라 정
 
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기Dong Chan Shin
 
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...Amazon Web Services Korea
 
[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322jylee6977
 
카사 공개세미나1회 W.E.L.C.
카사 공개세미나1회  W.E.L.C.카사 공개세미나1회  W.E.L.C.
카사 공개세미나1회 W.E.L.C.Ryan Park
 
[0618구경원]초보 게임프로그래머를 위한 c++
[0618구경원]초보 게임프로그래머를 위한 c++[0618구경원]초보 게임프로그래머를 위한 c++
[0618구경원]초보 게임프로그래머를 위한 c++KyeongWon Koo
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodedpTablo
 
GMS 프로젝트 - Flutter
GMS 프로젝트 - FlutterGMS 프로젝트 - Flutter
GMS 프로젝트 - FlutterJongmini
 
HD 애플리케이션 만들기(파이어몽키 활용)
HD 애플리케이션 만들기(파이어몽키 활용)HD 애플리케이션 만들기(파이어몽키 활용)
HD 애플리케이션 만들기(파이어몽키 활용)Devgear
 
Web assembly 맛보기
Web assembly 맛보기Web assembly 맛보기
Web assembly 맛보기GyeongSeok Seo
 
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Nanha Park
 

Similar to 스케일폼(Scaleform) ue4에 통합 및 간단한 사용법 (20)

3D 모델러 ADDIN 개발과정 요약
3D 모델러 ADDIN 개발과정 요약3D 모델러 ADDIN 개발과정 요약
3D 모델러 ADDIN 개발과정 요약
 
Designing Apps for Motorla Xoom Tablet
Designing Apps for Motorla Xoom TabletDesigning Apps for Motorla Xoom Tablet
Designing Apps for Motorla Xoom Tablet
 
S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1
 
혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 웹 플랫폼 서비스 구현(삽질) 후...
혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 웹 플랫폼 서비스 구현(삽질) 후...혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 웹 플랫폼 서비스 구현(삽질) 후...
혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 웹 플랫폼 서비스 구현(삽질) 후...
 
2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp
 
구글앱엔진 스터디
구글앱엔진 스터디구글앱엔진 스터디
구글앱엔진 스터디
 
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
 
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
[2017 Gaming on AWS] GameLift를 통한 실전 DevOps: 세션형 멀티플레이어 게임의 구현부터 운영까지 Step by...
 
[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322[KGIT_EWD]class03 0322
[KGIT_EWD]class03 0322
 
카사 공개세미나1회 W.E.L.C.
카사 공개세미나1회  W.E.L.C.카사 공개세미나1회  W.E.L.C.
카사 공개세미나1회 W.E.L.C.
 
[0618구경원]초보 게임프로그래머를 위한 c++
[0618구경원]초보 게임프로그래머를 위한 c++[0618구경원]초보 게임프로그래머를 위한 c++
[0618구경원]초보 게임프로그래머를 위한 c++
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCode
 
What's new in IE11
What's new in IE11What's new in IE11
What's new in IE11
 
GMS 프로젝트 - Flutter
GMS 프로젝트 - FlutterGMS 프로젝트 - Flutter
GMS 프로젝트 - Flutter
 
HD 애플리케이션 만들기(파이어몽키 활용)
HD 애플리케이션 만들기(파이어몽키 활용)HD 애플리케이션 만들기(파이어몽키 활용)
HD 애플리케이션 만들기(파이어몽키 활용)
 
Web assembly 맛보기
Web assembly 맛보기Web assembly 맛보기
Web assembly 맛보기
 
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
Deview 2013 :: Backend PaaS, CloudFoundry 뽀개기
 

More from Kiyoung Moon

Image generation compression using genetic algorithm
Image generation compression using genetic algorithmImage generation compression using genetic algorithm
Image generation compression using genetic algorithmKiyoung Moon
 
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기Kiyoung Moon
 
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅Kiyoung Moon
 
게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)Kiyoung Moon
 
Cross-Platform Game Engine
Cross-Platform Game EngineCross-Platform Game Engine
Cross-Platform Game EngineKiyoung Moon
 
버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제Kiyoung Moon
 
유니티 고급 과정 -4-
유니티 고급 과정 -4-유니티 고급 과정 -4-
유니티 고급 과정 -4-Kiyoung Moon
 
유니티 고급 과정 -3-
유니티 고급 과정 -3-유니티 고급 과정 -3-
유니티 고급 과정 -3-Kiyoung Moon
 
유니티 고급 과정 -2-
유니티 고급 과정 -2-유니티 고급 과정 -2-
유니티 고급 과정 -2-Kiyoung Moon
 
유니티 고급 과정 -1-
유니티 고급 과정 -1-유니티 고급 과정 -1-
유니티 고급 과정 -1-Kiyoung Moon
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑Kiyoung Moon
 

More from Kiyoung Moon (11)

Image generation compression using genetic algorithm
Image generation compression using genetic algorithmImage generation compression using genetic algorithm
Image generation compression using genetic algorithm
 
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
 
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
 
게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)
 
Cross-Platform Game Engine
Cross-Platform Game EngineCross-Platform Game Engine
Cross-Platform Game Engine
 
버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제
 
유니티 고급 과정 -4-
유니티 고급 과정 -4-유니티 고급 과정 -4-
유니티 고급 과정 -4-
 
유니티 고급 과정 -3-
유니티 고급 과정 -3-유니티 고급 과정 -3-
유니티 고급 과정 -3-
 
유니티 고급 과정 -2-
유니티 고급 과정 -2-유니티 고급 과정 -2-
유니티 고급 과정 -2-
 
유니티 고급 과정 -1-
유니티 고급 과정 -1-유니티 고급 과정 -1-
유니티 고급 과정 -1-
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑
 

스케일폼(Scaleform) ue4에 통합 및 간단한 사용법

  • 2.  Autodesk에서 제공하는 UI Solution  플래시(Flash)를 만들고자 하는 응용 어플 리케이션에서 재생 및 상호작용 가능하게 해주는 미들웨어  http://www.autodesk.com/products/scalefo rm/overview
  • 3.  플래시를 이용한 UI 구현, 특히 게임 UI를 제작할 때 디자이너 친화적인 환경 제공  벡터 그래픽  애니메이션 표현의 자유도 높음  ActionScript(AS)를 통한 제어 자유도 높음  쉽게 말해 플래시에서 표현 가능한 모든 것 들이 일반 응용 어플리케이션에서 표현 가 능함.
  • 4.  UE4  UnrealEngine4  스케일폼을 UE4에 통합하여 플래시 재생 및 상호작용
  • 5.  스케일폼의 구매 과정은 설명하지 않음  진행하던 프로젝트의 이미지를 포함하고 있으므로 일부 이미지들은 못생긴 사각형 박스로 표현
  • 7.  사이트에서 Downloads탭을 선택하면 다음과 같은 화면이 나타난다.
  • 8.  현재 사용하고 있는 엔진의 버전에 맞게 Integration 코드를 다운로드 받아야 한다. 현재 우리가 사용하고 있는 엔진 버전은 4.9.2이고 그에 맞는 sf_4.4_ue4_4.9.2.zip 를 다운로드 받는다.  Scaleform SDK 역시 사용하고 있는 비주 얼 스튜디오 버전에 맞게 다운로드 받아주 자.
  • 9.  Scaleform SDK  Scaleform UE4 Integration  2개를 받으면 된다. (하나도 아니고 두 개임)
  • 10.
  • 11.  설치를 끝내면 브라우저를 실행할 수 있다.  여기에서 대부분의 정보를 얻을 수 있다.
  • 12.  앞서 엔진 버전에 맞는 통합 코드를 받아야 한다고 했다. 이것은 설치형 파일이 아니라 zip파일을 풀고 수동으로 통합을 해주어야 한다.
  • 13.
  • 14.  Engine폴더에 있는 모든 소스 코드를 현재 사용하고 있는 엔진 코드에 Merge해야 한 다. 문서에는 overwriting이라는 적혀 있는 데 그냥 덮어 썼다간 엔진을 수정한 프로젝 트일 경우 소스를 날려 먹을 수 있다. 즉, 덮 어쓰지 않고 Merge해야 한다.  Engine 폴더의 내용을 모두 합친 후에 GenerateProjectFiles.bat를 실행해서 솔루 션 파일을 만들면 통합 끝!
  • 15.  평가판을 사용할 경우 오토데스크로부터 라이선스 키를 부여 받는데 이 키를 소스 코드에 등록해 주어야 제대로 사용이 가능 하다. 라이선스 키 확인은 게임웨어 사이트 에서 어카운트 정보를 보면 된다.
  • 16.
  • 17.  라이선스 키를 적용하려면 ScaleformEngine.cpp파일을 찾은 후 Insert Scaleform License Key here라는 항 목을 검색해서 등록해주면 된다.
  • 18.  AS2(ActionScript2)는 더 이상 지원하지 않는 경우도 있으므로 앞으 로 프로젝트를 진행하려면 AS3를 적극 사용할 것을 권한다.  AS2를 사용하지 않는다면 다음과 같은 코드를 찾아서 주석 처리 하 자. 그러면 쓸모 없는 코드 사용을 하지 않게 된다.  Ptr<GFx::ASSupport> pAS2Support = *SF_NEW GFx::AS2Support();  mLoader.SetAS2Support(pAS2Support);  만일 팀의 규모가 클 경우에 모든 개발자에게 스케일폼 SDK를 설치 하라고 하는 것은 좋지 못하다 그러므로 Prebuilt 형태로 제공하려면 다음과 같은 파일들을 모두 엔진에 복사해서 넣어주자.  GFx SDK 4.3.283rdParty to UE4- QAEngineSourceThirdPartyScaleformGFx3rdParty  GFx SDK 4.3.28include to UE4- QAEngineSourceThirdPartyScaleformGFxinclude  GFx SDK 4.3.28libs to UE4- QAEngineSourceThirdPartyScaleformGFxlibs  GFx SDK 4.3.28Src to UE4- QAEngineSourceThirdPartyScaleformGFxSrc
  • 19.  핵심 에셋 타입으로는 SwfMovie, GFxMoviePlayer가 있다. 이때 이 둘의 관 계는 다음과 같다.  SwfMovie는 swf파일 내부에 있는 정보(텍 스쳐, 문자열 등)를 가지고 있고 MoviePlayer가 이것을사용한다. 이때 런타 임 정보들은 모두 GFxMoviePlayer가 가지 고 있는다. (예를 들어 AS의 상태) GFxMoviePlayer SwfMovie
  • 20.  MoviePlayer마다 사용자로부터 입력을 받는 다거나 받지 않는 것들이 존재한다. HUD의 경우 보통 사용자 입력을 받지 않는다. UE4에 서 이 두 에셋을 더블 클릭해서 보면 키보드 입력값을 처리하는지 여부, 마우스 처리를 하 는지 여부와 같은 설정 값들이 존재한다.  보통 플레이어 HP의 경우 HUD로 Movie를 재 생해 사용자 입력을 배제하고 캐릭터 인벤토 리와 같은 위젯은 MoviePlayerBP를 사용하여 사용자 입력을 모두 처리하도록 한다.
  • 21.  블루 프린트로 간단하게 플래시 파일을 화면에 등록해서 재생 가능하다. 레벨 블루 프린트를 연 후 다음과 같이 블루 프린트를 작성한다.
  • 22.  F7키를 누르면 Open Movie를 사용해서 Window라는 플래시를 화면에 표시한다. 이때 Movie Player를 MoviePlayerBP를 사용했는 데 이는 사용자로부터 입력을 받아들일 수 있 는 플래시이기 때문이다. 만일 HUD와 같이 사용자 입력은 받지 않고 화면에 표시만 하는 역할이라면 MoviePlayerHUD를 사용하면 된 다. 추가로 Open Movie 이후에 SetViewport 를 사용해서 플래시 컨탠츠의 사이즈를 조절 하는 것을 볼 수 있다.
  • 23.  C++에서 플래시 애니메이션을 재생하고 이것 을 컨트롤 하기 위해서 함수를 호출하거나 변 수 값을 변경할 수 있다. 가령 화면에 UI를 띄 우고 이 안의 내용을 변경할 때 (C++에서 원 하는 값을 화면에 표시할 때) 사용된다.  이것은 MoviePlayer- >Function( MovieClipName, Parameters );와 같이 호출할 수 있다.   만일 플래시 내부 정보를 변경하려고 하면 함 수를 호출해 변수 값을 전달할 수 있다.
  • 24. <Set Variable를 사용해 플래시 내부 정보를 변경하는 모습>
  • 25.  주요하게 살펴볼 점은 Set Variable Value에 전달 하는 요소들이다. Movie Clip Name을 보면 현재 screen_message.textField를 사용하고 있는데 이것은 플래시에서 다음과 같다.
  • 26.  동영상 클립의 이름이 screen_message
  • 27.  screen_message에 textField가 있다. 이 textField 의 값을 ASValue로 변환해서 넣어주는데 현재는 문자열로 설정하기 위해서 ASString으로 전달했다. 이제 실행을 해보면 dsdfasdf라는 문자열이 바뀐 것을 확인할 수 있다.
  • 28.  런타임에 문자열이 바뀐 것을 확인할 수 있다.
  • 29.  C++에서 AS함수를 호출하는 것의 반대 역 시 가능하다. AS에서 ExternalInterface를 사용하면 된다. 다음과 같이 버튼이 존재하 고 AS를 작성할 때 다음과 같이 원하는 C++함수를 호출해주면 된다
  • 30.  MoviePlayer를 생성하고 연결된 ExternalInterface 클래스에 다음과 같이 UFunction으로 등록해두면 AS에서 함수를 호 출 할 수 있다.
  • 31.
  • 32.  MoviePlayer의 Close를 호출하면 메모리 가 해제되며 인수로 false를 넘기면 화면에 서만 사라지고 메모리에서 점유 되는 것을 볼 수 있다.
  • 33.  언리얼 커맨드에서 stat Scaleform을 실행 하면 다음과 같이 스탯 정보를 볼 수 있다.  주어진 플래시 영상을 화면에 표시하고 Close를 했을 때 메모리가 소멸되는 것을 확인할 수 있다.
  • 34.  스케일폼에서 제공하는 모든 PDF문서들을 읽어 볼 것  UE4의 업데이트 버전보다 항상 스케일폼이 느릴 수 밖에 없기 때문에 진행중인 프로젝트에서 엔진을 업데이트 할 때는 스케일폼에서 통합 코드를 제공하고 있는지 아닌지 의 여부에 따라 엔진 업데이트 시기 조절이 필요하다.