Skip to content

Commit 25cd8fa

Browse files
committed
fix #74; temporarily fix #73
1 parent 87f94f8 commit 25cd8fa

File tree

6 files changed

+49
-41
lines changed

6 files changed

+49
-41
lines changed

Resources/.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
v3/magic
22
v3/liveroid
3-
v3/whitecat
3+
v3/whitecat
4+
v3/小九
5+
v3/金发大小姐

package/live2d/v2/core/deformer/warp_deformer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88

99
class WarpDeformer(Deformer):
10-
gT_ = [False]
10+
paramOutSide = [False]
1111

1212
def __init__(self):
1313
super().__init__()
@@ -47,7 +47,7 @@ def setupInterpolate(self, modelContext, deformerContext: 'WarpContext'):
4747
return
4848

4949
aL = self.VT_()
50-
aH = WarpDeformer.gT_
50+
aH = WarpDeformer.paramOutSide
5151
aH[0] = False
5252
UtInterpolate.interpolatePoints(modelContext, self.pivotMgr, aH, aL, self.pivotPoints, aK.interpolatedPoints, 0,
5353
2)

package/live2d/v2/core/graphics/draw_param_opengl.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -243,20 +243,20 @@ def loadShaders2(self):
243243
if not self.shaderProgramOff:
244244
return False
245245

