private void OnRender(object sender, OpenGL.GlControlEventArgs e) { GlControl gl_control = (GlControl)sender; if ((LastMotion == null) || (LastMotion.Finished == true)) { // モーションをランダムに再生する // 名前なしのモーショングループから0~9番のモーションを乱数で選ぶ var motion_group = Asset.MotionGroups[""]; int number = new Random().Next() % motion_group.Length; var motion = (CubismMotion)motion_group[number]; LastMotion = Asset.StartMotion(CubismAsset.MotionType.Base, motion, false); } // モデルを更新する var elapsed = Timer.Elapsed; Timer.Restart(); Asset.Update(elapsed.TotalSeconds); // モデルを描画する Gl.ClearColor(0.0f, 0.5f, 0.5f, 1.0f); Gl.Clear(ClearBufferMask.ColorBufferBit); Gl.Viewport(0, 0, gl_control.Width, gl_control.Height); Matrix mvp_matrix = DenseMatrix.CreateIdentity(4); mvp_matrix[0, 0] = 2.0f; mvp_matrix[1, 1] = 2.0f * gl_control.Width / gl_control.Height; RenderingManager.Draw(mvp_matrix); }