Upgrade to Cubism 4 Release R7.
authorAdrian Iain Lam <adrianiainlam@users.noreply.github.com>
Sun, 28 May 2023 07:44:54 +0000 (08:44 +0100)
committerAdrian Iain Lam <adrianiainlam@users.noreply.github.com>
Sun, 28 May 2023 07:44:54 +0000 (08:44 +0100)
README.md
example/build.sh
example/demo.patch
example/demo_win.patch
example/generate_patch.sh

index 1d3e5bc..488acde 100644 (file)
--- a/README.md
+++ b/README.md
@@ -71,17 +71,17 @@ if you don't have C++17 support.
 
 To build the example program:
 
 
 To build the example program:
 
-5. Download "Cubism 4 SDK for Native R6.2" from the Live2D website:
+5. Download "Cubism 4 SDK for Native R7" from the Live2D website:
    <https://www.live2d.com/en/download/cubism-sdk/download-native/>.
 
    <https://www.live2d.com/en/download/cubism-sdk/download-native/>.
 
-   Extract the archive -- put the "CubismSdkForNative-4-r.6.2" folder under
+   Extract the archive -- put the "CubismSdkForNative-4-r.7" folder under
    the "example" folder of this repo.
 
    Note: The Cubism SDK is the property of Live2D and is not part of this
    project. You must agree to Live2D's license agreements to use it.
 
 6. Go into the
    the "example" folder of this repo.
 
    Note: The Cubism SDK is the property of Live2D and is not part of this
    project. You must agree to Live2D's license agreements to use it.
 
 6. Go into the
-   "example/CubismSdkForNative-4-r.6.2/Samples/OpenGL/thirdParty/scripts"
+   "example/CubismSdkForNative-4-r.7/Samples/OpenGL/thirdParty/scripts"
    directory and run
 
        ./setup_glew_glfw
    directory and run
 
        ./setup_glew_glfw
index def739d..9a4b9b4 100755 (executable)
@@ -3,11 +3,11 @@
 mkdir -p demo_build
 
 if [ "$OSTYPE" = "msys" -o "$OSTYPE" = "cygwin" ]; then
 mkdir -p demo_build
 
 if [ "$OSTYPE" = "msys" -o "$OSTYPE" = "cygwin" ]; then
-    cp -r CubismSdkForNative-4-r.6.2/Samples/OpenGL/Demo/proj.win.cmake/* ./demo_build/
+    cp -r CubismSdkForNative-4-r.7/Samples/OpenGL/Demo/proj.win.cmake/* ./demo_build/
     patch -d demo_build -p2 < demo_win.patch
     echo "Now go into ./demo_build/scripts and run the corresponding script for your MSVC version"
 else
     patch -d demo_build -p2 < demo_win.patch
     echo "Now go into ./demo_build/scripts and run the corresponding script for your MSVC version"
 else
-    cp -r CubismSdkForNative-4-r.6.2/Samples/OpenGL/Demo/proj.linux.cmake/* ./demo_build/
+    cp -r CubismSdkForNative-4-r.7/Samples/OpenGL/Demo/proj.linux.cmake/* ./demo_build/
     patch -d demo_build -p2 < demo.patch
     ./demo_build/scripts/make_gcc
 fi
     patch -d demo_build -p2 < demo.patch
     ./demo_build/scripts/make_gcc
 fi
index a721b0f..2991c11 100644 (file)
@@ -1,12 +1,12 @@
 diff -pruN --exclude build ./demo_clean/CMakeLists.txt ./demo_dev/CMakeLists.txt
 diff -pruN --exclude build ./demo_clean/CMakeLists.txt ./demo_dev/CMakeLists.txt
---- ./demo_clean/CMakeLists.txt        2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/CMakeLists.txt  2022-10-11 20:18:15.217358999 +0100
+--- ./demo_clean/CMakeLists.txt        2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/CMakeLists.txt  2023-05-28 08:11:25.750067591 +0100
 @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.16)
  # Set app name.
  set(APP_NAME Demo)
  # Set directory paths.
 -set(SDK_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../..)
 @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.16)
  # Set app name.
  set(APP_NAME Demo)
  # Set directory paths.
 -set(SDK_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../..)
-+set(SDK_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../CubismSdkForNative-4-r.6.2)
++set(SDK_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../CubismSdkForNative-4-r.7)
  set(CORE_PATH ${SDK_ROOT_PATH}/Core)
  set(FRAMEWORK_PATH ${SDK_ROOT_PATH}/Framework)
  set(THIRD_PARTY_PATH ${SDK_ROOT_PATH}/Samples/OpenGL/thirdParty)
  set(CORE_PATH ${SDK_ROOT_PATH}/Core)
  set(FRAMEWORK_PATH ${SDK_ROOT_PATH}/Framework)
  set(THIRD_PARTY_PATH ${SDK_ROOT_PATH}/Samples/OpenGL/thirdParty)
@@ -43,8 +43,8 @@ diff -pruN --exclude build ./demo_clean/CMakeLists.txt ./demo_dev/CMakeLists.txt
  # Copy resource directory to build directory.
  add_custom_command(
 diff -pruN --exclude build ./demo_clean/scripts/make_gcc ./demo_dev/scripts/make_gcc
  # Copy resource directory to build directory.
  add_custom_command(
 diff -pruN --exclude build ./demo_clean/scripts/make_gcc ./demo_dev/scripts/make_gcc
---- ./demo_clean/scripts/make_gcc      2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/scripts/make_gcc        2021-05-29 02:04:17.338257917 +0100
+--- ./demo_clean/scripts/make_gcc      2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/scripts/make_gcc        2023-05-28 08:11:25.750067591 +0100
 @@ -5,41 +5,9 @@ set -ue
  SCRIPT_PATH=$(cd $(dirname $0) && pwd)
  CMAKE_PATH=$SCRIPT_PATH/..
 @@ -5,41 +5,9 @@ set -ue
  SCRIPT_PATH=$(cd $(dirname $0) && pwd)
  CMAKE_PATH=$SCRIPT_PATH/..
@@ -90,8 +90,8 @@ diff -pruN --exclude build ./demo_clean/scripts/make_gcc ./demo_dev/scripts/make
 +  -D CMAKE_BUILD_TYPE=Release
 +cd "$BUILD_PATH" && make -j4
 diff -pruN --exclude build ./demo_clean/src/CMakeLists.txt ./demo_dev/src/CMakeLists.txt
 +  -D CMAKE_BUILD_TYPE=Release
 +cd "$BUILD_PATH" && make -j4
 diff -pruN --exclude build ./demo_clean/src/CMakeLists.txt ./demo_dev/src/CMakeLists.txt
---- ./demo_clean/src/CMakeLists.txt    2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/src/CMakeLists.txt      2021-04-28 11:49:43.166296000 +0100
+--- ./demo_clean/src/CMakeLists.txt    2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/CMakeLists.txt      2023-05-28 08:11:25.750067591 +0100
 @@ -1,49 +1,22 @@
 -if (CSM_MINIMUM_DEMO)
 -  target_sources(${APP_NAME}
 @@ -1,49 +1,22 @@
 -if (CSM_MINIMUM_DEMO)
 -  target_sources(${APP_NAME}
@@ -156,8 +156,8 @@ diff -pruN --exclude build ./demo_clean/src/CMakeLists.txt ./demo_dev/src/CMakeL
 +    ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
 +)
 diff -pruN --exclude build ./demo_clean/src/LAppDelegate.cpp ./demo_dev/src/LAppDelegate.cpp
 +    ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
 +)
 diff -pruN --exclude build ./demo_clean/src/LAppDelegate.cpp ./demo_dev/src/LAppDelegate.cpp
---- ./demo_clean/src/LAppDelegate.cpp  2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/src/LAppDelegate.cpp    2021-04-28 11:49:43.166296000 +0100
+--- ./demo_clean/src/LAppDelegate.cpp  2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppDelegate.cpp    2023-05-28 08:11:25.750067591 +0100
 @@ -45,7 +45,8 @@ void LAppDelegate::ReleaseInstance()
      s_instance = NULL;
  }
 @@ -45,7 +45,8 @@ void LAppDelegate::ReleaseInstance()
      s_instance = NULL;
  }
@@ -300,8 +300,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppDelegate.cpp ./demo_dev/src/LApp
  
  Csm::csmVector<string> LAppDelegate::Split(const std::string& baseString, char delimiter)
 diff -pruN --exclude build ./demo_clean/src/LAppDelegate.hpp ./demo_dev/src/LAppDelegate.hpp
  
  Csm::csmVector<string> LAppDelegate::Split(const std::string& baseString, char delimiter)
 diff -pruN --exclude build ./demo_clean/src/LAppDelegate.hpp ./demo_dev/src/LAppDelegate.hpp
---- ./demo_clean/src/LAppDelegate.hpp  2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/src/LAppDelegate.hpp    2021-04-28 11:49:43.166296000 +0100
+--- ./demo_clean/src/LAppDelegate.hpp  2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppDelegate.hpp    2023-05-28 08:11:25.754067666 +0100
 @@ -40,7 +40,8 @@ public:
      /**
      * @brief   APPに必要なものを初期化する。
 @@ -40,7 +40,8 @@ public:
      /**
      * @brief   APPに必要なものを初期化する。
@@ -376,8 +376,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppDelegate.hpp ./demo_dev/src/LApp
 -
 -};
 diff -pruN --exclude build ./demo_clean/src/LAppLive2DManager.cpp ./demo_dev/src/LAppLive2DManager.cpp
 -
 -};
 diff -pruN --exclude build ./demo_clean/src/LAppLive2DManager.cpp ./demo_dev/src/LAppLive2DManager.cpp
---- ./demo_clean/src/LAppLive2DManager.cpp     2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/src/LAppLive2DManager.cpp       2022-10-11 20:23:29.310727507 +0100
+--- ./demo_clean/src/LAppLive2DManager.cpp     2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppLive2DManager.cpp       2023-05-28 08:11:25.754067666 +0100
 @@ -52,11 +52,11 @@ void LAppLive2DManager::ReleaseInstance(
  
  LAppLive2DManager::LAppLive2DManager()
 @@ -52,11 +52,11 @@ void LAppLive2DManager::ReleaseInstance(
  
  LAppLive2DManager::LAppLive2DManager()
@@ -516,8 +516,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppLive2DManager.cpp ./demo_dev/src
 +    _translateY = translateY;
 +}
 diff -pruN --exclude build ./demo_clean/src/LAppLive2DManager.hpp ./demo_dev/src/LAppLive2DManager.hpp
 +    _translateY = translateY;
 +}
 diff -pruN --exclude build ./demo_clean/src/LAppLive2DManager.hpp ./demo_dev/src/LAppLive2DManager.hpp
---- ./demo_clean/src/LAppLive2DManager.hpp     2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/src/LAppLive2DManager.hpp       2021-04-28 11:49:43.166296000 +0100
+--- ./demo_clean/src/LAppLive2DManager.hpp     2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppLive2DManager.hpp       2023-05-28 08:11:25.750067591 +0100
 @@ -6,12 +6,15 @@
   */
  #pragma once
 @@ -6,12 +6,15 @@
   */
  #pragma once
