분류 전체.. (283)
일기 (124)
Flash Plat.. (101)
Scaleform (43)
JavaScript (3)
etc (12)
비공개 (0)
as3  scaleform  스케일폼  as3.0  CLIK  flash cs3  클릭  scaleform3  scaleform4  강좌 
 gmlmcklc
└>gmlmcklc
 비 익스플로러..
└>미나토
 비 익스플로러..
└>미나토
 Flash CS3, Fl..
└>iamyhs
 더 공부해
└>iamyhs
«   2011/12   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
+ 다니는 회사
+ 내가 1년전까..
+ 내가 2년전까..
+ twitter
+ facebook
+ flex sdk
+ Total : 57,642
+ Today : 90
+ Yesterday : 96
  

 

 

 

2011/12 _해당되는 글 6건
2011/12/27   scaleform.clik.motion.Tween 성능 비교 
2011/12/22   ObjectPool, TweenMax, LoaderMax in Scaleform 4.0.13 테스트... 
2011/12/21   Scaleform 에서의 텍스처 로드 
2011/12/14   FDT5 를 Scaleform4.x 개발에 사용하기에 앞서 간단한 팁 
2011/12/07   scaleform 4.x UDK 통합 그리고, Extension - MouseEvent.RIGHT_CLICK 

 

scaleform.clik.motion.Tween 성능 비교
+   [Scaleform]   |  2011/12/27 19:16  

http://www.minarto.com/303 에 이어진 내용입니다.

제가 외부 Tween 라이브러리 말고 scaleform 4.x 에서 제공하는 트윈을 사용하라고 했는데요...

바로 scaleform.clik.motion.Tween 요녀석입니다.


바로 본론으로 들어가죠... 간단한 테스트 결과입니다





매 frame 마다 무비클립과 트윈을 생성해 좌표와 alpha 를 변하게 하는 간단한 테스트를 하였습니다... (귀찮으니 전 안합니다... 시켜야죠 ㅎㅎㅎ)


TweenLite 와의 확연한 성능차가 보이십니까...

그 이유는 Tween 클래스를 열어보면 바로 알 수 있느데요... 이녀석은 독특하게 매트릭스 객체를 이용합니다. 왜냐 하면, scaleform 4.x에서 matrix 는 GPU를 타기 때문입니다.


사실 이건 히카님이 gfx_4.0_render_threading_guide_kr.pdf 문서를 보시더니 말씀해주신 겁니다... scaleform 4.x 대의 렌더링 방식으로 돌아가려면 matrix 가 GPU를 타야 한다고...
그때는 그걸 흘려듣고 있다가, 나중에 Tween 클래스를 까보니 matrix를 이용하고 있는게 아니겠습니까...

아하!!~~~ 하고 알게 되었죠... 


as3 기반의 외부라이브러리들은 아무리 빨라봤자 CPU를 활용하는 것이고, Tween 은 GPU를 사용하니 게임이 안됩니다




이걸 여러가지로 응용해볼 수 있겠죠... 실수연산을 matrix에 태워서 GPU를 이용해 계산한다든가 말이죠...
시간이 나면, 이런 저런 연산 클래스를 만들어봐야겠습니다...


이 클래스를 보건데 CLIK 프레임웍에 대해 다시 한번 생각해 볼 필요가 있습니다...

플래시 개발자들이 컴포넌트는 느리단 생각에 CLIK 프레임웍에서 제공하는 컴포넌트는 무조건 안쓰는 경향이 있습니다...

CLIK 는 gs 그룹에서 만든놈입니다... 웬만한 개발자 아니면 그정도 이상의 수준을 만들기 어렵죠...
최소한 까볼만한(?) 녀석이긴 합니다... 
크리에이티브 커먼즈 라이선스
Creative Commons License

 
 
     CLIK, scaleform, tween, 스케일폼
     0   0
이 글의 관련글(트랙백) 주소 ::    http://www.minarto.com/trackback/304 관련글 쓰기

아이디 
비밀번호 
홈페이지 
비밀글   

 

 

ObjectPool, TweenMax, LoaderMax in Scaleform 4.0.13 테스트...
+   [Scaleform]   |  2011/12/22 17:38  


