2.Convert the View Deformer, Set OpenGL

Convert the view Deformer ビューの座標変換

<Setting by the onDrawFrame method>
  1. gl.glViewport( 0 , 0 , deviceWidth , deviceHeight ) ;    // ・・・[1]
  2. gl.glMatrixMode( GL10.GL_PROJECTION ) ;                  // ・・・[2]
  3. gl.glLoadIdentity() ;                                    // ・・・[2]
  4.  
  5. float marginW = 0.5f * ( 2400 - 1800 ) ;                 // ・・・[3]
  6. visibleRect.x = (int)marginW ;                           // ・・・[4]
  7. visibleRect.y = 0 ;                                      // ・・・[4]
  8. visibleRect.width = (int)logicalW ;                      // ・・・[5]
  9. visibleRect.height = (int)logicalH ;                     // ・・・[5]
  10. gl.glOrthof(                                             // ・・・[6]
  11.         marginW ,
  12.         marginW + logicalW ,
  13.         logicalH ,
  14.         0 ,
  15.         0.5f ,  -0.5f
  16.         ) ;

[1] : Set the view port.
        The range you set here becomes the display range.
        Set deviceWidth and deviceHeight from the parameter of the onSurfaceChanged method.
[1]: ビューポートを設定します。
       ここで設定した範囲が表示範囲です。
       deviceWidth と deviceHeight は、 onSurfaceChanged メソッドの引数から設定します。

[2] : Set the matrix operation target as a projection matrix.
[2]:
 行列演算ターゲットを射影行列に設定します。

[3] : Set the value to convert the Deformer.
        marginW is a remainder from the canvas size of the Live2D model subtracted the space for drawing.
[3]: 座標変換のための値を設定します。
       marginW は、描画させるLive2Dモデル自体のキャンバスサイズから、描画させたい範囲を引いた余りです。

[4] : Set the value to convert the Deformer.
        Evaluate the point which is on the upper left of the Android device screen by visibleRect.x and visibleRect.y.
[4]: 座標変換のための値を設定します。
       visibleRect.x 、 visibleRect.y で、Android端末の画面左上になる点を求めます。

[5] : Set the value to convert the Deformer.
       Evaluate the point which is on the lower right of the screen by visibleRect.width and visibleRect.height.
[5]: 座標変換のための値を設定します。
       visibleRect.width 、 visibleRect.height で、画面右下の点を求めます。

[6] : Convert the Deformer.
[6]: 座標を変換します。


<Setting by the onSurfaceChanged method>
  1. this.deviceWidth = width ;                                      // ・・・[1]
  2. this.deviceHeight = height ;                                    // ・・・[1]
  3.  
  4. logicalW = 900 ;                                                // ・・・[2]
  5. logicalH = logicalW * this.deviceHeight / this.deviceWidth ;    // ・・・[2]

[1] : Retrive the screen size of the device from the parameter of the onSurfaceChanged method.
[1]: onSurfaceChanged メソッドの引数から、端末の画面サイズを取得します。

[2] : Adjust the canvas size of the Live2D model same as the screen size of the Android device.
[2]: 描画させる Live2D モデルのキャンバスサイズを、Android端末の画面サイズに合わせます。

・Set OpenGL

<Set by the onDrawFrame method>
  1. gl.glMatrixMode(GL10.GL_MODELVIEW ) ;                            // ・・・[1]
  2. gl.glLoadIdentity() ;                                            // ・・・[1]
  3. gl.glClear( GL10.GL_COLOR_BUFFER_BIT ) ;                         // ・・・[2]
  4. gl.glEnable( GL10.GL_BLEND ) ;                                   // ・・・[3]
  5. gl.glBlendFunc( GL10.GL_ONE , GL10.GL_ONE_MINUS_SRC_ALPHA ) ;    // ・・・[4]
  6. gl.glDisable( GL10.GL_DEPTH_TEST ) ;                             // ・・・[5]
  7. gl.glDisable( GL10.GL_CULL_FACE ) ;                              // ・・・[6]
*Add above after converting the view Deformer ※ビューの座標変換のあとに記述します。

[1] : Set the matrix operation target to the model view array.
[1]: 行列演算ターゲットをモデルビュー行列に設定します。

[2] : Clear the color buffer.
[2]: カラーバッファをクリアします。

[3] : Validate the blending.
[3]: ブレンドを有効にします。

[4] : Set the calculation method of blending to Alpha Blend.
        Make setting to draw the transparent part of Texture which is used for the Live2D model as transparent.
[4]: ブレンドの計算方式をアルファブレンドに設定します。
       Live2Dのモデルに使用しているテクスチャの透明部分を透明に描画するために設定します。

[5] : Invalidate the depth test.
[5]:
デプステストを無効にします。

[6] : Invalidate the culling.
[6]: カリングを無効にします。




Comments