Flash(+Stage 3D)의 배경을 투명하게 만들기
Stage 3D는 Flash(일반)에서 정식 3D를 처리하기 위해 상당히 중요한 기능입니다.
Flash(Not Stage3D) + HTML
HTML에서 다음 옵션 설정
wmode="transparent"
Flash(Not Stage3D)+NativeWindow
AIR 응용 프로그램에서 XML을 설명하는 initial Window 항목에 다음 설정을 추가합니다.
<systemChrome>none</systemChrome>
<transparent>true</transparent>
Flash(Stage3D) + HTML
나는 할 수 없을 것 같다.
wmode에transsparent와direct 두 가지를 설정하고 싶은데 그럴 리가 없어요...
Flash(Stage3D)+NativeWindow
다음은 본론.
AIR 응용 프로그램에서 XML을 설명하는 initial Window에 다음 설정을 추가합니다.
<systemChrome>none</systemChrome>
<transparent>true</transparent>
<renderMode>direct</renderMode>
하지만 이렇게 되면 투명한 색이 투명해도 배경이 남는다.context3D.clear(1, 0, 1, 0);//アルファ0なのに表示されちゃう!
그림의 보라색 부분을 투명하게 하기를 원하는 부분입니다.
즉, 3D 드로잉은 배경 투명도만 표시합니다.
그래서 저는 3D를 Flash의 기존 Sprite에 복사해서 표시하는 방법을 생각합니다.
Context3D의 drawToBitmapData 방법을 사용하면 Bitmap 클래스에 그릴 수 있기 때문에 사용합니다.
비트맵 클래스의 경우 Stage에 addChild를 추가하여 표시할 수 있습니다.
1. 윈도 크기의 Bitmap 클래스를 addChild로 만듭니다.
var bitmap:Bitmap = new Bitmap(new BitmapData(stage.stageWidth, stage.stageHeight, true));
addChild(bitmap);
2. Stage 3D를 비활성화합니다.
나는 초기화는 보통과 같으면 된다고 생각한다.
그리기 전에 visible을 가짜로 설정합니다.
stage3D.visible = false;
3. 0으로 화면 지우기
context3D.clear(0, 0, 0, 0)
4. Bitmap에 3D 이미지를 그립니다.
context3D.drawToBitmapData(bitmap.bitmapData);
이렇게 하면 완성된다.가장 힘들었던 건 3번.
r:0, g:0, b:0, a:0이면 그려지지 않고 r:1, g:0, b:0, a:0이면 빨간색으로 변한다.α0
한 가지 방법으로는 믿기지 않지만, 먼저 Win7, 8, Mac로 배경이 투명하게!
샘플은 아래 URL을 통해서 살 수 있을 것 같아요.
Live 2D SDK 브로셔 "Flash로 데스크탑 마스코트 만들기"
https://sites.google.com/a/cybernoids.jp/cubism2/simple-app/desctopmascot
Reference
이 문제에 관하여(Flash(+Stage 3D)의 배경을 투명하게 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/asobot/items/e755f65091b0d9de208a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)