Logo
公開メンバ関数 | プロパティ | 全メンバ一覧
Yukar.Engine.MovieDecoder クラス

WebM動画のデコード進行を管理する共通ヘルパー MoviePlayer(ムービー再生コマンド)とSpriteManager.MovieSprite(イメージ表示コマンド)、 ImagePreview(エディタのプレビュー)で共通のデコード処理を提供します [詳解]

Yukar.Engine.MovieDecoder の継承関係図

公開メンバ関数

string GetBillboardShaderName (bool useLighting)
 板ポリゴン(BillboardChar)で動画を描画する際のシェーダ名を取得します(IsReadyになった後のみ有効) [詳解]
 
 MovieDecoder (Stream buf, Common.Resource.Movie sound3D=null)
 
void Advance (float elapsedTime, float volume)
 デコードを1フレーム進める 毎フレーム呼び出してください [詳解]
 
void SetAudioPosition (SharpKmyMath.Vector3 pos)
 3Dサウンドの音源の位置を設定する(2Dで再生している場合は何もしない) [詳解]
 
void Restart ()
 動画を最初から再生し直します(ループ再生用) [詳解]
 
void Dispose ()
 

プロパティ

Common.Resource.Texture tex [get]
 デコードされた動画フレームを保持するテクスチャ [詳解]
 
SharpKmyGfx.Texture nativeTex [get]
 デコードされた動画フレームを保持するネイティブテクスチャ(BillboardChar.setTexture等、 SharpKmyGfx.Textureを直接要求するAPI向け) [詳解]
 
Shader shd [get]
 カラーレンジに応じたYUV→RGB変換シェーダ(RGBの動画の場合はRGB用シェーダ) [詳解]
 
bool IsReady [get]
 動画のサイズが確定し再生準備が完了したかどうか [詳解]
 
bool IsFullRange [get]
 カラーレンジがフルレンジかどうか(IsReadyになった後のみ有効) [詳解]
 
bool HasAlpha [get]
 アルファチャンネル付きの動画かどうか(IsReadyになった後のみ有効) アルファ付きの場合、テクスチャは Y / U / V / アルファ を隙間なく縦積みした縦3倍で格納されます [詳解]
 
bool IsRgb [get]
 RGB(VP9 sRGB)の動画かどうか(IsReadyになった後のみ有効) RGBの場合、テクスチャは Y / U / V の代わりに G / B / R(いずれも映像と同じ大きさ)を縦積みした 縦3倍(アルファ付きは縦4倍)で格納され、YUV変換を行わないRGB用シェーダで描画します [詳解]
 
float PackedHeightScale [get]
 テクスチャの縦の大きさに対する映像1枚分の高さの比率(IsReadyになった後のみ有効) 板ポリゴン等でテクスチャ全体を貼る場合に、縦のスケールへ掛けて本来の縦横比に戻すために使います [詳解]
 
bool IsEndPlaying [get]
 動画再生が終了したかどうか [詳解]
 
int movieWidth [get]
 
int movieHeight [get]
 

詳解

WebM動画のデコード進行を管理する共通ヘルパー MoviePlayer(ムービー再生コマンド)とSpriteManager.MovieSprite(イメージ表示コマンド)、 ImagePreview(エディタのプレビュー)で共通のデコード処理を提供します

構築子と解体子

◆ MovieDecoder()

Yukar.Engine.MovieDecoder.MovieDecoder ( Stream  buf,
Common.Resource.Movie  sound3D = null 
)
引数
buf動画データ
sound3D3Dサウンドとして再生する場合はその設定を持つムービーリソースを渡す (Use3DSoundがfalseのリソースやnullの場合は2Dで再生する) 3Dの場合はSetAudioPosition()で位置が設定されるまで音は鳴らない

メソッド詳解

◆ Advance()

void Yukar.Engine.MovieDecoder.Advance ( float  elapsedTime,
float  volume 
)

デコードを1フレーム進める 毎フレーム呼び出してください

引数
elapsedTime経過時間
volume音量(1で元の音の大きさ。1より大きい値は増幅)

◆ Dispose()

void Yukar.Engine.MovieDecoder.Dispose ( )

◆ GetBillboardShaderName()

string Yukar.Engine.MovieDecoder.GetBillboardShaderName ( bool  useLighting)

板ポリゴン(BillboardChar)で動画を描画する際のシェーダ名を取得します(IsReadyになった後のみ有効)

引数
useLightingライティングを行うシェーダにするかどうか

◆ Restart()

void Yukar.Engine.MovieDecoder.Restart ( )

動画を最初から再生し直します(ループ再生用)

◆ SetAudioPosition()

void Yukar.Engine.MovieDecoder.SetAudioPosition ( SharpKmyMath.Vector3  pos)

3Dサウンドの音源の位置を設定する(2Dで再生している場合は何もしない)

プロパティ詳解

◆ HasAlpha

bool Yukar.Engine.MovieDecoder.HasAlpha
get

アルファチャンネル付きの動画かどうか(IsReadyになった後のみ有効) アルファ付きの場合、テクスチャは Y / U / V / アルファ を隙間なく縦積みした縦3倍で格納されます

◆ IsEndPlaying

bool Yukar.Engine.MovieDecoder.IsEndPlaying
get

動画再生が終了したかどうか

◆ IsFullRange

bool Yukar.Engine.MovieDecoder.IsFullRange
get

カラーレンジがフルレンジかどうか(IsReadyになった後のみ有効)

◆ IsReady

bool Yukar.Engine.MovieDecoder.IsReady
get

動画のサイズが確定し再生準備が完了したかどうか

◆ IsRgb

bool Yukar.Engine.MovieDecoder.IsRgb
get

RGB(VP9 sRGB)の動画かどうか(IsReadyになった後のみ有効) RGBの場合、テクスチャは Y / U / V の代わりに G / B / R(いずれも映像と同じ大きさ)を縦積みした 縦3倍(アルファ付きは縦4倍)で格納され、YUV変換を行わないRGB用シェーダで描画します

◆ movieHeight

int Yukar.Engine.MovieDecoder.movieHeight
get

◆ movieWidth

int Yukar.Engine.MovieDecoder.movieWidth
get

◆ nativeTex

SharpKmyGfx.Texture Yukar.Engine.MovieDecoder.nativeTex
get

デコードされた動画フレームを保持するネイティブテクスチャ(BillboardChar.setTexture等、 SharpKmyGfx.Textureを直接要求するAPI向け)

◆ PackedHeightScale

float Yukar.Engine.MovieDecoder.PackedHeightScale
get

テクスチャの縦の大きさに対する映像1枚分の高さの比率(IsReadyになった後のみ有効) 板ポリゴン等でテクスチャ全体を貼る場合に、縦のスケールへ掛けて本来の縦横比に戻すために使います

◆ shd

Shader Yukar.Engine.MovieDecoder.shd
get

カラーレンジに応じたYUV→RGB変換シェーダ(RGBの動画の場合はRGB用シェーダ)

◆ tex

Common.Resource.Texture Yukar.Engine.MovieDecoder.tex
get

デコードされた動画フレームを保持するテクスチャ