Coloryr / Live2DCSharpSDK

L2d的C#版SDK
MIT License
11 stars 2 forks source link

[问题反馈] 播放模型时候会报错 #3

Open LorisYounger opened 6 months ago

LorisYounger commented 6 months ago

报错信息:

System.IndexOutOfRangeException:“Index was outside the bounds of the array.

详细信息:

System.IndexOutOfRangeException
  HResult=0x80131508
  Message=Index was outside the bounds of the array.
  Source=Live2DCSharpSDK.Framework
  StackTrace:
   在 Live2DCSharpSDK.Framework.Physics.CubismPhysics.Evaluate(CubismModel model, Single deltaTimeSeconds) 在 D:\Documents\Visual Studio 2022\Projects\Live2DCSharpSDK\Live2DCSharpSDK.Framework\Physics\CubismPhysics.cs 中: 第 485 行
   在 Live2DCSharpSDK.App.LAppModel.Update() 在 D:\Documents\Visual Studio 2022\Projects\Live2DCSharpSDK\Live2DCSharpSDK.App\LAppModel.cs 中: 第 409 行
   在 Live2DCSharpSDK.App.LAppLive2DManager.OnUpdate() 在 D:\Documents\Visual Studio 2022\Projects\Live2DCSharpSDK\Live2DCSharpSDK.App\LAppLive2DManager.cs 中: 第 130 行
   在 Live2DCSharpSDK.App.LAppView.Render() 在 D:\Documents\Visual Studio 2022\Projects\Live2DCSharpSDK\Live2DCSharpSDK.App\LAppView.cs 中: 第 84 行
   在 Live2DCSharpSDK.App.LAppDelegate.Run(Single tick) 在 D:\Documents\Visual Studio 2022\Projects\Live2DCSharpSDK\Live2DCSharpSDK.App\LAppDelegate.cs 中: 第 141 行
   在 Live2DCSharpSDK.OpenTK.Window.OnRenderFrame(FrameEventArgs e) 在 D:\Documents\Visual Studio 2022\Projects\Live2DCSharpSDK\Live2DCSharpSDK.OpenTK\Window.cs 中: 第 92 行
   在 OpenTK.Windowing.Desktop.GameWindow.Run()
   在 Live2DCSharpSDK.OpenTK.Program.Main() 在 D:\Documents\Visual Studio 2022\Projects\Live2DCSharpSDK\Live2DCSharpSDK.OpenTK\Program.cs 中: 第 21 行

image

使用的项目是 Live2DCSharpSDK.OpenTK, 仅修改了引用 var model = lapp.Live2dManager.LoadModel("F:\\Downloads\\idle", "idle");

当时的值:

_physicsRig.Outputs = {Live2DCSharpSDK.Framework.Physics.CubismPhysicsOutput[313]}
currentSetting.BaseOutputIndex = 313
settingIndex = 66
_previousRigOutputs = Count = 67

代码位置: https://github.com/Coloryr/Live2DCSharpSDK/blob/97422158cbbe3037c66e83f9837aed6ffc173f34/Live2DCSharpSDK.Framework/Physics/CubismPhysics.cs#L479-L490

模型文件: idle.zip

Coloryr commented 6 months ago

模型无法适配,有些模型用不了的

Coloryr commented 6 months ago

你可以试试官方SDK跑,估计也跑不起来

LorisYounger commented 6 months ago

你可以试试官方SDK跑,估计也跑不起来

试了下用 UnitySDK, 倒是可以跑, 看上去也没报错的样子 image

Coloryr commented 6 months ago

这就是我能力范围外了,我没搞懂

LorisYounger commented 6 months ago

我这边尝试修了下,加了个容错, 好像解决了, 你看看要不要应用上? https://github.com/LorisYounger/Live2DCSharpSDK/commit/8d57cf9decfe751693ea67fafd0ebdeb7e08b1f6

Coloryr commented 6 months ago

跳过了RIG不会炸?

LorisYounger commented 6 months ago

跳过了RIG不会炸?

我这边跳过了就好了, 其他模型也能加载 我再多试几个官方模型看看

我试的几个模型都没问题, 毕竟我这个代码里面判断如果要溢出,才会跳过, 毕竟不跳本来就要炸,不如跳过试试

LorisYounger commented 6 months ago

我试的几个模型都没问题, 毕竟我这个代码里面判断如果要溢出,才会跳过, 毕竟不跳本来就要炸,不如跳过试试 这个问题目前看起来没啥问题了,

Coloryr commented 6 months ago

我就怕RIG炸了导致物理错误

LorisYounger commented 6 months ago

反正比直接报错卡主好 tmp_强强

Coloryr commented 5 months ago

好像有解决方案了 https://github.com/Live2D/CubismNativeFramework/pull/57 不过这个是motion的不知道phy是否适用