@@ -595,8 +595,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppLive2DManager.hpp ./demo_dev/src
 +    float _translateY;
  };
 diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppModel.cpp
 +    float _translateY;
  };
 diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppModel.cpp
---- ./demo_clean/src/LAppModel.cpp     2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/src/LAppModel.cpp       2021-04-28 11:49:43.166296000 +0100
+--- ./demo_clean/src/LAppModel.cpp     2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppModel.cpp       2023-05-28 08:18:01.721395676 +0100
 @@ -21,6 +21,8 @@
  #include "LAppTextureManager.hpp"
  #include "LAppDelegate.hpp"
 @@ -21,6 +21,8 @@
  #include "LAppTextureManager.hpp"
  #include "LAppDelegate.hpp"
@@ -713,7 +713,7 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
      //Layout
      csmMap<csmString, csmFloat32> layout;
      _modelSetting->GetLayoutMap(layout);
      //Layout
      csmMap<csmString, csmFloat32> layout;
      _modelSetting->GetLayoutMap(layout);
-@@ -347,59 +306,57 @@ void LAppModel::Update()
+@@ -347,62 +306,57 @@ void LAppModel::Update()
      const csmFloat32 deltaTimeSeconds = LAppPal::GetDeltaTime();
      _userTimeSeconds += deltaTimeSeconds;
  
      const csmFloat32 deltaTimeSeconds = LAppPal::GetDeltaTime();
      _userTimeSeconds += deltaTimeSeconds;
  
@@ -741,6 +741,9 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
 +        auto idMan = CubismFramework::GetIdManager();
 +        auto params = _detector->getParams();
  
 +        auto idMan = CubismFramework::GetIdManager();
 +        auto params = _detector->getParams();
  
+-    // 不透明度
+-    _opacity = _model->GetModelOpacity();
+-
 -    // まばたき
 -    if (!motionUpdated)
 -    {
 -    // まばたき
 -    if (!motionUpdated)
 -    {
@@ -818,7 +821,7 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
      }
  
      // 物理演算の設定
      }
  
      // 物理演算の設定
-@@ -408,22 +365,6 @@ void LAppModel::Update()
+@@ -411,22 +365,6 @@ void LAppModel::Update()
          _physics->Evaluate(_model, deltaTimeSeconds);
      }
  
          _physics->Evaluate(_model, deltaTimeSeconds);
      }
  
@@ -841,7 +844,7 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
      // ポーズの設定
      if (_pose != NULL)
      {
      // ポーズの設定
      if (_pose != NULL)
      {
-@@ -492,7 +433,6 @@ CubismMotionQueueEntryHandle LAppModel::
+@@ -495,7 +433,6 @@ CubismMotionQueueEntryHandle LAppModel::
      {
          csmString path = voice;
          path = _modelHomeDir + path;
      {
          csmString path = voice;
          path = _modelHomeDir + path;
@@ -849,7 +852,7 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
      }
  
      if (_debugMode)
      }
  
      if (_debugMode)
-@@ -644,3 +584,37 @@ Csm::Rendering::CubismOffscreenFrame_Ope
+@@ -647,3 +584,37 @@ Csm::Rendering::CubismOffscreenFrame_Ope
  {
      return _renderBuffer;
  }
  {
      return _renderBuffer;
  }
@@ -888,8 +891,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
 +}
 +
 diff -pruN --exclude build ./demo_clean/src/LAppModel.hpp ./demo_dev/src/LAppModel.hpp
 +}
 +
 diff -pruN --exclude build ./demo_clean/src/LAppModel.hpp ./demo_dev/src/LAppModel.hpp