오늘은 아주아주 가벼운 포스팅...



대표적인 as3 라이브러리인 세녀석을 테스트 해봤습니다...


스케일폼에서는 LoaderMax 빼고 다 잘 돌아갑니다...

LoaderMax 에서 내부적으로 사용하는 Class 중에 스케일폼이 지원하지 못하는 Class 가 있기 때문입니다... 돌려보면 로그창에 뜰겁니다...(flash.system.ApplicationDomain 등등...)


뭐, 그렇다고요...


그리고, TweenMax 가 잘 되긴 합니다만... 이 라이브러리보다 스케일폼에서 제공하는 Tween Class 를 고려하셔야 합니다...
그 이유는 다음번 포스팅으로... 



음... 어쨌든 할 수 없이 멀티로더 클래스를 하나 만들어야 겠네요...



이거 말고 또 다주 쓰는게 있으려나... 
크리에이티브 커먼즈 라이선스
Creative Commons License

 
 
     LoaderMax, ObjectPool, scaleform, TweenMax
     0   0
이 글의 관련글(트랙백) 주소 ::    http://www.minarto.com/trackback/303 관련글 쓰기

아이디 
비밀번호 
홈페이지 
비밀글   

 

 

Scaleform 에서의 텍스처 로드
+   [Scaleform]   |  2011/12/21 14:53  


플래시에서 이미지를 불러오는 방법이야 간단합니다...

var loader:Loader = new Loader();
var info:LoaderInfo = loader.contentLoaderInfo;
info.addEventListener(Event.COMPLETE, onComplete);
var request:URLRequest = new URLRequest();
request.url = 경로;
loader.load(request);

function onComplete($e:Event):void{
        var info:LoaderInfo = $e.target as LoaderInfo;

var bm:Bitmap;  = Bitmap(info.content);
addChild(bm);
}


as2 라면 다음과 같겠죠...

var loader:MovieclipLoader =  new MovieClipLoader();
loader.addListener(this);

var content:MovieClip = createEmptyMovieClip("content", 0);
loader.loadClip(경로, content);

