|
|
HoneySelect2 VMD Play Plugin (HS2VMDPlayPlugin) (v0.3.4) 播放& Z9 U& ]8 X1 A; \, r* A
/ f3 F$ ]9 R& @
c) Z: Z# ?/ i% G# W* fMikuMikuDance 运动数据 (.vmd)。
6 @0 E3 l' H! U: L( }7 ^% x并非所有动漫都可以工作,因为骨骼结构和 IK 机制非常不同。
# _+ M& g) ^- Q q5 r" B
& Y& T7 Z: R2 z: R+ p它仅适用于 StudioNEOV2。$ N1 {6 R/ E- b1 h; L3 o
9 U' a& ~9 ~( s& M& G3 l$ g1. 按 “Ctrl” + “Shift” + “V” 切换 GUI 显示(您可以在 BepInEx/config/HS2_VMDPlayPlugin.cfg 文件中更改键)。
* ]4 k4 O7 K `1 d2 k2. 使用“<”和“>”按钮选择一个角色。
1 w' S/ y* p5 _% M3. 按下“关闭”按钮(它将切换到“打开”)以激活该功能。( T! O1 r: _6 f0 [, l) t
- 现有的动漫将被停止。
3 {) g& R: z* k# v- v4 H4. 直接在 VMD 旁边键入文件名,或单击“...” 单击该按钮以选择一个文件。
4 r- \* j0 G6 h6 w如果文件路径包含 “;” 或使用“+”按钮合并来自多个 VMD 文件的动作。, `# m3 H$ l- D" J5 A+ p
5. (可选)如果有音频,请在 Sound 旁边键入文件名,或按“Load”(加载)按钮加载文件。
; V$ l7 |) s1 y( c' p+ L6. 按下 VMD 上的“加载”按钮以加载 VMD 文件(以及声音文件,如果指定)。 )
3 S6 T2 u" B" ?7. (可选)如果摄像机运动位于单独的 VMD 文件中,请打开 Camera 选项卡,指定 VMD 文件,然后选择 Load (加载) 以导入它。
?3 N( T* t# z8. (可选)如果要指定循环音频等参数,请打开声音选项卡并更改设置。
+ r. F C: f# V) G: p% R& }' y. d9. 按播放(全部)按钮播放动漫、相机和音频。; d+ R$ c f/ t
10. (可选)更改屏幕底部的控制器选项。
5 G) H' N) w* W3 e( d% z, B! e, D* j6 q
如果要将动漫与多个角色同步,请使用 (All Chara) 右侧的 Play/Pause/Stop 按钮。
) y) e& I1 U/ p3 {
5 k; @0 x! v& e1 ]
; P; u6 l4 E& e( V根据 BepInEx/plugins/HS2_VMDPlayPlugin/FaceData.txt 中包含的人脸设置,捕获
& _; P1 F1 [: |: k.vmd 文件中的面部表情操作参数,以进行面部表情操作。3 B) u- Y% M: O" ~) M. a
请参阅自定义面部表情。+ w2 b8 s. m5 N
6 L, c5 a0 y5 x4 F5 w4 `' I$ Y0 V; Q" _2 p0 M' P1 e& v6 ?
先决条件:! T) F* _" E" g2 K
已安装 BepInEx v5.3 (https://github.com/BepInEx/BepInEx)。
4 |. f4 D! e7 R) k( H0 ~+ n0 H如果要写入场景数据,则需要 BepisPlugins 中包含的 ExtensibleSaveFormat 插件。" l1 w, z Z6 H1 ]/ G+ v' g8 ?* n. D
& m- p3 a2 V2 x4 Q4 p. Q" J' p
) Y( C" [# {8 y/ E% d+ g[部署]7 Y0 I! j5 x @/ A
将 BepInEx 文件夹复制到 HoneySelect2 部署目录。+ B t) B! P W# L0 W
文件夹结构应如下所示:; z4 u5 ]' F4 g8 E3 @8 G% g$ B
6 v' E% g6 U7 v# M- i# C: q8 u(HoneySelect2 介绍目录) /+ L3 ]; M8 g+ B8 r
StudioNEOV2_Data/
: | \( G! a9 N- Y' a$ C% j...3 s; T2 Y5 [# O P1 u/ U3 t
...
5 H. v6 E+ G) S9 K$ ]8 q ^BepInEx/, @$ v% }/ P$ ~: |. H% Q" s7 y4 L
插件/8 C0 N' F+ p5 m: W/ U# P
HS2_VMDPlayPlugin/
& X$ i; m2 ?9 P9 }5 yHS2_VMDPlayPlugin.dll
& w6 Q, k. `5 ?7 h! oMMD4URuntime.dll
2 X* a4 h3 l+ c/ C6 b" oFaceData_ sample.txt
) f4 F) _4 a0 h; yconfig/
! d. s5 r7 v v+ ~# dHS2_VMDPlayPlugin.cfg7 B6 z) r! z; q8 b; z9 N
...。* O9 d! ~- u; i$ N! M9 M
HoneySelect2.exe
7 R" A/ U& B8 j+ L3 h$ {# L9 ]% |StudioNEOV2.exe
3 h; F+ X/ I* s: \' U. ?
3 M- r9 G% K; B* L0 `, u2 f0 E0 W( g+ {' [
0 {$ S% C4 j- v% d1 g8 l6 L卸载 删除
4 C5 i% \: E- A+ P以下目录和文件:& a/ Q9 C" w T2 T1 A8 Z2 R9 P
BepInEx/plugins/HS2_VMDPlayPlugin 目录' ]# s4 e* j0 N% y) T+ D% |- C
BepInEx/config/HS2_VMDPlayPlugin.cfg 文件, ^2 l$ n5 F( V
& l. I( F6 d, O
/ ^( F5 s# ~! {( v o/ t[自定义面部表情]" e0 b- D. s# [5 ^
可以通过编辑 FaceData.txt 来添加和编辑面部变形。 日语 Morph 名称必须以 UTF-8 编码存储。6 Y4 |/ V& r& f( J } V- e
6 e! q( n& ]7 L' F
(语法)
8 k0 E9 h& G7 F5 @> < 完整 := <MORPH NAME> “=” <类型: 眉毛,眼睛,嘴>全部 “,” < 属性值> [“,” < 属性值> “,” <属性值> ....]$ Q+ c# l8 I1 R, F: U' L# A; [
: |" e- I# u+ Y1 A4 g4 `< 属性值> :=
" S& _3 P- _8 v$ w“eyebrow” “:” <眉纹编号> : < 粗细 0-1.0> - 眉纹,如果指定了多个,则按粗细合并。, s( {1 g/ }$ E, u" K- _4 L5 X
“eyeopen” “:” < 体重 0-1.0> - 眼睛张开度: n4 i! U6 }$ ^# ]5 A2 M
“eye” “:” < 眼型数字> “:” < 体重 0-1.0> - 眼型6 i- |/ S" o, A! K |
“张口” “:” < 体重 0-1.0> - 张口度
; }7 |( n2 }, t' a' N9 j, B& @1 @“mouth” “:” <口型编号> “:” < 体重 0-1.0> - 口型( v K+ }2 r7 T6 n% C: H) B2 _3 t% g
“tongue” “:” “0” or “1” - 伸出舌头 (1) 不要 (0)
7 N5 t9 D2 _9 C$ l* C' N* m! V( s. U6 X
(示例) wink=" R& G, q3 k, C! r! n( o7 E8 {
EYE,eye:5:1
5 h) y; ^6 U- z0 {% G T, r9 i( V' vmix=ALL,eyeopen:0.5,eye:12:0.4,eye:10:0.3,mouthopen:0.3,mouth:15:1,tongue:0
; w" A( R1 S5 b1 i* R3 A% B4 C! p* _- C0 x+ _
你可以指定 _DEFAULT_ 作为4 U" H" x1 z. M$ [
特殊元素。 如果未在 VMD 端指定任何键,则此元素是默认表达式。4 W0 h7 [' d; r; y) o- z3 J
(如果 Model > UseDefaultFace 在设置中为 true)
7 }% }1 j6 I! w( l& ^, u3 S. ~/ i5 n9 C
写入场景
& _0 v2 H6 Y5 \3 {4 {; Y4 Z0 m( U8 N1 S$ U) B9 V3 f
将 VMD 设置信息写入和读取场景文件 (png)。2 D2 k9 E! I# S$ W$ m/ |1 ~5 Q6 l
如果您不想编写它,请在 BepInEx/config/HS2_VMDPlayPlugin.cfg 文件中将以下行更改为 false。
# u( c4 P4 Y z" \9 c8 S9 q0 {, A0 S; [
4 V7 l4 m1 S0 ` y; e[保存]
- m. l0 [% B( ?+ c% d9 c& LSaveInScene=true #これを 更改为$ n6 w1 b" H* ], g) W
5 G# ~% H8 t! ~ r) q
6 Q ^; d& H& \: Z5 L! Afalse+ k: g T* _* y% D( r( K
[播放控制器]3 Y2 f3 R7 u ~+ u4 R& f
Show Config / Close Config - 打开(关闭)参数调整配置屏幕。
: D9 u- w* Y; _播放/暂停/停止 - 立即播放/暂停/停止运动/音频/摄像机。
( q6 {) X+ N# ]* f+ n2 q自动隐藏 - 如果选中,则在参数调整配置屏幕未打开且鼠标光标未位于控制器位置(距屏幕底部 40 像素)时自动隐藏控制器。; |# e/ T7 l7 A3 P! G# P7 ^5 k
关闭 - 关闭控制器和参数调整配置屏幕。
1 o4 I6 B" j: l2 S/ B& [
- g. ?7 m' j: m. z: M/ M8 Q% A$ _& k8 E& i0 z4 t& d
, \* u2 C' n: q8 E9 `" T5 x' OTuning Parameters (优化参数) -
4 E" T: \4 K' I ]5 S9 c' @9 m6 y& q模型的优化参数2 j1 v% v- c9 l8 }" T
CenterPos(y):更改 centerbone 的 Y 位置。 (扩展后添加)5 J0 u+ {; T: D% K8 l
Model Scale(模型缩放):所有移动骨骼的 x、y 和 z 坐标的缩放(与骨骼的参考位置不同)Move
5 [0 M" o4 Q) R. f9 V, S+ x7 |% q: t(y)Scale(移动(y)Scale):所有移动骨骼的 y 坐标的缩放(在应用“模型缩放”(Model Scale)后添加)$ |. r6 R2 d* b5 P, y6 L% T! V
! W# e; a F0 j& @% }CenterBasePos:虚拟中心骨的 Y 位置(在 PMX 模型上假定的位置)
' g' [5 l* B: B4 ~9 X( V' T+ W2 SShoulder/UpperArm/LowerArm Tilt:肩部、上臂和手臂的初始倾斜度。 将 T 姿势与 A 姿势 (MMD) 对齐的调整值。" w. O+ [7 d. L& ]" C0 @. E' S
; w4 h$ M; |! X
如果要使运动更具动态性,请增加 Model Scale。
" Z, r- O4 [ M+ j: } I Z$ w如果您的双腿因 IK 而伸展和颤抖,请减小模型比例。
+ n4 o3 z/ @7 C1 ]; r' G' u如果模型比例增加并且它被埋在地板下,请额外调整 CenterPos(y) 和 Model Scale(y)。' d* r7 y$ ~4 K6 |* Y: [
8 L5 S! ?! O1 [' h( ~2 O0 V在多个模型运动的情况下,最好对齐 Model Scale(模型比例)。
! L7 I' y: `. Q1 z
* n& N# y; V5 D3 W- X# G7 `[用于动作调整的参考模型输出]0 G; ^$ x3 m7 @
VMD Load Config(需要重新加载)右侧显示“保存”(用于多个模型的位置调整
c# L7 n! z, \: F/ f* P. q
8 y9 o, [, I0 U: }# A5 e1 G7 A- h! N( n7 k, A8 o+ ~6 o
) 使用 “PMX” 按钮输出。9 f$ N' [1 x$ l7 V/ j: \
按下此按钮将使模型返回到其初始姿势 (A-stance),并以 PMX 文件格式输出骨骼配置。* q. b3 A7 G6 a( A: @7 |
该文件在 BepInEx/plugins/HS2_VMDPlayPlugin/pmx/ 目录下输出时间戳。
! k2 }+ I* A) T5 H内容仅为骨骼。 它不包含任何网格、纹理、变形等。
7 m# }+ \0 Y8 t它旨在与 VMD 大小调整 (VMD_sizing) 工具一起使用。
' ~; e( S2 S. `# f0 Q$ ~% tShoulder Tilt 等值也使用设置的值。 但是,无论设置如何,模型比例都被视为 1.0。7 x) e5 {2 v" v4 M9 Z1 c. e
因此,如果要使用输出模型的调整后的运动,请将 Model Scale 设置为 1.0 并使用它。
% Q6 F( R$ Q# _3 u. j/ P- P U, ]' Y; Y1 s, q. x3 c( o# c
对于 Base Scale (基础缩放) 和 Global Scale (全局缩放),请使用配置的值。
]3 W+ V6 o2 ~在默认的 BaseScale 0.095 和 Global Scale 10.0 的情况下,游戏中的 Y=10.0(大致是默认角色身体的中心)在 MMD 中大约是 Y=10.6。
: {7 C, ]* c! s/ }" O* Z& ?( K( x(因为动作加载后乘以 0.95): }6 M, ]7 H( O
4 k) R2 [& f0 L& p9 ]" f
/ F( M3 s( t# W& w$ p
) ~/ a. p8 R, N9 U[历史] G/ g$ V/ i; L9 v- p
-0.0.1$ F, K, d5 H) W' v3 G
初始版本
1 t+ q) G2 D7 [/ P) C: o/ o2 n- 0.0.2 支持读取
0 C. o6 S. }) C5 e9 y. \- a摄像机视角数据 V/ o7 n& _+ ]
-0.0.3 修复了7 R6 p7 Z5 \) _
GUI 关闭5 _! Z" _6 C2 D2 g3 L" C" X {. w
时,使用鼠标进行正常摄像机操作可能无法工作的问题 -0.0.45 C5 Q2 p: I/ G
修复了摄像机运动逻辑(旧逻辑是通过将 UnityCameraInterpolation 选项设置为 True 来指定的)将6 E2 J' d7 ~0 ]) I
默认的 Shoulder Tilt 从 12 更改为 8(度)。
4 ?' U- I {( n-0.0.5' ` I2 Q% o5 |
修复了相机计算逻辑(删除了在有一帧差异的键之间禁用完成的逻辑)-2 q0 M( H' r9 t6 r0 t" S" `1 J4 M: L# N
0.0.6 支持
; ]4 C$ }7 Y; A, I: J指定多个 VMD 文件(动作 + 面部表情等)(使用“+”按钮或“;” 带分离的直接输入)相机和角色动作的8 x- n3 l- R/ S' j( v
动画计算逻辑已完全修改。 从使用 Unity 的 Animation 切换到 DOTween 自己的实现。
1 T1 M: x8 K% [( x# e初始肩部、上臂和臂参数(模型 -> ShoulderTiltDefault、UpperArmTiltDefault、LowerArmTiltDefault)。8 g: @" n( {% F* k1 w! `
设置颈部旋转角度的补充参数 (Model - > NeckRotationScale)。% V/ h8 w% @2 e ~
添加了用于计算摄像机和整个角色位置的缩放选项 (System -> BaseScale。 它以与 GlobalScale 相同的方式应用于整个系统。 ) 修复了
/ \4 T8 M9 M/ Z; I模型初始缩放计算中的错误(修复了始终应用字符高度cf_N_height的问题) Z- A) C6 E5 u- c9 F- n4 n
-0.1.0 重构了与其他- h! k/ F" `' k
插件4 E/ i) q5 l& H6 J
共享代码 肩部取消 (Shoulder P/Shoulder C) 骨骼的临时实现6 E5 A9 Q. G; a; A- z5 X" w& Q4 {
-0.1.1 修复了无法选择. H" ?% m! ^# o3 t' ]
第二个和后续字符的问题。, r( x! r5 t3 T s- p& x6 R4 A
-0.1.2 修复了快捷键设置中无法使用 M2 r2 }5 t; i Z* \( j
大写字母的问题。 @8 ?3 J; ~8 M/ S6 Y6 ^/ d* Z# W
IK 目标修复了曲调计算未初始化的问题(在最后一个键之后)修复了在切换
& z" h# T; d- L6 Z7 k. i# |地图或加载场景时 UI 恢复为隐藏的问题。+ w5 S ]3 p; M& |# R6 @
性能改进
# f; ^6 r2 z1 Z1 p2 n" E p-0.1.3 为$ t, b! q; b' n& u- k, O) D
足部 IK 引入0 Z# P3 r+ `2 W. H) A% J
不同的算法 添加了用于调整加载场景时等待时间的参数 (System > LoadWaitFrames)可选
! y& c: p) C/ J) C( o使用默认表达式 (_DEFAULT_) (Model > UseDefaultFace)。
) }& n* T+ X; h2 I4 v% [0 X D4 w5 t) i-0.1.4 支持在
! X9 @2 ~) X/ u" N0 `VMD 文件中读取 IK 开/关数据(模型 > UseIKDataInVMD)修复了7 O7 ~- T8 m2 w l
循环设置不起作用的问题。修复了( }$ I/ B+ J x w7 o& m
插补曲线计算中的
- x) Y- E. N g错误 修复了
* X5 M' j& F! ~9 u$ x" X$ {+ b前束 IK 计算中的错误 -0.1.5+ y" }7 t" N/ W
修复了即使在关闭 VMD 后也无法更改面部表情的问题 修复了
* Q( h7 ~# j( i5 M2 Y在初始化和加载过程中
; b! _+ Q0 {: |( [- n( ~2 X前束位置等下沉的问题。 修复了导致不包含面部表情数据的 VMD 文件无法加载的问题。修复了脚趾 IK 计算 2 -1 L2 s0 m5 E- ~
0.1.64 u& o$ G s7 C0 T0 N9 x3 _
中的问题 修复了在保存/读取未设置+ g/ e& I% M/ l3 V- H) u
-0.1.7 的数据时意外打开 VMD
6 J3 D. F3 j9 a* u' s9 \% h的问题
! n7 F* ]' L7 C修复初始化模型8 |( R' Q) I, ~8 F
时腿部/臀部/胸部位置的初始化逻辑 -0.1.8 新增选项 设置# D8 T) m: K3 O8 y1 \
MMD 相关文件参考目录 (MMDData > MMDDataBaseDir) GC1 X8 ?, q1 w& r
Alloc Memory 的性能调整 扭曲 (x-arm twist/x-hand-twist) 骨骼的临时实现9 H1 q% T' h1 o: b
-0.1.9
, p, R) b; R& n& b手腕角度校正逻辑修复+ I0 `9 F! W$ K/ R
拇指角度校正逻辑修复& j5 q$ N2 Y2 Q# }5 v% \
-0.1.10' U2 b' |+ W! f: ~; F, t. s) l
! u6 A/ x6 l/ Y5 |- M
修复了无法关闭摄像头循环的问题。修复了在没有
+ ~5 k B7 ^9 Mthumb 0 键的 VMD 文件中拇指角度发生偏移的问题 修复了
; m! b! j0 y- D: G" B% i$ W- g! l7 I( g6 }5 `" s* T/ o+ ]4 `
在未指定 MMDDataBaseDir 的情况下选择文件时初始文件夹设置不正确的问题。 修复面部表情逻辑5 E0 O& X# Z, x B
-0.1.11 修复扭骨不只在; a$ i* W1 r, T, y: `2 D/ ^
左手起作用的问题 修复, f8 I# p4 C) V- J [7 P. m
6 }$ E7 U/ o+ ^4 y# C3 m
扭骨的角度计算 -0.1.12 修复. O+ I4 B5 c: u0 N+ O; c
/ X- f, y( }+ c面部表情逻辑 修复了肩部取消角度(肩部 C)未反映的问题。
# X4 x) i2 s+ h/ v; r-0.1.13 修复了
/ e- s# N! z' d. m# x# d' D5 T在保存/加载
% T3 E" e+ J: P0 M0 s# ?0 F数据时,即使角色的 VMD 设置为关闭,面部表情也会被错误重置的问题。修复了扭曲骨骼的角度计算(轴限制)
+ H( k6 p" h& E" l1 t# S7 x- 0.2.0
( V& K1 ?* y5 s1 G修复扭曲骨骼角度计算(平滑)
, Y; |- X9 D2 @9 K-0.2.1 在
2 ^. v& ]/ ~ K4 P( c文件选择对话框(左下角)中添加了排序按钮(名称、修改日期)
1 i# I3 c k$ x, ~) e# t+ T添加一个按钮,以将摄像机的 ModelScale 反映到所有角色的 ModelScale,或将角色的最小 ModelScale 反映到摄像机的 ModelScale。在' S1 M; T( @. V4 G( `9 H8 M* Q
摄像机的 ModelScale 选项下 (>>all chara, <<min chara)" r( z6 J, {0 e: `" D7 \
自动计算搜索栏的宽度(如果坐标不可见则拉伸)
$ T+ B0 F. S- V% H+ }UI > AutoControllerAutoAdjustControllerWidth 设置,可以禁用该设置修复了插补曲线计算
0 w6 h$ K) A w/ t-0.2.3 中的" e. z8 n. z( |. e8 k* h3 a
错误
2 Y" y. m0 j x5 l' L3 b3 ^用于动态调整的参考模型(仅骨骼)输出(仅当 UseDOTweenAnimation=true 时)有关详细信息& k& k& n6 t$ f- ]+ P
,请参阅 [用于动态调整的参考模型输出]。! G: n, b1 q+ K, Y6 O; e
-0.2.4 修复了通过指定多个 VMD 文件保存的+ F( a2 G* t: ?
场景数据无法正常加载的问题。修复了
& ~* a. l# Q- v% o
% w% }1 ?/ N# I. |8 Z i! c8 e5 G扭曲的骨骼角度(平滑)没有正确反映的问题。修复了- |: ]: k6 @! A. ~( X# O% y
% p0 u( h- H; h$ S' m+ q
新增相机- k2 m% ^! B+ p. u" _) T
Y 轴旋转调整参数 -0.2.5 新增
. D) o9 w) [/ T6 P. q# N5 V播放、暂停、停止快捷键选项(所有角色、语音、相机)(所有默认值未指定) [% }. W9 [9 x3 S; O* `0 O
UI] UIKeyPlay, UIKeyPause、UIKeyStop
! M- v# I* i# w4 k仅面部运动应用选项(默认禁用,通过将 beta_EnableFaceOnly 更改为 true 来使用)4 m3 _: ^% o! a5 \: j/ B8 l
-0.3.0 修复了角色在运动过程中* s3 v) u) v' G8 d
可能无意中模糊的问题。
. e3 O/ b) I1 d$ V3 g! C添加了配置选项以提高性能(UseDirectTransformApply - 默认处于打开状态) P: G# |# {: {# G4 b8 c% a
弃用基于 Unity 动画的逻辑并删除
6 M8 h) d) d. G( v相关配置参数 删除了 UseDOTweenAnimation ( 始终为 true) 删除: S. P+ d" _( ]6 S0 X ~
了 UnityCameraInterpolation(始终为 false)删除3 v' O8 V* _+ f: D8 S; W
了 UseOldFootIK(始终为 false),从过去的 IK 逻辑中的 V0 U: u! Q8 U! x* e4 ~( ` v
UI 中删除了相关参数 逻辑修改,在相机运动中不完成一帧中的关键帧切换(与 MMD 60fps 输出相同)[
0 a4 }4 W7 [( D7 a" |# Z. z$ k8 z系统]通过将 JumpCameraAjacentFrame 选项更改为 false 来加载相机运动时启用完成。 -0.3.0
! ]: Z' |# K6 s-0.3.1 修复了在停止运动时
# {8 }' W8 Y% q2 r执行足部 IK 计算的问题 修复了5 @6 K! S0 Z( S% y% j4 }
& y) {, u/ h2 E: M) s肩部取消骨骼(肩部 C)位置不正确的问题 BepInEx 5.3 / BepisPlugins 15.4 / HoneySelect2 2020.08.14 补丁支持:默认启用" O6 E; Y. Y/ v5 t: `
“仅应用面部表情、动作/语音”选项(EnableFaceOnly 选项)
5 X1 B2 z7 D* r/ _ c4 J! }-0.3.3 VMD6 ~- C% ^" r2 {. k- b, I; S
文件中的 IK 开/关修复了无法正确加载数据的问题。修复了处理8 X) W7 F* j/ i+ S6 ]6 @
肩部/肘部/手腕扭曲骨骼平滑时的错误 修复了
" U( Y0 z4 z$ F' @$ g* Y, ?$ q2 G) V; H肢体骨骼被意外拉伸的问题 为- g7 `) \9 J& U$ l
帧更新方法添加了替代选项设置(beta_AltUpdateOption:默认 False = 关闭)% C3 h/ g" U4 y" H' ^& u r0 F
-0.3.4+ L1 i0 i0 P7 P1 d# z2 W& v
正确的. b3 o1 J7 N9 c+ v
2 U8 a8 a5 Q$ X8 g& M4 P比例计算错误
0 w1 j+ @# `+ x6 L4 |+ ~1 ?[无保证]
! N( ?, k. B8 F9 \1 }% j- c/ x本软件按“原样”提供,不提供任何明示或( H" g, J" o8 |$ K) H8 K
暗示的保证," S4 V1 L% n; k A8 |
包括但不限于适销性保证,
2 B& i4 X# }1 G6 R0 ^适用于特定目的和非侵权。# G/ D' a8 `- `0 z P$ D) q
在任何情况下,
% G5 x+ p5 ~7 Q) ]6 ~* S作者或版权所有者均不对任何索赔、损害或其他+ W; E& ?# W4 w; K) O+ W
责任负责。
7 C& `3 L( g, h6 {无论是在合同、侵权行为或其他诉讼中,由软件或
/ H/ C" X; M' m+ s' I- ], e% p软件的使用或其他交易引起或; j' M! \) e5 F
与之相关。! p5 E; S2 g, N `. v& u
|
|