private void OnCreated(object sender, OpenGL.GlControlEventArgs e) { // モデルをリソースから読み込む // 第2引数にファイル名からリソースを読み込む関数を与える Asset = new CubismAsset(@"hiyori_free_t06.model3.json", (string file_path) => { // リソースは拡張子を持たず、他のピリオドもアンダーバーに変換されるのでそれに応じて文字列を加工する // 普通、画像ファイルはBitmapとして読み込まれるが、resxファイルを編集してあるのでbyte[]として読み込まれる string file_name = Path.GetFileNameWithoutExtension(file_path); string resource_name = file_name.Replace('.', '_'); byte[] byte_array = (byte[])Hiyori.ResourceManager.GetObject(resource_name); return(new MemoryStream(byte_array)); }); // 自動まばたきを設定する // 自動まばたきで設定するパラメータはmodel3.json中にパラメータグループ"EyeBlink"で指定されている var eye_blink_controller = new CubismEyeBlink(Asset.ParameterGroups["EyeBlink"]); Asset.StartMotion(CubismAsset.MotionType.Effect, eye_blink_controller); // OpenGL.Netを使ったレンダラーを作成する Renderer = new CubismOpenGlNetRenderer(); RenderingManager = new CubismRenderingManager(Renderer, Asset); Timer = Stopwatch.StartNew(); }
public override void ApplyState() { base.ApplyState(); asset = Source.Asset; renderingManager = Source.RenderingManager; }
private void DisposeRenderer() { if (m_rendermgr != null) { m_rendermgr.Dispose(); m_rendermgr = null; } if (m_renderer != null) { m_renderer.Dispose(); m_renderer = null; } }
protected override void OnLoad(EventArgs e) { GL.ClearColor(0.0f, 0.5f, 0.5f, 1.0f); Asset = new CubismAsset(@"hiyori_free_t06.model3.json", (string file_path) => { string file_name = Path.GetFileNameWithoutExtension(file_path); string resource_name = file_name.Replace('.', '_'); byte[] byte_array = (byte[])Hiyori.ResourceManager.GetObject(resource_name); return(new MemoryStream(byte_array)); }); var eye_blink_controller = new CubismEyeBlink(Asset.ParameterGroups["EyeBlink"]); Asset.StartMotion(CubismAsset.MotionType.Effect, eye_blink_controller); Renderer = new CubismOpenTKRenderer(); RenderingManager = new CubismRenderingManager(Renderer, Asset); base.OnLoad(e); }
private void TryUpdateRenderer() { if (m_asset == null) { return; } if (m_gl == null) { return; } if (m_renderer != null) { return; } m_renderer = new CubismAvaloniaRenderer(m_gl); m_rendermgr = new CubismRenderingManager(m_renderer, m_asset); // !must be configured so for Avalonia m_renderer.UsePremultipliedAlpha = true; }