function onLoadInit($content:MovieClip ):Void{
trace($content)




하지만, 스케일폼에서는 일반 데스크탑 자원이나 http 프로토콜에 있는 이미지를 불러오는 것이 아닙니다...
위와 같이 웹앱을 만들 때처럼 그냥 스케일폼 플레이어에서 돌려보면 이미지가 잘 불러지지만, 정작 udk에 통합된 ui 내에서는 이미지가 열리지 않습니다


언리얼 엔진이면 UPK 패키지 안에 있는 지도나 아이템 텍스처일 것이고... 스타면...mpq일까요? 아마 그러할 것입니다...


그런데 그 경로는 결국 클라이언트가 지정해줘야 하는 것이겠죠... UI개발자가 아니고요... 어쨌든 udk와 통신을 해서 그 경로를 받았다고 치죠. 하지만 일반웹앱처럼 텍스처가 그냥 불러지지 않습니다.

스케일폼에서는 img태그를 사용해서 게임의 텍스처를 불러올 수 있도록 되어있습니다.

http://udn.epicgameskorea.com/Three/ScaleformTechnicalGuideKR.html#이미지 로딩 

위와 같습니다...

주의해야 할 것은 다음과 같습니다.

1. "img://경로" 가 바로 텍스쳐 경로인 셈입니다... 확장명은 없습니다...

2. img 태그를 쓰지 않아도 리소스는 불러올 수 있지만 swf 리소스만 가능하고, 이미지 리소스는 불러올 수 없습니다.

3. udk 에서는 upk 패키지에서 새롭게 가상의 절대경로가 package 라는 이름으로 생성됩니다...(메인 swf 기준으로)
하지만 직접 절대경로를 이용해 불러오는 (/를 이용해서) 방식은 문제가 있습니다

4. 스케일폼 3.x대에서는 Bitmap.smoothing 을 사용할 수 없습니다... flash player 9 에서 지원하는 MovieClip.forceSmoothing 은 스케일폼에서 지원하지 않습니다.

마찬가지로 as2를 지원하는 3.x 대에서는 이미지를 불러온 후 MovieClipLoader.unloadClip 를 통해서 gc를 할 수 있으나,



(프로파일러로 확인한 제가 이미지 로드 & gc 적용전 우리 회사 UI 의 참담한 모습... 붉은색이 메모리 ㅠㅠ) 




(프로파일러로 확인한 loadClip과  unloadclip 를 적용한 후의 이미지 로드 & gc)


as3를 지원하는 4.x 대에서는 Bitmapdata.dispose() 를 지원하지 않기 때문에 dispose 를 이용한 gc를 할 수가 없습니다. (dispose 말고 다른 방법으로 해제하던가요? as3 한지가 한 1년쯤 지났더니 기억이 안나서...)
저도 다른 방법을 생각 중입니다.
 

5. 큰 이미지를 불러왔는데 아주 작은 이미지를 확대시켜놓은 것마냥 뿌옇게 나타나는 경우가 있습니다.
이는 텍스쳐를 밉맵으로 불러왔기 때문입니다. udk의 경우 upk 패키지를 열었을 때(fully load), 텍스처를 더블클릭해서 열어보면 맨밑의 Mip Gen Settings 를 NoMipmaps 로 선택해두면 해결됩니다.
udk의 경우 이러한 건데... 다른 엔진은 잘 모르겠습니다....(다른 엔진 사주시면 찾아봐드릴게요 ㅎㅎㅎ)
 

6. JPG 형식의 포맷은 압축포맷이기에 메모리에 올라가면서 압축이 해제되어 메모리가 4배이상 늘어납니다... png나 tga 같은 비압축 포맷 또는 dxt같은 게임텍스처용 파일로 작업할 것을 권합니다




이미지 로드 & gc 에서 보았듯이 개발이라는 것이 누가 어떻게 개발하느냐에 따라서 그 결과물은 0~xxx 배까지 차이가 난다고 생각합니다.
당연히 저보다 뛰어난 개발자가 만들면 더욱더 최적화 될겁니다

UI 라는 것이 그냥 UI 디자이너에게 금방 할 수 있다고 사기쳐서 만들 수 있는 것도, 다른 일 할 것도 많은 클라팀에게 무조건 떠넘길 일도 아니란거죠...


r&d와 투자없이 스케일폼을 적용해봤자 스케일폼은 애물단지일 뿐입니다...



 
크리에이티브 커먼즈 라이선스
Creative Commons License

 
 
     GC, img태그, mipmap, scaleform, 가비지콜렉션, 스케일폼, 이미지로드, 텍스쳐로드
     0   0
이 글의 관련글(트랙백) 주소 ::    http://www.minarto.com/trackback/302 관련글 쓰기

아이디 
비밀번호 
홈페이지 
비밀글   

 

 

FDT5 를 Scaleform4.x 개발에 사용하기에 앞서 간단한 팁
+   [Scaleform]   |  2011/12/14 15:53  

글 쓰기에 앞서 전 이전까지 단 한번도 FDT를 사용해본 적이 없었음을 밝히면서...


FDT 버전이 5로 올라가면서 가장 큰 변화는 라이센스입니다. 무려 Free 버전이 생겨나버렸습니다.


이제는 무료라는 매력때문에 사용했던 FlashDevelop 의 강력한 경쟁자가 생겨난 셈입니다...(꼭 무료때문만은 아니죠... 가벼움때문이라던가... 코드서포트라던가...)


앞서 말했지만 FDT를 사용해본 적이 없어서 현재로서는 플래시 빌더 쓰던 것처럼 쓰고 있을 뿐입니다. 똑같은 이클립스 기반이니까요...
제가 FDT5 를 계속 사용하게 될지는 모르겠습니다... 전 익숙함 때문인지 플래시 빌더가 더 좋아요~


사용해보면서 느낀 것이 있다면 Warning 기능이 강력하다는 것인데요...(다른 주요 기능들은 Free 버전에서는 막혀있는 것이 있어서...)

Scaleform 4.x 대의 scaleform.gfx.* 패키지를 불러보니 온통 오류(경고말고도...) 투성이네요...(scaleform.clik.* 는 말할 것도 없고요... 음... 확실히 대충 만들었습니다 ㅎㅎㅎ)


일단은 몇몇 기본 세팅되어진 Warning 는 꺼둘 필요가 있겠습니다.(이건 절대적으로 개인의 역량에 맡깁니다... Warning 는 사실 필요한 것이니까요,...)
Scaleform 개발시에 수십 수백개의 Warning 메세지를 보고싶지 않다면 다음의 몇몇 항목들은 꺼두는 것도 정신 건강에 좋을 것 같습니다.


Project > Properties > FDT Problems > AS3

Enable project specific problems 체크 후


Declarations 항목
Parameter is never used > Disabled

scaleform.* 패키지 에서는 정의만 되어지고 사용하지 않는 함수 파라메터가 많습니다... 개발에 쓰여지는 함수가 아니고 scaleform 설정에 쓰여지는 함수이기 때문입니다.



Unresolvable 항목
Unresolvable member reference in dynamic object > Disabled

dynamic 변수 사용을 권장하는 것은 아니지만 쓸 때가 전혀 없는 것은 또 아니기에... 꺼두는 것을 권합니다.


Imports 항목
Unused Import > Disabled 

요건 임포트만 해놓고 사용하지 않는 클래스나 함수가 있음 알려주는 놈입니다... 이거는 꺼두기 보다는 일일히 찾아서 지워주는 것이 나을 수도 있겠습니다.



그리고 국내에선 거의 안사용하겠지만 scaleform.gfx.GamePad 라는 클래스가 있습니다.


그 안에 게임패드의 버튼에 대한 상수값들이 들어있는데 모두 데이터형이 없어서 경고를 뿜어내고 있죠...
그놈들은 uint 로 해놓으면 되겠습니다. scaleform.gfx.GamePadAnalogEvent 클래스의 code 변수 주석을 보면 uint로 되어있습니다.



12.16일 p.s.

좀 사용하다보니 그냥저냥 만져보기엔 좋은데, free 버전은 리팩토링 기능을 죄다 막아놨네요... 쩝...

쫌 더  만져보다가 그냥 빌더나 디벨롭 써야할 듯...
크리에이티브 커먼즈 라이선스
Creative Commons License

 
 
     FDT5, scaleform, scaleform3, scaleform4, warning
     0   0
이 글의 관련글(트랙백) 주소 ::    http://www.minarto.com/trackback/300 관련글 쓰기

아이디 
비밀번호 
홈페이지 
비밀글   

 

 

scaleform 4.x UDK 통합 그리고, Extension - MouseEvent.RIGHT_CLICK
+   [Scaleform]   |  2011/12/07 18:43  


http://www.udk.com/news-beta-nov2011.html

11월 30일, 드디어 기다리고 기다리던 udk + scaleform4.x 통합이 이루어졌습니다...

사실 이 버전은 스케일폼으로서는 중요한 의미를 같습니다...(저만 그렇게 생각할지도...)


플래시 개발자가 보기에 스케일폼은 굉장히 폐쇄적인 접근성을 가지고 있습니다... 플레이어 데모를 하나 다운 받기 위해서는 회원가입을 해야하고, 심사를 받고 해야만 한달짜리 쉐어버전(?)을 받아볼 수 있습니다.

웹이 아닌 겜 개발에 쓰인다는 이유때문에 실무 소스를 구하기도 쉽지 않죠,.,..소스가 곧 게임의 보안이니까요...(전 사실 ui 소스는 공개되도 된다고 생각합니다. ui의 소스만으로는 어떻게 돌아가는지 절대 알 수 없거든요...)

(업계 사람들에게 들어보니) 게임웨어로는 사실 평범한 방식이지만, 플래시 개발자들에게는 오픈된 웹환경의 여러 풍부한 자료 속에서 놀다가 스켈폼을 접하면 매우 답답한게 사실이죠...


그런데 udk는 무료로 배포되어집니다... 그런데 그 속에 스케일폼의 최신 버전이 통합된거죠...

이제야 개발자들이 회사 라이센스와 별개로 마음껏 스케일폼을 만져볼 수 있게 된 셈입니다.




통합된 버전은 4.0.13 버전인데... 조금은 성급하게 이루어진 듯 합니다. 

현재의 최신 scaleform버전인 4.0.14 로 통합이 되지 않은건 이해할 수 있다 치더라도, 프로파일러인 AMP가 3.3.89 버전이 들어있고.... 안의 데모 소스들도 좀 이상합니다...


뭐, 금방 나아지겠지요...


문서와 소스들을 조금씩 까보기 시작했는데요... 뭐 사실 플래시 개발자에게 중요한건 flash support 문서와(얼마만큼의 flash api를 지원해주는지) Extension (스케일폼 특화 확장기능) 문서입니다.



통합 뉴스의 내용이 포스팅의 주제인데 살짜쿵 마우스 우측 버튼 지원에 대해서 얘기해보겠습니다


플래시에서는 마우스 우측버튼을 지원하지 못했었습니다... 맥의 인터페이스 때문인지는 모르겠지만 암튼 그래왔지요,...


하지만 게임에서도 마우스 우클릭을 못할 수는 없는법... 그래서 스케일폼에서는 자체 확장기능으로 그런 것들을 지원했는데요... 다음과 같습니다.


onPressAux()
onReleaseAux() 
onReleaseOutsideAux()

등을 as2 의 MovieClip 에서 지원했습니다... 다중 마우스를 지원하기 위해 controllerID를 인자로 받고요...(다중마우스라는건 한대의 Wii에서 여러명이 위모콘을 컨트럴 할 경우를 생각하시면 됩니다) 마우스 버튼 또한 인자로 받습니다...(버튼이 여러개인 마우스도 있으니까요...)

뭐 그랬나보다 하고 넘어가시면 됩니다...(as2를 해보신 분은 이름만 가지고도 저놈들이 뭐하는 놈인지 아실 겁니다) 


재밌는건 as3입니다 


as3는 우측 마우스를 역시 지원 못하지만, 한편으로는 지원을 합니다. 바로 air에서 지원하는 MouseEvent.RIGHT_CLICK 이벤트 타입인데요...

전 사실 스케일폼 4,x 에서 이녀석을 그대로 쓸 줄 알았습니다. 스켈폼이 플래시와의 호환성을 지키겠다고 했었으니까요,... 뭐 지원하지 않는 controllerID 정도는 MouseEvent 를 상속한 클래스를 하나 제공할 줄 알았죠...


그런데 이번에 문서를 열어보니 이게 웬일...

MouseEventEX 라는 녀석이  MouseEvent 를 상속받는데... 여전히 controllerID 와 buttonID 를 인자로 받습니다...(뭐 사실 위에 말한거랑 같은거지만...) RIGHT_CLICK 타입은 이벤트로 받지를 않습니다(당연히 MIDDLE_CLICK 도...)
사실 다중 마우스와 다중 버튼을 지원하기 위해선 맞는 선택이긴 합니다....(하지만 자주쓰는 우클릭은 상수화되길 바랬습니다...ㅡ.,ㅡ)


하지만 플래시 개발자가 헷갈릴 수도 있는 부분이였기 때문에 적어봤습니다...
스켈폼은 플래시 웹플레이어 플랫폼과의 호환성을 지켜간다고 봐야겠네요... air를 포함한 풀 플랫폼이 아니고 말이죠...


별 내용 없죠???


사실 4.x 대의 CLIK 에 있는 Tween Class에  관한 포스팅을 작성하려 했는데...(히카님의 도움을 통해 재밌는걸 발견해서...) 그건 테스팅 결과가 필요해서 간단하게 요놈을 써봤습니다.

 
크리에이티브 커먼즈 라이선스
Creative Commons License

 
 
     MouseEvent, RIGHT_CLICK, scaleform, scaleform3, scaleform4
     0   0
이 글의 관련글(트랙백) 주소 ::    http://www.minarto.com/trackback/299 관련글 쓰기

아이디 
비밀번호 
홈페이지 
비밀글   

 

<<이전 | 1 | 2 | 다음>>

미나토's Blog is powered by Daum