246-
aK = ("#version 330 core\n"
247-
"layout(location = 0) in vec2 a_position;"
248-
"layout(location = 1) in vec2 a_texCoord;"
249-
"out vec2 v_texCoord;"
250-
"out vec4 v_clipPos;"
246+
aK = ("#version 120\n"
247+
"attribute vec2 a_position;"
248+
"attribute vec2 a_texCoord;"
249+
"varying vec2 v_texCoord;"
250+
"varying vec4 v_clipPos;"
251251
"uniform mat4 u_mvpMatrix;"
252252
"void main(){"
253253
" gl_Position = u_mvpMatrix * vec4(a_position, 0.0, 1.0);"
254254
" v_clipPos = gl_Position;"
255255
" v_texCoord = a_texCoord;"
256256
" v_texCoord.y = 1.0 - v_texCoord.y;}")
257-
aM = ("#version 330 core\n"
258-
"in vec2 v_texCoord;"
259-
"in vec4 v_clipPos;"
257+
aM = ("#version 120\n"
258+
"varying vec2 v_texCoord;"
259+
"varying vec4 v_clipPos;"
260260
"uniform sampler2D s_texture0;"
261261
"uniform vec4 u_channelFlag;"
262262
"uniform vec4 u_baseColor;"
@@ -271,20 +271,20 @@ def loadShaders2(self):
271271
" * step(u_baseColor.y, v_clipPos.y/v_clipPos.w)"
272272
" * step(v_clipPos.x/v_clipPos.w, u_baseColor.z)"
273273
" * step(v_clipPos.y/v_clipPos.w, u_baseColor.w);"
274-
" smpColor = u_channelFlag * texture(s_texture0, v_texCoord).a * isInside;"
274+
" smpColor = u_channelFlag * texture2D(s_texture0, v_texCoord).a * isInside;"
275275
" }else{"
276-
" smpColor = texture(s_texture0 , v_texCoord);"
276+
" smpColor = texture2D(s_texture0 , v_texCoord);"
277277
" smpColor.rgb = smpColor.rgb * u_multiplyColor.rgb;"
278278
" smpColor.rgb = smpColor.rgb + u_screenColor.rgb - (smpColor.rgb * u_screenColor.rgb);"
279279
" smpColor = smpColor * u_baseColor;"
280280
" smpColor = vec4(smpColor.rgb * smpColor.a, smpColor.a);"
281281
" }"
282282
" gl_FragColor = smpColor;}")
283-
aL = ("#version 330 core\n"
284-
"layout(location = 0) in vec2 a_position;"
285-
"layout(location = 1) in vec2 a_texCoord;"
286-
"out vec2 v_texCoord;"
287-
"out vec4 v_clipPos;"
283+
aL = ("#version 120\n"
284+
"attribute vec2 a_position;"
285+
"attribute vec2 a_texCoord;"
286+
"varying vec2 v_texCoord;"
287+
"varying vec4 v_clipPos;"
288288
"uniform mat4 u_mvpMatrix;"
289289
"uniform mat4 u_clipMatrix;"
290290
"void main(){"
@@ -293,22 +293,22 @@ def loadShaders2(self):
293293
" v_clipPos = u_clipMatrix * pos;"
294294
" v_texCoord = a_texCoord;"
295295
" v_texCoord.y = 1.0 - v_texCoord.y;}")
296-
aJ = ("#version 330 core\n"
297-
"in vec2 v_texCoord;"
298-
"in vec4 v_clipPos;"
296+
aJ = ("#version 120\n"
297+
"varying vec2 v_texCoord;"
298+
"varying vec4 v_clipPos;"
299299
"uniform sampler2D s_texture0;"
300300
"uniform sampler2D s_texture1;"
301301
"uniform vec4 u_channelFlag;"
302302
"uniform vec4 u_baseColor;"
303303
"uniform vec4 u_screenColor;"
304304
"uniform vec4 u_multiplyColor;"
305305
"void main(){"
306-
" vec4 col_formask = texture(s_texture0, v_texCoord);"
306+
" vec4 col_formask = texture2D(s_texture0, v_texCoord);"
307307
" col_formask.rgb = col_formask.rgb * u_multiplyColor.rgb;"
308308
" col_formask.rgb = col_formask.rgb + u_screenColor.rgb - (col_formask.rgb * u_screenColor.rgb);"
309309
" col_formask = col_formask * u_baseColor;"
310310
" col_formask.rgb = col_formask.rgb * col_formask.a;"
311-
" vec4 clipMask = texture(s_texture1, v_clipPos.xy / v_clipPos.w) * u_channelFlag;"
311+
" vec4 clipMask = texture2D(s_texture1, v_clipPos.xy / v_clipPos.w) * u_channelFlag;"
312312
" float maskVal = clipMask.r + clipMask.g + clipMask.b + clipMask.a;"
313313
" col_formask = col_formask * maskVal;"
314314
" gl_FragColor = col_formask;}")

package/live2d/v2/core/param/pivot_manager.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,12 @@ def calcPivotValues(self, mdc: 'ModelContext', ret: List[bool]):
6565
aS = aM[0]
6666
if aU < aS - GOSA:
6767
aP = 0
68-
ret[0] = True
68+
# TODO: 不清楚原因,需要找其他模型测试
69+
# 其他分支对ret的赋值有可能导致问题
70+
if isinstance(ret, list): # by heurry@Github
71+
ret[0] = True
72+
else:
73+
ret = [True]
6974
else:
7075
if aU < aS + GOSA:
7176
aP = 0

package/main_pygame.py

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,10 @@
1111
import pygame
1212
from pygame.locals import *
1313

14+
# roation is only for v3
1415
import live2d.v3 as live2d
1516
from live2d.v3 import StandardParams
1617
from live2d.utils import log
17-
# import live2d.v2 as live2d
18-
# from live2d.v2 import StandardParams
1918

2019

2120
import resources
@@ -38,20 +37,19 @@ def main():
3837

3938
model = live2d.LAppModel()
4039

41-
if live2d.LIVE2D_VERSION == 3:
42-
model.LoadModelJson(
43-
# os.path.join(resources.RESOURCES_DIRECTORY, "v3/liveroid/liveroiD_A-Y01/liveroiD_A-Y01.model3.json")
44-
# os.path.join(resources.RESOURCES_DIRECTORY, "v3/Mao/Mao.model3.json")
45-
os.path.join(resources.RESOURCES_DIRECTORY, "v3/llny/llny.model3.json")
46-
# os.path.join(resources.RESOURCES_DIRECTORY, "v3/nn/nn.model3.json")
47-
# os.path.join(resources.RESOURCES_DIRECTORY, "v3/magic/magic.model3.json")
48-
# os.path.join(resources.RESOURCES_DIRECTORY, "v3/Haru/Haru.model3.json")
49-
# os.path.join(resources.RESOURCES_DIRECTORY, "v3/Hiyori/Hiyori.model3.json")
50-
)
51-
else:
52-
model.LoadModelJson(
53-
os.path.join(resources.RESOURCES_DIRECTORY, "v2/kasumi2/kasumi2.model.json")
54-
)
40+
41+
model.LoadModelJson(
42+
# os.path.join(resources.RESOURCES_DIRECTORY, "v3/liveroid/liveroiD_A-Y01/liveroiD_A-Y01.model3.json")
43+
# os.path.join(resources.RESOURCES_DIRECTORY, "v3/Mao/Mao.model3.json")
44+
# os.path.join(resources.RESOURCES_DIRECTORY, "v3/llny/llny.model3.json")
45+
# os.path.join(resources.RESOURCES_DIRECTORY, "v3/nn/nn.model3.json")
46+
# os.path.join(resources.RESOURCES_DIRECTORY, "v3/magic/magic.model3.json")
47+
# os.path.join(resources.RESOURCES_DIRECTORY, "v3/Haru/Haru.model3.json")
48+
# os.path.join(resources.RESOURCES_DIRECTORY, "v3/Hiyori/Hiyori.model3.json")
49+
os.path.join(resources.RESOURCES_DIRECTORY, "v3/小九/小九皮套(红)/小九.model3.json")
50+
# os.path.join(resources.RESOURCES_DIRECTORY, "v3/金发大小姐/金发大小姐.model3.json")
51+
)
52+
5553

5654
model.Resize(*display)
5755

package/main_pygame_simple.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ def main():
2323
)
2424
else:
2525
model.LoadModelJson(
26-
os.path.join(resources.RESOURCES_DIRECTORY, "v2/kasumi2/kasumi2.model.json")
26+
os.path.join(resources.RESOURCES_DIRECTORY,
27+
# "v2/kasumi2/kasumi2.model.json"
28+
"v2/haru/haru.model.json"
29+
)
2730
)
2831

2932
model.Resize(*display)

0 commit comments

Comments
 (0)