---- ./demo_clean/src/LAppModel.hpp     2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/src/LAppModel.hpp       2021-04-28 11:49:43.166296000 +0100
+--- ./demo_clean/src/LAppModel.hpp     2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppModel.hpp       2023-05-28 08:11:25.754067666 +0100
 @@ -13,7 +13,7 @@
  #include <Type/csmRectF.hpp>
  #include <Rendering/OpenGL/CubismOffscreenSurface_OpenGLES2.hpp>
 @@ -13,7 +13,7 @@
  #include <Type/csmRectF.hpp>
  #include <Rendering/OpenGL/CubismOffscreenSurface_OpenGLES2.hpp>
@@ -957,8 +960,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.hpp ./demo_dev/src/LAppMod
  
  
 diff -pruN --exclude build ./demo_clean/src/LAppPal.cpp ./demo_dev/src/LAppPal.cpp
  
  
 diff -pruN --exclude build ./demo_clean/src/LAppPal.cpp ./demo_dev/src/LAppPal.cpp
---- ./demo_clean/src/LAppPal.cpp       2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/src/LAppPal.cpp 2021-04-28 11:49:43.170296000 +0100
+--- ./demo_clean/src/LAppPal.cpp       2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppPal.cpp 2023-05-28 08:11:25.750067591 +0100
 @@ -6,6 +6,7 @@
   */
  
 @@ -6,6 +6,7 @@
   */
  
@@ -980,8 +983,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppPal.cpp ./demo_dev/src/LAppPal.c
      }
      file.read(buf, size);
 diff -pruN --exclude build ./demo_clean/src/LAppTextureManager.cpp ./demo_dev/src/LAppTextureManager.cpp
      }
      file.read(buf, size);
 diff -pruN --exclude build ./demo_clean/src/LAppTextureManager.cpp ./demo_dev/src/LAppTextureManager.cpp
---- ./demo_clean/src/LAppTextureManager.cpp    2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/src/LAppTextureManager.cpp      2021-04-28 11:49:43.178296000 +0100
+--- ./demo_clean/src/LAppTextureManager.cpp    2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppTextureManager.cpp      2023-05-28 08:11:25.754067666 +0100
 @@ -96,6 +96,46 @@ LAppTextureManager::TextureInfo* LAppTex
  
  }
 @@ -96,6 +96,46 @@ LAppTextureManager::TextureInfo* LAppTex
  
  }
@@ -1030,8 +1033,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppTextureManager.cpp ./demo_dev/sr
  {
      for (Csm::csmUint32 i = 0; i < _textures.GetSize(); i++)
 diff -pruN --exclude build ./demo_clean/src/LAppTextureManager.hpp ./demo_dev/src/LAppTextureManager.hpp
  {
      for (Csm::csmUint32 i = 0; i < _textures.GetSize(); i++)
 diff -pruN --exclude build ./demo_clean/src/LAppTextureManager.hpp ./demo_dev/src/LAppTextureManager.hpp
---- ./demo_clean/src/LAppTextureManager.hpp    2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/src/LAppTextureManager.hpp      2021-04-28 11:49:43.178296000 +0100
+--- ./demo_clean/src/LAppTextureManager.hpp    2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppTextureManager.hpp      2023-05-28 08:11:25.750067591 +0100
 @@ -72,6 +72,8 @@ public:
      */
      TextureInfo* CreateTextureFromPngFile(std::string fileName);
 @@ -72,6 +72,8 @@ public:
      */
      TextureInfo* CreateTextureFromPngFile(std::string fileName);
@@ -1042,8 +1045,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppTextureManager.hpp ./demo_dev/sr
      * @brief 画像の解放
      *
 diff -pruN --exclude build ./demo_clean/src/LAppView.cpp ./demo_dev/src/LAppView.cpp
      * @brief 画像の解放
      *
 diff -pruN --exclude build ./demo_clean/src/LAppView.cpp ./demo_dev/src/LAppView.cpp
---- ./demo_clean/src/LAppView.cpp      2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/src/LAppView.cpp        2021-04-28 11:49:43.178296000 +0100
+--- ./demo_clean/src/LAppView.cpp      2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppView.cpp        2023-05-28 08:11:25.750067591 +0100
 @@ -13,7 +13,6 @@
  #include "LAppLive2DManager.hpp"
  #include "LAppTextureManager.hpp"
 @@ -13,7 +13,6 @@
  #include "LAppLive2DManager.hpp"
  #include "LAppTextureManager.hpp"
@@ -1219,8 +1222,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppView.cpp ./demo_dev/src/LAppView
 -    }
  }
 diff -pruN --exclude build ./demo_clean/src/LAppView.hpp ./demo_dev/src/LAppView.hpp
 -    }
  }
 diff -pruN --exclude build ./demo_clean/src/LAppView.hpp ./demo_dev/src/LAppView.hpp
---- ./demo_clean/src/LAppView.hpp      2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/src/LAppView.hpp        2021-04-28 11:49:43.178296000 +0100
+--- ./demo_clean/src/LAppView.hpp      2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppView.hpp        2023-05-28 08:11:25.750067591 +0100
 @@ -14,7 +14,6 @@
  #include "CubismFramework.hpp"
  #include <Rendering/OpenGL/CubismOffscreenSurface_OpenGLES2.hpp>
 @@ -14,7 +14,6 @@
  #include "CubismFramework.hpp"
  #include <Rendering/OpenGL/CubismOffscreenSurface_OpenGLES2.hpp>
@@ -1275,8 +1278,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppView.hpp ./demo_dev/src/LAppView
      // レンダリング先を別ターゲットにする方式の場合に使用
      LAppSprite* _renderSprite;                                  ///< モードによっては_renderBufferのテクスチャを描画
 diff -pruN --exclude build ./demo_clean/src/main.cpp ./demo_dev/src/main.cpp
      // レンダリング先を別ターゲットにする方式の場合に使用
      LAppSprite* _renderSprite;                                  ///< モードによっては_renderBufferのテクスチャを描画
 diff -pruN --exclude build ./demo_clean/src/main.cpp ./demo_dev/src/main.cpp
---- ./demo_clean/src/main.cpp  2022-09-14 12:08:43.000000000 +0100
-+++ ./demo_dev/src/main.cpp    2021-04-28 11:49:43.178296000 +0100
+--- ./demo_clean/src/main.cpp  2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/main.cpp    2023-05-28 08:11:25.750067591 +0100
 @@ -5,18 +5,162 @@
   * that can be found at https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html.
   */
 @@ -5,18 +5,162 @@
   * that can be found at https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html.
   */
index 688bec7..9a80fbe 100644 (file)
@@ -1,12 +1,12 @@
 diff -pruN --exclude build ./demo_clean/CMakeLists.txt ./demo_dev/CMakeLists.txt
 diff -pruN --exclude build ./demo_clean/CMakeLists.txt ./demo_dev/CMakeLists.txt
---- ./demo_clean/CMakeLists.txt        2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/CMakeLists.txt  2023-03-05 23:22:10.756801200 +0000
+--- ./demo_clean/CMakeLists.txt        2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/CMakeLists.txt  2023-05-28 08:28:27.492813451 +0100
 @@ -9,7 +9,7 @@ option(
  # Set app name.
  set(APP_NAME Demo)
  # Set directory paths.
 -set(SDK_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../..)
 @@ -9,7 +9,7 @@ option(
  # Set app name.
  set(APP_NAME Demo)
  # Set directory paths.
 -set(SDK_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../..)
-+set(SDK_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../CubismSdkForNative-4-r.6.2)
++set(SDK_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../CubismSdkForNative-4-r.7)
  set(CORE_PATH ${SDK_ROOT_PATH}/Core)
  set(FRAMEWORK_PATH ${SDK_ROOT_PATH}/Framework)
  set(THIRD_PARTY_PATH ${SDK_ROOT_PATH}/Samples/OpenGL/thirdParty)
  set(CORE_PATH ${SDK_ROOT_PATH}/Core)
  set(FRAMEWORK_PATH ${SDK_ROOT_PATH}/Framework)
  set(THIRD_PARTY_PATH ${SDK_ROOT_PATH}/Samples/OpenGL/thirdParty)
@@ -46,8 +46,8 @@ diff -pruN --exclude build ./demo_clean/CMakeLists.txt ./demo_dev/CMakeLists.txt
  target_compile_options(${APP_NAME} PRIVATE /MP)
  
 diff -pruN --exclude build ./demo_clean/src/CMakeLists.txt ./demo_dev/src/CMakeLists.txt
  target_compile_options(${APP_NAME} PRIVATE /MP)
  
 diff -pruN --exclude build ./demo_clean/src/CMakeLists.txt ./demo_dev/src/CMakeLists.txt
---- ./demo_clean/src/CMakeLists.txt    2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/CMakeLists.txt      2023-03-05 23:22:10.976777100 +0000
+--- ./demo_clean/src/CMakeLists.txt    2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/CMakeLists.txt      2023-05-28 08:28:27.492813451 +0100
 @@ -1,49 +1,22 @@
 -if (CSM_MINIMUM_DEMO)
 -  target_sources(${APP_NAME}
 @@ -1,49 +1,22 @@
 -if (CSM_MINIMUM_DEMO)
 -  target_sources(${APP_NAME}
@@ -112,8 +112,8 @@ diff -pruN --exclude build ./demo_clean/src/CMakeLists.txt ./demo_dev/src/CMakeL
 +    ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
 +)
 diff -pruN --exclude build ./demo_clean/src/CubismUserModelExtend.cpp ./demo_dev/src/CubismUserModelExtend.cpp
 +    ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
 +)
 diff -pruN --exclude build ./demo_clean/src/CubismUserModelExtend.cpp ./demo_dev/src/CubismUserModelExtend.cpp
---- ./demo_clean/src/CubismUserModelExtend.cpp 2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/CubismUserModelExtend.cpp   2023-03-05 23:22:10.780128700 +0000
+--- ./demo_clean/src/CubismUserModelExtend.cpp 2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/CubismUserModelExtend.cpp   2023-05-28 08:28:27.492813451 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -301,8 +301,8 @@ diff -pruN --exclude build ./demo_clean/src/CubismUserModelExtend.cpp ./demo_dev
      if (_physics)
      {
 diff -pruN --exclude build ./demo_clean/src/CubismUserModelExtend.hpp ./demo_dev/src/CubismUserModelExtend.hpp
      if (_physics)
      {
 diff -pruN --exclude build ./demo_clean/src/CubismUserModelExtend.hpp ./demo_dev/src/CubismUserModelExtend.hpp
---- ./demo_clean/src/CubismUserModelExtend.hpp 2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/CubismUserModelExtend.hpp   2023-03-05 23:22:10.986750400 +0000
+--- ./demo_clean/src/CubismUserModelExtend.hpp 2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/CubismUserModelExtend.hpp   2023-05-28 08:28:27.492813451 +0100
 @@ -27,17 +27,13 @@ class CubismUserModelExtend :
  {
  public:
 @@ -27,17 +27,13 @@ class CubismUserModelExtend :
  {
  public:
@@ -372,8 +372,8 @@ diff -pruN --exclude build ./demo_clean/src/CubismUserModelExtend.hpp ./demo_dev
  
      /**
 diff -pruN --exclude build ./demo_clean/src/LAppAllocator.cpp ./demo_dev/src/LAppAllocator.cpp
  
      /**
 diff -pruN --exclude build ./demo_clean/src/LAppAllocator.cpp ./demo_dev/src/LAppAllocator.cpp
---- ./demo_clean/src/LAppAllocator.cpp 2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppAllocator.cpp   2023-03-05 23:22:10.847976000 +0000
+--- ./demo_clean/src/LAppAllocator.cpp 2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppAllocator.cpp   2023-05-28 08:28:27.492813451 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -390,8 +390,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppAllocator.cpp ./demo_dev/src/LAp
      return malloc(size);
  }
 diff -pruN --exclude build ./demo_clean/src/LAppAllocator.hpp ./demo_dev/src/LAppAllocator.hpp
      return malloc(size);
  }
 diff -pruN --exclude build ./demo_clean/src/LAppAllocator.hpp ./demo_dev/src/LAppAllocator.hpp
---- ./demo_clean/src/LAppAllocator.hpp 2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppAllocator.hpp   2023-03-05 23:22:10.953083600 +0000
+--- ./demo_clean/src/LAppAllocator.hpp 2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppAllocator.hpp   2023-05-28 08:28:27.492813451 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -399,8 +399,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppAllocator.hpp ./demo_dev/src/LAp
   *
   * Use of this source code is governed by the Live2D Open Software license
 diff -pruN --exclude build ./demo_clean/src/LAppDefine.cpp ./demo_dev/src/LAppDefine.cpp
   *
   * Use of this source code is governed by the Live2D Open Software license
 diff -pruN --exclude build ./demo_clean/src/LAppDefine.cpp ./demo_dev/src/LAppDefine.cpp
---- ./demo_clean/src/LAppDefine.cpp    2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppDefine.cpp      2023-03-05 23:22:10.995458800 +0000
+--- ./demo_clean/src/LAppDefine.cpp    2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppDefine.cpp      2023-05-28 08:28:27.496813523 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -417,8 +417,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppDefine.cpp ./demo_dev/src/LAppDe
      const csmFloat32 ViewLogicalMaxLeft = -2.0f;
      const csmFloat32 ViewLogicalMaxRight = 2.0f;
 diff -pruN --exclude build ./demo_clean/src/LAppDefine.hpp ./demo_dev/src/LAppDefine.hpp
      const csmFloat32 ViewLogicalMaxLeft = -2.0f;
      const csmFloat32 ViewLogicalMaxRight = 2.0f;
 diff -pruN --exclude build ./demo_clean/src/LAppDefine.hpp ./demo_dev/src/LAppDefine.hpp
---- ./demo_clean/src/LAppDefine.hpp    2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppDefine.hpp      2023-03-05 23:22:10.947784100 +0000
+--- ./demo_clean/src/LAppDefine.hpp    2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppDefine.hpp      2023-05-28 08:28:27.496813523 +0100
 @@ -1,9 +1,10 @@
 -/**
 +/**
 @@ -1,9 +1,10 @@
 -/**
 +/**
@@ -432,8 +432,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppDefine.hpp ./demo_dev/src/LAppDe
  
  #include <CubismFramework.hpp>
 diff -pruN --exclude build ./demo_clean/src/LAppDelegate.cpp ./demo_dev/src/LAppDelegate.cpp
  
  #include <CubismFramework.hpp>
 diff -pruN --exclude build ./demo_clean/src/LAppDelegate.cpp ./demo_dev/src/LAppDelegate.cpp
---- ./demo_clean/src/LAppDelegate.cpp  2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppDelegate.cpp    2023-03-05 23:22:10.975780100 +0000
+--- ./demo_clean/src/LAppDelegate.cpp  2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppDelegate.cpp    2023-05-28 08:28:27.496813523 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -662,8 +662,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppDelegate.cpp ./demo_dev/src/LApp
 +    return elems;
  }
 diff -pruN --exclude build ./demo_clean/src/LAppDelegate.hpp ./demo_dev/src/LAppDelegate.hpp
 +    return elems;
  }
 diff -pruN --exclude build ./demo_clean/src/LAppDelegate.hpp ./demo_dev/src/LAppDelegate.hpp
---- ./demo_clean/src/LAppDelegate.hpp  2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppDelegate.hpp    2023-03-05 23:22:10.789104800 +0000
+--- ./demo_clean/src/LAppDelegate.hpp  2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppDelegate.hpp    2023-05-28 08:28:27.496813523 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -802,8 +802,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppDelegate.hpp ./demo_dev/src/LApp
 -
 -};
 diff -pruN --exclude build ./demo_clean/src/LAppLive2DManager.cpp ./demo_dev/src/LAppLive2DManager.cpp
 -
 -};
 diff -pruN --exclude build ./demo_clean/src/LAppLive2DManager.cpp ./demo_dev/src/LAppLive2DManager.cpp
---- ./demo_clean/src/LAppLive2DManager.cpp     2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppLive2DManager.cpp       2023-03-05 23:22:10.967799000 +0000
+--- ./demo_clean/src/LAppLive2DManager.cpp     2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppLive2DManager.cpp       2023-05-28 08:28:27.496813523 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -984,8 +984,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppLive2DManager.cpp ./demo_dev/src
 +    _translateY = translateY;
 +}
 diff -pruN --exclude build ./demo_clean/src/LAppLive2DManager.hpp ./demo_dev/src/LAppLive2DManager.hpp
 +    _translateY = translateY;
 +}
 diff -pruN --exclude build ./demo_clean/src/LAppLive2DManager.hpp ./demo_dev/src/LAppLive2DManager.hpp
---- ./demo_clean/src/LAppLive2DManager.hpp     2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppLive2DManager.hpp       2023-03-05 23:22:10.829032000 +0000
+--- ./demo_clean/src/LAppLive2DManager.hpp     2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppLive2DManager.hpp       2023-05-28 08:28:27.496813523 +0100
 @@ -1,18 +1,20 @@
 -/**
 +/**
 @@ -1,18 +1,20 @@
 -/**
 +/**
@@ -1070,8 +1070,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppLive2DManager.hpp ./demo_dev/src
 +    float _translateY;
  };
 diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppModel.cpp
 +    float _translateY;
  };
 diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppModel.cpp
---- ./demo_clean/src/LAppModel.cpp     2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppModel.cpp       2023-03-05 23:22:10.797100200 +0000
+--- ./demo_clean/src/LAppModel.cpp     2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppModel.cpp       2023-05-28 08:34:09.047010843 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -1087,7 +1087,7 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
  using namespace Live2D::Cubism::Framework;
  using namespace Live2D::Cubism::Framework::DefaultParameterId;
  using namespace LAppDefine;
  using namespace Live2D::Cubism::Framework;
  using namespace Live2D::Cubism::Framework::DefaultParameterId;
  using namespace LAppDefine;
-@@ -45,22 +47,24 @@ namespace {
+@@ -45,10 +47,12 @@ namespace {
      }
  }
  
      }
  }
  
@@ -1099,8 +1099,9 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
 +    , _detector(nullptr)
 +    , _useOldParamId(useOldParamId)
  {
 +    , _detector(nullptr)
 +    , _useOldParamId(useOldParamId)
  {
-     if (DebugLogEnable)
+     if (MocConsistencyValidationEnable)
      {
      {
+@@ -60,12 +64,12 @@ LAppModel::LAppModel()
          _debugMode = true;
      }
  
          _debugMode = true;
      }
  
@@ -1119,7 +1120,7 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
  }
  
  LAppModel::~LAppModel()
  }
  
  LAppModel::~LAppModel()
-@@ -96,12 +100,6 @@ void LAppModel::LoadAssets(const csmChar
+@@ -101,12 +105,6 @@ void LAppModel::LoadAssets(const csmChar
  
      SetupModel(setting);
  
  
      SetupModel(setting);
  
@@ -1132,7 +1133,7 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
      CreateRenderer();
  
      SetupTextures();
      CreateRenderer();
  
      SetupTextures();
-@@ -134,30 +132,6 @@ void LAppModel::SetupModel(ICubismModelS
+@@ -138,30 +136,6 @@ void LAppModel::SetupModel(ICubismModelS
          DeleteBuffer(buffer, path.GetRawString());
      }
  
          DeleteBuffer(buffer, path.GetRawString());
      }
  
@@ -1163,7 +1164,7 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
      //Physics
      if (strcmp(_modelSetting->GetPhysicsFileName(), "") != 0)
      {
      //Physics
      if (strcmp(_modelSetting->GetPhysicsFileName(), "") != 0)
      {
-@@ -196,7 +170,7 @@ void LAppModel::SetupModel(ICubismModelS
+@@ -200,7 +174,7 @@ void LAppModel::SetupModel(ICubismModelS
          breathParameters.PushBack(CubismBreath::BreathParameterData(_idParamAngleY, 0.0f, 8.0f, 3.5345f, 0.5f));
          breathParameters.PushBack(CubismBreath::BreathParameterData(_idParamAngleZ, 0.0f, 10.0f, 5.5345f, 0.5f));
          breathParameters.PushBack(CubismBreath::BreathParameterData(_idParamBodyAngleX, 0.0f, 4.0f, 15.5345f, 0.5f));
          breathParameters.PushBack(CubismBreath::BreathParameterData(_idParamAngleY, 0.0f, 8.0f, 3.5345f, 0.5f));
          breathParameters.PushBack(CubismBreath::BreathParameterData(_idParamAngleZ, 0.0f, 10.0f, 5.5345f, 0.5f));
          breathParameters.PushBack(CubismBreath::BreathParameterData(_idParamBodyAngleX, 0.0f, 4.0f, 15.5345f, 0.5f));
@@ -1172,7 +1173,7 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
  
          _breath->SetParameters(breathParameters);
      }
  
          _breath->SetParameters(breathParameters);
      }
-@@ -220,21 +194,6 @@ void LAppModel::SetupModel(ICubismModelS
+@@ -224,21 +198,6 @@ void LAppModel::SetupModel(ICubismModelS
          }
      }
  
          }
      }
  
@@ -1194,7 +1195,7 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
      //Layout
      csmMap<csmString, csmFloat32> layout;
      _modelSetting->GetLayoutMap(layout);
      //Layout
      csmMap<csmString, csmFloat32> layout;
      _modelSetting->GetLayoutMap(layout);
-@@ -347,59 +306,57 @@ void LAppModel::Update()
+@@ -351,62 +310,57 @@ void LAppModel::Update()
      const csmFloat32 deltaTimeSeconds = LAppPal::GetDeltaTime();
      _userTimeSeconds += deltaTimeSeconds;
  
      const csmFloat32 deltaTimeSeconds = LAppPal::GetDeltaTime();
      _userTimeSeconds += deltaTimeSeconds;
  
@@ -1208,13 +1209,13 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
 -    //-----------------------------------------------------------------
 -    _model->LoadParameters(); // 前回セーブされた状態をロード
 -    if (_motionManager->IsFinished())
 -    //-----------------------------------------------------------------
 -    _model->LoadParameters(); // 前回セーブされた状態をロード
 -    if (_motionManager->IsFinished())
-+    if (_detector)
-     {
+-    {
 -        // モーションの再生がない場合、待機モーションの中からランダムで再生する
 -        StartRandomMotion(MotionGroupIdle, PriorityIdle);
 -    }
 -    else
 -        // モーションの再生がない場合、待機モーションの中からランダムで再生する
 -        StartRandomMotion(MotionGroupIdle, PriorityIdle);
 -    }
 -    else
--    {
++    if (_detector)
+     {
 -        motionUpdated = _motionManager->UpdateMotion(_model, deltaTimeSeconds); // モーションを更新
 -    }
 -    _model->SaveParameters(); // 状態を保存
 -        motionUpdated = _motionManager->UpdateMotion(_model, deltaTimeSeconds); // モーションを更新
 -    }
 -    _model->SaveParameters(); // 状態を保存
@@ -1222,6 +1223,9 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
 +        auto idMan = CubismFramework::GetIdManager();
 +        auto params = _detector->getParams();
  
 +        auto idMan = CubismFramework::GetIdManager();
 +        auto params = _detector->getParams();
  
+-    // 不透明度
+-    _opacity = _model->GetModelOpacity();
+-
 -    // まばたき
 -    if (!motionUpdated)
 -    {
 -    // まばたき
 -    if (!motionUpdated)
 -    {
@@ -1299,7 +1303,7 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
      }
  
      // 物理演算の設定
      }
  
      // 物理演算の設定
-@@ -408,22 +365,6 @@ void LAppModel::Update()
+@@ -415,22 +369,6 @@ void LAppModel::Update()
          _physics->Evaluate(_model, deltaTimeSeconds);
      }
  
          _physics->Evaluate(_model, deltaTimeSeconds);
      }
  
@@ -1322,7 +1326,7 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
      // ポーズの設定
      if (_pose != NULL)
      {
      // ポーズの設定
      if (_pose != NULL)
      {
-@@ -492,7 +433,6 @@ CubismMotionQueueEntryHandle LAppModel::
+@@ -499,7 +437,6 @@ CubismMotionQueueEntryHandle LAppModel::
      {
          csmString path = voice;
          path = _modelHomeDir + path;
      {
          csmString path = voice;
          path = _modelHomeDir + path;
@@ -1330,9 +1334,9 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
      }
  
      if (_debugMode)
      }
  
      if (_debugMode)
-@@ -644,3 +584,37 @@ Csm::Rendering::CubismOffscreenFrame_Ope
- {
-     return _renderBuffer;
+@@ -678,3 +615,37 @@ csmBool LAppModel::HasMocConsistencyFrom
+     return consistency;
  }
 +
 +void LAppModel::SetFacialLandmarkDetector(FacialLandmarkDetector *detector)
  }
 +
 +void LAppModel::SetFacialLandmarkDetector(FacialLandmarkDetector *detector)
@@ -1369,8 +1373,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.cpp ./demo_dev/src/LAppMod
 +}
 +
 diff -pruN --exclude build ./demo_clean/src/LAppModel.hpp ./demo_dev/src/LAppModel.hpp
 +}
 +
 diff -pruN --exclude build ./demo_clean/src/LAppModel.hpp ./demo_dev/src/LAppModel.hpp
---- ./demo_clean/src/LAppModel.hpp     2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppModel.hpp       2023-03-05 23:22:10.907889300 +0000
+--- ./demo_clean/src/LAppModel.hpp     2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppModel.hpp       2023-05-28 08:28:27.500813596 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -1399,9 +1403,9 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.hpp ./demo_dev/src/LAppMod
  
      /**
       * @brief デストラクタ
  
      /**
       * @brief デストラクタ
-@@ -114,6 +117,13 @@ public:
+@@ -122,6 +125,13 @@ public:
       */
       */
-     Csm::Rendering::CubismOffscreenFrame_OpenGLES2& GetRenderBuffer();
+     Csm::csmBool HasMocConsistencyFromFile(const Csm::csmChar* mocFileName);
  
 +    /**
 +     * @brief Set the pointer to the FacialLandmarkDetector instance
  
 +    /**
 +     * @brief Set the pointer to the FacialLandmarkDetector instance
@@ -1413,7 +1417,7 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.hpp ./demo_dev/src/LAppMod
  protected:
      /**
       *  @brief  モデルを描画する処理。モデルを描画する空間のView-Projection行列を渡す。
  protected:
      /**
       *  @brief  モデルを描画する処理。モデルを描画する空間のView-Projection行列を渡す。
-@@ -167,6 +177,17 @@ private:
+@@ -175,6 +185,17 @@ private:
      */
      void ReleaseExpressions();
  
      */
      void ReleaseExpressions();
  
@@ -1431,7 +1435,7 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.hpp ./demo_dev/src/LAppMod
      Csm::ICubismModelSetting* _modelSetting; ///< モデルセッティング情報
      Csm::csmString _modelHomeDir; ///< モデルセッティングが置かれたディレクトリ
      Csm::csmFloat32 _userTimeSeconds; ///< デルタ時間の積算値[秒]
      Csm::ICubismModelSetting* _modelSetting; ///< モデルセッティング情報
      Csm::csmString _modelHomeDir; ///< モデルセッティングが置かれたディレクトリ
      Csm::csmFloat32 _userTimeSeconds; ///< デルタ時間の積算値[秒]
-@@ -183,9 +204,9 @@ private:
+@@ -191,9 +212,9 @@ private:
      const Csm::CubismId* _idParamEyeBallX; ///< パラメータID: ParamEyeBallX
      const Csm::CubismId* _idParamEyeBallY; ///< パラメータID: ParamEyeBallXY
  
      const Csm::CubismId* _idParamEyeBallX; ///< パラメータID: ParamEyeBallX
      const Csm::CubismId* _idParamEyeBallY; ///< パラメータID: ParamEyeBallXY
  
@@ -1444,8 +1448,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppModel.hpp ./demo_dev/src/LAppMod
  
  
 diff -pruN --exclude build ./demo_clean/src/LAppPal.cpp ./demo_dev/src/LAppPal.cpp
  
  
 diff -pruN --exclude build ./demo_clean/src/LAppPal.cpp ./demo_dev/src/LAppPal.cpp
---- ./demo_clean/src/LAppPal.cpp       2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppPal.cpp 2023-03-05 23:22:10.834981800 +0000
+--- ./demo_clean/src/LAppPal.cpp       2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppPal.cpp 2023-05-28 08:28:27.500813596 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -1499,8 +1503,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppPal.cpp ./demo_dev/src/LAppPal.c
  }
  
 diff -pruN --exclude build ./demo_clean/src/LAppPal.hpp ./demo_dev/src/LAppPal.hpp
  }
  
 diff -pruN --exclude build ./demo_clean/src/LAppPal.hpp ./demo_dev/src/LAppPal.hpp
---- ./demo_clean/src/LAppPal.hpp       2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppPal.hpp 2023-03-05 23:22:10.939820800 +0000
+--- ./demo_clean/src/LAppPal.hpp       2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppPal.hpp 2023-05-28 08:28:27.500813596 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -1516,8 +1520,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppPal.hpp ./demo_dev/src/LAppPal.h
  
  /**
 diff -pruN --exclude build ./demo_clean/src/LAppSprite.cpp ./demo_dev/src/LAppSprite.cpp
  
  /**
 diff -pruN --exclude build ./demo_clean/src/LAppSprite.cpp ./demo_dev/src/LAppSprite.cpp
---- ./demo_clean/src/LAppSprite.cpp    2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppSprite.cpp      2023-03-05 23:22:10.900085700 +0000
+--- ./demo_clean/src/LAppSprite.cpp    2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppSprite.cpp      2023-05-28 08:28:27.500813596 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -1571,8 +1575,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppSprite.cpp ./demo_dev/src/LAppSp
      float y = maxHeight - pointY;
  
 diff -pruN --exclude build ./demo_clean/src/LAppSprite.hpp ./demo_dev/src/LAppSprite.hpp
      float y = maxHeight - pointY;
  
 diff -pruN --exclude build ./demo_clean/src/LAppSprite.hpp ./demo_dev/src/LAppSprite.hpp
---- ./demo_clean/src/LAppSprite.hpp    2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppSprite.hpp      2023-03-05 23:22:10.876156000 +0000
+--- ./demo_clean/src/LAppSprite.hpp    2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppSprite.hpp      2023-05-28 08:28:27.500813596 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -1600,8 +1604,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppSprite.hpp ./demo_dev/src/LAppSp
      int _uvLocation;        ///< UVアトリビュート
      int _textureLocation;   ///< テクスチャアトリビュート
 diff -pruN --exclude build ./demo_clean/src/LAppTextureManager.cpp ./demo_dev/src/LAppTextureManager.cpp
      int _uvLocation;        ///< UVアトリビュート
      int _textureLocation;   ///< テクスチャアトリビュート
 diff -pruN --exclude build ./demo_clean/src/LAppTextureManager.cpp ./demo_dev/src/LAppTextureManager.cpp
---- ./demo_clean/src/LAppTextureManager.cpp    2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppTextureManager.cpp      2023-03-05 23:22:10.765166600 +0000
+--- ./demo_clean/src/LAppTextureManager.cpp    2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppTextureManager.cpp      2023-05-28 08:28:27.500813596 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -1671,8 +1675,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppTextureManager.cpp ./demo_dev/sr
  {
      for (Csm::csmUint32 i = 0; i < _textures.GetSize(); i++)
 diff -pruN --exclude build ./demo_clean/src/LAppTextureManager.hpp ./demo_dev/src/LAppTextureManager.hpp
  {
      for (Csm::csmUint32 i = 0; i < _textures.GetSize(); i++)
 diff -pruN --exclude build ./demo_clean/src/LAppTextureManager.hpp ./demo_dev/src/LAppTextureManager.hpp
---- ./demo_clean/src/LAppTextureManager.hpp    2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppTextureManager.hpp      2023-03-05 23:22:10.822016600 +0000
+--- ./demo_clean/src/LAppTextureManager.hpp    2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppTextureManager.hpp      2023-05-28 08:28:27.500813596 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -1702,8 +1706,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppTextureManager.hpp ./demo_dev/sr
  
  private:
 diff -pruN --exclude build ./demo_clean/src/LAppView.cpp ./demo_dev/src/LAppView.cpp
  
  private:
 diff -pruN --exclude build ./demo_clean/src/LAppView.cpp ./demo_dev/src/LAppView.cpp
---- ./demo_clean/src/LAppView.cpp      2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppView.cpp        2023-03-05 23:22:10.804064800 +0000
+--- ./demo_clean/src/LAppView.cpp      2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppView.cpp        2023-05-28 08:28:27.500813596 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -1781,10 +1785,10 @@ diff -pruN --exclude build ./demo_clean/src/LAppView.cpp ./demo_dev/src/LAppView
 -        for (csmUint32 i = 0; i < Live2DManager->GetModelNum(); i++)
 +        for(csmUint32 i=0; i<Live2DManager->GetModelNum(); i++)
          {
 -        for (csmUint32 i = 0; i < Live2DManager->GetModelNum(); i++)
 +        for(csmUint32 i=0; i<Live2DManager->GetModelNum(); i++)
          {
-             float alpha = GetSpriteAlpha(i); // サンプルとしてαに適当な差をつける
-             _renderSprite->SetColor(1.0f, 1.0f, 1.0f, alpha);
+             LAppModel* model = Live2DManager->GetModel(i);
+             float alpha = i < 1 ? 1.0f : model->GetOpacity(); // 片方のみ不透明度を取得できるようにする
 @@ -133,7 +126,7 @@ void LAppView::Render()
 @@ -133,7 +126,7 @@ void LAppView::Render()
-             LAppModel *model = Live2DManager->GetModel(i);
              if (model)
              {
 -                _renderSprite->RenderImmidiate( model->GetRenderBuffer().GetColorBuffer(), uvVertex);
              if (model)
              {
 -                _renderSprite->RenderImmidiate( model->GetRenderBuffer().GetColorBuffer(), uvVertex);
@@ -1953,8 +1957,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppView.cpp ./demo_dev/src/LAppView
 -    }
  }
 diff -pruN --exclude build ./demo_clean/src/LAppView.hpp ./demo_dev/src/LAppView.hpp
 -    }
  }
 diff -pruN --exclude build ./demo_clean/src/LAppView.hpp ./demo_dev/src/LAppView.hpp
---- ./demo_clean/src/LAppView.hpp      2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/LAppView.hpp        2023-03-05 23:22:10.892081200 +0000
+--- ./demo_clean/src/LAppView.hpp      2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/LAppView.hpp        2023-05-28 08:28:27.500813596 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -2041,8 +2045,8 @@ diff -pruN --exclude build ./demo_clean/src/LAppView.hpp ./demo_dev/src/LAppView
      SelectTarget _renderTarget;     ///< レンダリング先の選択肢
      float _clearColor[4];           ///< レンダリングターゲットのクリアカラー
 diff -pruN --exclude build ./demo_clean/src/MouseActionManager.cpp ./demo_dev/src/MouseActionManager.cpp
      SelectTarget _renderTarget;     ///< レンダリング先の選択肢
      float _clearColor[4];           ///< レンダリングターゲットのクリアカラー
 diff -pruN --exclude build ./demo_clean/src/MouseActionManager.cpp ./demo_dev/src/MouseActionManager.cpp
---- ./demo_clean/src/MouseActionManager.cpp    2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/MouseActionManager.cpp      2023-03-05 23:22:10.841970900 +0000
+--- ./demo_clean/src/MouseActionManager.cpp    2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/MouseActionManager.cpp      2023-05-28 08:28:27.500813596 +0100
 @@ -1,9 +1,9 @@
 -/**
 - * Copyright(c) Live2D Inc. All rights reserved.
 @@ -1,9 +1,9 @@
 -/**
 - * Copyright(c) Live2D Inc. All rights reserved.
@@ -2104,8 +2108,8 @@ diff -pruN --exclude build ./demo_clean/src/MouseActionManager.cpp ./demo_dev/sr
  }
  
 diff -pruN --exclude build ./demo_clean/src/MouseActionManager.hpp ./demo_dev/src/MouseActionManager.hpp
  }
  
 diff -pruN --exclude build ./demo_clean/src/MouseActionManager.hpp ./demo_dev/src/MouseActionManager.hpp
---- ./demo_clean/src/MouseActionManager.hpp    2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/MouseActionManager.hpp      2023-03-05 23:22:10.961094400 +0000
+--- ./demo_clean/src/MouseActionManager.hpp    2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/MouseActionManager.hpp      2023-05-28 08:28:27.500813596 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -2113,8 +2117,8 @@ diff -pruN --exclude build ./demo_clean/src/MouseActionManager.hpp ./demo_dev/sr
   *
   * Use of this source code is governed by the Live2D Open Software license
 diff -pruN --exclude build ./demo_clean/src/TouchManager.cpp ./demo_dev/src/TouchManager.cpp
   *
   * Use of this source code is governed by the Live2D Open Software license
 diff -pruN --exclude build ./demo_clean/src/TouchManager.cpp ./demo_dev/src/TouchManager.cpp
---- ./demo_clean/src/TouchManager.cpp  2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/TouchManager.cpp    2023-03-05 23:22:10.861957900 +0000
+--- ./demo_clean/src/TouchManager.cpp  2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/TouchManager.cpp    2023-05-28 08:28:27.504813669 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -2122,8 +2126,8 @@ diff -pruN --exclude build ./demo_clean/src/TouchManager.cpp ./demo_dev/src/Touc
   *
   * Use of this source code is governed by the Live2D Open Software license
 diff -pruN --exclude build ./demo_clean/src/TouchManager.hpp ./demo_dev/src/TouchManager.hpp
   *
   * Use of this source code is governed by the Live2D Open Software license
 diff -pruN --exclude build ./demo_clean/src/TouchManager.hpp ./demo_dev/src/TouchManager.hpp
---- ./demo_clean/src/TouchManager.hpp  2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/TouchManager.hpp    2023-03-05 23:22:10.884102300 +0000
+--- ./demo_clean/src/TouchManager.hpp  2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/TouchManager.hpp    2023-05-28 08:28:27.504813669 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
@@ -2131,8 +2135,8 @@ diff -pruN --exclude build ./demo_clean/src/TouchManager.hpp ./demo_dev/src/Touc
   *
   * Use of this source code is governed by the Live2D Open Software license
 diff -pruN --exclude build ./demo_clean/src/main.cpp ./demo_dev/src/main.cpp
   *
   * Use of this source code is governed by the Live2D Open Software license
 diff -pruN --exclude build ./demo_clean/src/main.cpp ./demo_dev/src/main.cpp
---- ./demo_clean/src/main.cpp  2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/main.cpp    2023-03-05 23:22:10.772150300 +0000
+--- ./demo_clean/src/main.cpp  2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/main.cpp    2023-05-28 08:28:27.504813669 +0100
 @@ -1,22 +1,166 @@
 -/**
 +/**
 @@ -1,22 +1,166 @@
 -/**
 +/**
@@ -2308,8 +2312,8 @@ diff -pruN --exclude build ./demo_clean/src/main.cpp ./demo_dev/src/main.cpp
  }
 -
 diff -pruN --exclude build ./demo_clean/src/mainMinimum.cpp ./demo_dev/src/mainMinimum.cpp
  }
 -
 diff -pruN --exclude build ./demo_clean/src/mainMinimum.cpp ./demo_dev/src/mainMinimum.cpp
---- ./demo_clean/src/mainMinimum.cpp   2023-02-20 11:39:40.000000000 +0000
-+++ ./demo_dev/src/mainMinimum.cpp     2023-03-05 23:22:10.854990900 +0000
+--- ./demo_clean/src/mainMinimum.cpp   2023-05-18 09:58:50.000000000 +0100
++++ ./demo_dev/src/mainMinimum.cpp     2023-05-28 08:28:27.504813669 +0100
 @@ -1,4 +1,4 @@
 -/**
 +/**
 @@ -1,4 +1,4 @@
 -/**
 +/**
index 9572189..1cde13b 100755 (executable)
@@ -3,9 +3,9 @@
 mkdir -p demo_clean
 
 if [ "$OSTYPE" = "msys" -o "$OSTYPE" = "cygwin" ]; then
 mkdir -p demo_clean
 
 if [ "$OSTYPE" = "msys" -o "$OSTYPE" = "cygwin" ]; then
-    cp -p -r CubismSdkForNative-4-r.6.2/Samples/OpenGL/Demo/proj.win.cmake/* ./demo_clean/
+    cp -p -r CubismSdkForNative-4-r.7/Samples/OpenGL/Demo/proj.win.cmake/* ./demo_clean/
     diff -pruN --exclude build ./demo_clean ./demo_dev > ./demo_win.patch
 else
     diff -pruN --exclude build ./demo_clean ./demo_dev > ./demo_win.patch
 else
-    cp -p -r CubismSdkForNative-4-r.6.2/Samples/OpenGL/Demo/proj.linux.cmake/* ./demo_clean/
+    cp -p -r CubismSdkForNative-4-r.7/Samples/OpenGL/Demo/proj.linux.cmake/* ./demo_clean/
     diff -pruN --exclude build ./demo_clean ./demo_dev > ./demo.patch
 fi
     diff -pruN --exclude build ./demo_clean ./demo_dev > ./demo.patch
 fi