|
HoneySelect2 VMD Play Plugin (HS2VMDPlayPlugin) (v0.3.4) 播放1 A/ E |* n& y4 h# K& e. D
* b4 g. E0 _- r/ \% z
, _5 ^' g: D8 x( NMikuMikuDance 运动数据 (.vmd)。) S* F6 a1 _* B8 T3 z9 p% o5 ?7 \
并非所有动漫都可以工作,因为骨骼结构和 IK 机制非常不同。2 H; I: v: E( O( p; O" ^& Y2 |* l, f$ q
& p5 T$ S1 g: z. A它仅适用于 StudioNEOV2。
3 \ \3 n# k! ~( |& u
. I5 }1 w4 r7 {/ Z4 U$ o9 H. M; |1. 按 “Ctrl” + “Shift” + “V” 切换 GUI 显示(您可以在 BepInEx/config/HS2_VMDPlayPlugin.cfg 文件中更改键)。
( A* p" J6 V8 ]$ _; w8 X! {& ]2. 使用“<”和“>”按钮选择一个角色。
) N+ X* Z# b3 a/ Q0 g) Q3. 按下“关闭”按钮(它将切换到“打开”)以激活该功能。$ `* X% V2 [7 R7 S
- 现有的动漫将被停止。# @) J* ] ~- O7 o7 Y
4. 直接在 VMD 旁边键入文件名,或单击“...” 单击该按钮以选择一个文件。' Z3 ^" ]4 ]0 `$ V
如果文件路径包含 “;” 或使用“+”按钮合并来自多个 VMD 文件的动作。
$ t, b: f- p9 |8 f( M+ O- d* s5. (可选)如果有音频,请在 Sound 旁边键入文件名,或按“Load”(加载)按钮加载文件。# f2 H6 [* l5 Y
6. 按下 VMD 上的“加载”按钮以加载 VMD 文件(以及声音文件,如果指定)。 )1 U! t1 Z; I4 h; c& g
7. (可选)如果摄像机运动位于单独的 VMD 文件中,请打开 Camera 选项卡,指定 VMD 文件,然后选择 Load (加载) 以导入它。' _3 k+ I0 ^2 E3 d
8. (可选)如果要指定循环音频等参数,请打开声音选项卡并更改设置。1 h* L) v9 g( ~
9. 按播放(全部)按钮播放动漫、相机和音频。7 ]& a7 C. L W% a. W
10. (可选)更改屏幕底部的控制器选项。4 a- a) u* p4 `+ x# U5 I& k
8 R5 c* W1 U; h: N* X
如果要将动漫与多个角色同步,请使用 (All Chara) 右侧的 Play/Pause/Stop 按钮。% O- Z) Z$ K" ]5 o& O& |
+ A2 k" @/ N$ Z$ R# O H7 X/ P" ]" g4 w0 O
根据 BepInEx/plugins/HS2_VMDPlayPlugin/FaceData.txt 中包含的人脸设置,捕获4 h7 T E. L3 F4 V1 [( T/ t
.vmd 文件中的面部表情操作参数,以进行面部表情操作。) Y$ i) c0 t# p8 N% k2 |+ b' d
请参阅自定义面部表情。
: I1 h- R) g# w1 l' v* O8 S% l) {6 h( v7 ^, B7 N
9 E$ Y/ {/ A3 G+ `3 F
先决条件:
2 H6 L/ {2 I' ^; c3 s已安装 BepInEx v5.3 (https://github.com/BepInEx/BepInEx)。
% V( r$ X0 _, i6 Z( D如果要写入场景数据,则需要 BepisPlugins 中包含的 ExtensibleSaveFormat 插件。5 W. b- A. c+ d& y
- c1 l4 P# D" A& F) P, F) _8 U3 _
* l N6 b/ G1 `+ }5 p( p- L) g8 u+ \[部署]+ G, N5 \! o& x& z
将 BepInEx 文件夹复制到 HoneySelect2 部署目录。
6 M( y) U; m! U) Z文件夹结构应如下所示:
& }/ [0 f8 Q; Q9 h$ Y0 E( f
2 m# d( k+ t" j+ O(HoneySelect2 介绍目录) /
' N8 a, H# Y: E2 o s3 JStudioNEOV2_Data/6 T4 \% a+ L3 q( S! k4 m
...
. s) u' t, }- o...5 w4 ~: d* r$ c" F. B. ?
BepInEx/
6 F( f1 m$ d& D b" d% A' C插件/
- T5 }7 O2 O- r& b6 eHS2_VMDPlayPlugin/1 W1 w8 p* V- Y0 T Z3 G0 i: P
HS2_VMDPlayPlugin.dll" Z5 W" E+ e' E2 f, a3 y9 P
MMD4URuntime.dll
- h4 U& w) b/ Q$ x5 P7 _5 C, @/ OFaceData_ sample.txt) |4 I2 |% g/ i5 p" j# M# Q
config/ O( S# | L3 c
HS2_VMDPlayPlugin.cfg
1 A. N7 f. [' Z4 E' q...。1 R, F% Q- r; N( K
HoneySelect2.exe- f3 }$ ]5 J, L' y( u6 c! }) G
StudioNEOV2.exe
; p: O" W- m/ C3 S2 H2 ^ E7 |* r7 k/ V; \! j: F, `$ V* P: V
* O- P+ _7 @4 D+ E+ d
9 I+ S* I/ c5 j3 w4 Q9 c
卸载 删除
8 k. n9 B; W: Q) k0 O0 L+ R2 h以下目录和文件:
% h3 `2 H2 ]/ @# Q# A9 {( ~BepInEx/plugins/HS2_VMDPlayPlugin 目录- P! C3 ^2 U8 t+ a2 T
BepInEx/config/HS2_VMDPlayPlugin.cfg 文件
1 @2 c0 h! ]$ D8 D0 L
4 p/ m; J" L* @; L4 k) p
0 b, r. ]% p# E" m- v7 a- y[自定义面部表情]
6 J$ A X# f7 @$ W. ?# w可以通过编辑 FaceData.txt 来添加和编辑面部变形。 日语 Morph 名称必须以 UTF-8 编码存储。
4 ~* T+ E1 w |/ p' T5 w1 F! k
(语法)
4 C( O k0 {, y! S> < 完整 := <MORPH NAME> “=” <类型: 眉毛,眼睛,嘴>全部 “,” < 属性值> [“,” < 属性值> “,” <属性值> ....]8 F2 P: ]* f5 m {
* z; [: E8 }/ y9 K9 Z" R/ F< 属性值> :=
* U( _. r3 k5 y“eyebrow” “:” <眉纹编号> : < 粗细 0-1.0> - 眉纹,如果指定了多个,则按粗细合并。
) ]3 M) R% o) u7 M3 Z“eyeopen” “:” < 体重 0-1.0> - 眼睛张开度, o1 h: L/ x; {
“eye” “:” < 眼型数字> “:” < 体重 0-1.0> - 眼型- X1 ^1 q9 ~ {% D3 N4 O
“张口” “:” < 体重 0-1.0> - 张口度4 D V# \6 q) E0 n$ D+ C4 e
“mouth” “:” <口型编号> “:” < 体重 0-1.0> - 口型' T/ k+ @4 o o! u
“tongue” “:” “0” or “1” - 伸出舌头 (1) 不要 (0)) g6 C. ?8 G# z/ R5 G1 a/ L y9 x6 s+ t
1 b6 u; G0 H$ I: I$ C(示例) wink=# F5 ^; v# k% D8 R7 o9 q
EYE,eye:5:13 }7 l9 Y/ X5 _) u5 ?
mix=ALL,eyeopen:0.5,eye:12:0.4,eye:10:0.3,mouthopen:0.3,mouth:15:1,tongue:0
9 G& \3 f! k0 D1 m- P2 u% T8 B& ~' `* {7 @
你可以指定 _DEFAULT_ 作为
/ V) ?. y0 d I5 S- E特殊元素。 如果未在 VMD 端指定任何键,则此元素是默认表达式。
! O# {. ^8 a( D' k1 ](如果 Model > UseDefaultFace 在设置中为 true): I, R, m+ T4 o+ {
# d6 v/ _6 x; f( B+ S7 [& b
写入场景+ L7 C5 r' |; i5 j
+ x$ {* J% w. B! M/ u' R U5 V
将 VMD 设置信息写入和读取场景文件 (png)。. i! s$ k' r! c" C
如果您不想编写它,请在 BepInEx/config/HS2_VMDPlayPlugin.cfg 文件中将以下行更改为 false。
. h7 _4 o( m7 n u* t0 W+ ^+ X- g3 P& N
[保存]. k7 I3 e0 t6 s3 }4 n; P
SaveInScene=true #これを 更改为
1 H* \: J" t7 c$ z$ K9 _
! e+ n. O" M, }# L4 [/ ~/ z# V: p; T4 N
false) `8 m1 R: P& I* R) y5 h, E
[播放控制器]9 [6 K1 k! Z2 s ?
Show Config / Close Config - 打开(关闭)参数调整配置屏幕。
! @) k3 }% Z6 S$ @: a* |播放/暂停/停止 - 立即播放/暂停/停止运动/音频/摄像机。
W# w% r7 y/ a! U s7 ^% Z9 c自动隐藏 - 如果选中,则在参数调整配置屏幕未打开且鼠标光标未位于控制器位置(距屏幕底部 40 像素)时自动隐藏控制器。0 g, }( z7 y, B e0 n4 C! V% I
关闭 - 关闭控制器和参数调整配置屏幕。
, O. W( B& A& y) ^/ m, e) Y2 U8 J6 Z% g6 G% d
, B, ?9 ?" |- O7 [
/ M9 x8 x1 Q! l. Q* G1 B+ H# @- d' DTuning Parameters (优化参数) -
6 y5 Z6 _: k( g1 Q: Y! a模型的优化参数
' v3 e1 ?* I) R% N+ PCenterPos(y):更改 centerbone 的 Y 位置。 (扩展后添加)- {- g% \0 b m( U& v& z
Model Scale(模型缩放):所有移动骨骼的 x、y 和 z 坐标的缩放(与骨骼的参考位置不同)Move
5 E0 E1 Z9 D4 E. u+ b(y)Scale(移动(y)Scale):所有移动骨骼的 y 坐标的缩放(在应用“模型缩放”(Model Scale)后添加); d/ [+ A+ I2 k u3 X' ~
2 z# _0 F) y( R# v
CenterBasePos:虚拟中心骨的 Y 位置(在 PMX 模型上假定的位置)
; ~* u+ w: {9 iShoulder/UpperArm/LowerArm Tilt:肩部、上臂和手臂的初始倾斜度。 将 T 姿势与 A 姿势 (MMD) 对齐的调整值。
+ }+ o6 i+ o& W, e, F
8 r) G k0 ]. a如果要使运动更具动态性,请增加 Model Scale。 T+ ^! T# f( o
如果您的双腿因 IK 而伸展和颤抖,请减小模型比例。
8 C2 H- v" |; y' S如果模型比例增加并且它被埋在地板下,请额外调整 CenterPos(y) 和 Model Scale(y)。3 i. k V# I0 g9 W$ G+ r& e4 k, V# P0 A
) O! B* r' b/ J6 ?: G; M在多个模型运动的情况下,最好对齐 Model Scale(模型比例)。3 P- M3 @) d; U
1 e7 t. c! P4 h[用于动作调整的参考模型输出]
o. z7 d% I8 ? X6 ^0 ?9 w$ wVMD Load Config(需要重新加载)右侧显示“保存”(用于多个模型的位置调整
( W9 ]' ~. ~- w% o; T" j/ D0 M- V5 T8 _0 s* l+ k. \$ q0 Z
# W0 b0 y0 r2 K9 @
) 使用 “PMX” 按钮输出。$ l# B0 S `* S% `$ Y, b! l
按下此按钮将使模型返回到其初始姿势 (A-stance),并以 PMX 文件格式输出骨骼配置。0 \0 [9 S9 }; \( }
该文件在 BepInEx/plugins/HS2_VMDPlayPlugin/pmx/ 目录下输出时间戳。! k& N0 o0 x4 a& Y9 B8 w4 N
内容仅为骨骼。 它不包含任何网格、纹理、变形等。
, }% t' E; r2 E7 j$ @; r它旨在与 VMD 大小调整 (VMD_sizing) 工具一起使用。
# E8 E7 v4 n3 X" z7 e; OShoulder Tilt 等值也使用设置的值。 但是,无论设置如何,模型比例都被视为 1.0。/ I7 r# l: ~* |$ T! b) i
因此,如果要使用输出模型的调整后的运动,请将 Model Scale 设置为 1.0 并使用它。
a! N( P$ l m0 w) ?7 g8 [3 U1 R( z# a7 Y' t* x5 E3 g
对于 Base Scale (基础缩放) 和 Global Scale (全局缩放),请使用配置的值。' T, i5 b3 [$ ~. R; j
在默认的 BaseScale 0.095 和 Global Scale 10.0 的情况下,游戏中的 Y=10.0(大致是默认角色身体的中心)在 MMD 中大约是 Y=10.6。
; T. ?" @& l8 B/ E" F1 v(因为动作加载后乘以 0.95)3 b2 \$ t2 Y0 e; l. k- R
1 @( }$ D; ?, L% J% Y5 n. G
; S0 i+ {( k5 _' p
6 N- n0 o& Q5 a% P; T( }4 k[历史]
w, z+ P, U2 P0 [! c! @+ }-0.0.1
3 ` ? c& y" @初始版本& }' I! _6 z8 O: j: n2 E4 P
- 0.0.2 支持读取3 K8 {. B& A: }3 Z3 S/ F# D
摄像机视角数据
& \3 Y2 Y- o2 \-0.0.3 修复了
0 m2 ?* D% X% d. ]6 i9 g1 QGUI 关闭7 r9 N% @. s+ [
时,使用鼠标进行正常摄像机操作可能无法工作的问题 -0.0.41 ^# b' Q( d6 e0 H" d+ N
修复了摄像机运动逻辑(旧逻辑是通过将 UnityCameraInterpolation 选项设置为 True 来指定的)将9 m, f- l+ N9 u/ X+ j& U
默认的 Shoulder Tilt 从 12 更改为 8(度)。! T6 [9 `% m, j3 t: \+ a
-0.0.58 o) O* V7 ]9 d- U# z" p8 I1 B3 d
修复了相机计算逻辑(删除了在有一帧差异的键之间禁用完成的逻辑)-
6 L1 F0 U" k/ \1 U1 O5 O3 Z+ N, z: c0.0.6 支持, b/ I( K8 Q2 @, R1 |
指定多个 VMD 文件(动作 + 面部表情等)(使用“+”按钮或“;” 带分离的直接输入)相机和角色动作的
! E7 L0 k, F% }0 ^0 t动画计算逻辑已完全修改。 从使用 Unity 的 Animation 切换到 DOTween 自己的实现。
" Z `0 ?: P, q+ b+ M& o初始肩部、上臂和臂参数(模型 -> ShoulderTiltDefault、UpperArmTiltDefault、LowerArmTiltDefault)。
( K7 y( n9 _0 C `7 a% w设置颈部旋转角度的补充参数 (Model - > NeckRotationScale)。
5 m1 s! d( k0 C; M" }0 X添加了用于计算摄像机和整个角色位置的缩放选项 (System -> BaseScale。 它以与 GlobalScale 相同的方式应用于整个系统。 ) 修复了
4 ?& q4 @ p# \4 J. ]模型初始缩放计算中的错误(修复了始终应用字符高度cf_N_height的问题)! M0 ~8 Z& c% n$ F9 N8 z. u: c
-0.1.0 重构了与其他. G* g f D- j- d5 K. h8 w
插件( Q0 {" @( b8 k$ \3 B2 D
共享代码 肩部取消 (Shoulder P/Shoulder C) 骨骼的临时实现
& Y9 J/ G0 f# W- U-0.1.1 修复了无法选择
( U9 r. p+ E! _( `: P! C5 y' w第二个和后续字符的问题。
, [: h' j% r0 s+ l, A7 o1 c$ h-0.1.2 修复了快捷键设置中无法使用
7 u) @# R, N; \' K. U大写字母的问题。/ _- g3 F' a0 N& b" k- S: a! y
IK 目标修复了曲调计算未初始化的问题(在最后一个键之后)修复了在切换
. ~) O6 X3 @2 U; m: U! @地图或加载场景时 UI 恢复为隐藏的问题。- V' ~5 f7 m: C8 d x3 C6 F3 Q& q
性能改进" u- Y0 e" }$ F+ u1 e8 n# y: I/ r
-0.1.3 为
2 q6 ]0 O0 v* ]; e" T r足部 IK 引入, }4 t5 u7 D( h ? y
不同的算法 添加了用于调整加载场景时等待时间的参数 (System > LoadWaitFrames)可选! ` j+ J9 h. d
使用默认表达式 (_DEFAULT_) (Model > UseDefaultFace)。
) ?, N6 g1 V5 `; p-0.1.4 支持在
& H( l6 ]' k9 q! YVMD 文件中读取 IK 开/关数据(模型 > UseIKDataInVMD)修复了
7 K! P6 X: }( F* j* I, s0 V循环设置不起作用的问题。修复了
* }; Z+ a% Y8 d插补曲线计算中的8 R c& _' B4 ^
错误 修复了" [+ m N8 k( {! w
前束 IK 计算中的错误 -0.1.5
* M. Q0 `$ d Y# M$ P: ^修复了即使在关闭 VMD 后也无法更改面部表情的问题 修复了 T1 h* y6 @3 n6 H* c* w: Z% F: ~% y
在初始化和加载过程中
/ ], e' k$ p7 \7 e前束位置等下沉的问题。 修复了导致不包含面部表情数据的 VMD 文件无法加载的问题。修复了脚趾 IK 计算 2 -; t: z1 H1 Y$ d# q2 ?6 l: T; x
0.1.62 F2 i6 X% d: j2 e( I. ]. `; ~, L0 c6 N
中的问题 修复了在保存/读取未设置; v! y0 w5 S! I/ ?
-0.1.7 的数据时意外打开 VMD, x/ s$ V1 ?2 D" l; {# ^9 G
的问题
/ `$ j( }+ i2 ^" K修复初始化模型
+ v1 ^% {0 w+ Y! S时腿部/臀部/胸部位置的初始化逻辑 -0.1.8 新增选项 设置
6 I8 m3 z& `. I$ ?MMD 相关文件参考目录 (MMDData > MMDDataBaseDir) GC
" R7 A) Z6 D0 n. eAlloc Memory 的性能调整 扭曲 (x-arm twist/x-hand-twist) 骨骼的临时实现" B$ {2 S' E/ e% B' W/ W" |
-0.1.9
3 \7 n0 O) ~2 p* V手腕角度校正逻辑修复
g3 H+ N3 X: q拇指角度校正逻辑修复
3 a4 E# O2 c c/ I" \-0.1.10
$ o3 H, P+ C. P* Y) L( G9 F
+ F" T3 F2 A# t修复了无法关闭摄像头循环的问题。修复了在没有" z' F$ n# L' m
thumb 0 键的 VMD 文件中拇指角度发生偏移的问题 修复了
* e6 x* P3 J3 N1 Y6 ?% r
F% G+ B, ?+ f+ }在未指定 MMDDataBaseDir 的情况下选择文件时初始文件夹设置不正确的问题。 修复面部表情逻辑* W( F8 D. W* w+ @$ V/ C- G, ^
-0.1.11 修复扭骨不只在
4 z5 G5 G/ A2 a$ M2 O9 s左手起作用的问题 修复% W1 j8 L7 A, j! }
8 Q0 {. i9 h6 e- b扭骨的角度计算 -0.1.12 修复
* p. a' g3 _; |+ l" s' {
/ B4 x( I1 W3 J. k% C: E1 `/ j0 h面部表情逻辑 修复了肩部取消角度(肩部 C)未反映的问题。
( n9 R" D- Z( L# t' B9 c' H, B-0.1.13 修复了0 ?* C% [7 ]3 U/ M$ L. I; C4 O
在保存/加载/ N& G; k% C# g" [0 ]$ F7 G
数据时,即使角色的 VMD 设置为关闭,面部表情也会被错误重置的问题。修复了扭曲骨骼的角度计算(轴限制)& Z, \( D. J1 y: Y: m/ Q+ a( w
- 0.2.03 j: w+ r( \. \; ]- u0 V; K& H0 |0 M
修复扭曲骨骼角度计算(平滑)
3 |8 Z0 o7 b. Q3 S1 f4 Y-0.2.1 在, |% f) K2 s3 t0 f& |5 F
文件选择对话框(左下角)中添加了排序按钮(名称、修改日期)( N. G9 b# H- D L: n
添加一个按钮,以将摄像机的 ModelScale 反映到所有角色的 ModelScale,或将角色的最小 ModelScale 反映到摄像机的 ModelScale。在! g' m L$ A9 S: C
摄像机的 ModelScale 选项下 (>>all chara, <<min chara)3 A/ Y% u( ?' c3 \+ Q: D) ^
自动计算搜索栏的宽度(如果坐标不可见则拉伸)! Y# Y0 T# Y. D
UI > AutoControllerAutoAdjustControllerWidth 设置,可以禁用该设置修复了插补曲线计算
, q& e9 V6 J4 @. k0 g-0.2.3 中的
2 a# v7 a0 X1 x9 x% X7 F A错误, Q& T! l* h' f
用于动态调整的参考模型(仅骨骼)输出(仅当 UseDOTweenAnimation=true 时)有关详细信息
# q, W# I& J. u: e. C,请参阅 [用于动态调整的参考模型输出]。
- y+ ] I M. d, W) e-0.2.4 修复了通过指定多个 VMD 文件保存的' l5 X3 ?: N: P& u+ g' n/ V
场景数据无法正常加载的问题。修复了) _) |# T1 X% r
9 u6 K/ }; @/ M, K( {扭曲的骨骼角度(平滑)没有正确反映的问题。修复了
' f9 \: ^" [. r* g/ R1 ]3 X/ z( R- G& z4 B8 i" j% w3 I
新增相机
7 f: _% z, X5 f m7 BY 轴旋转调整参数 -0.2.5 新增
/ B+ \: {# m% R. H- N+ ~播放、暂停、停止快捷键选项(所有角色、语音、相机)(所有默认值未指定) [
; @4 ?% L) A" @2 j3 e( g% l2 mUI] UIKeyPlay, UIKeyPause、UIKeyStop4 b! ^. ?* I X% b) i* ^
仅面部运动应用选项(默认禁用,通过将 beta_EnableFaceOnly 更改为 true 来使用)2 Y: ^0 e! D# P8 M
-0.3.0 修复了角色在运动过程中
8 P# g; ]6 r2 N7 A* k( Y8 n可能无意中模糊的问题。
/ z7 }2 C8 e# ]+ s$ F$ q添加了配置选项以提高性能(UseDirectTransformApply - 默认处于打开状态)* G/ `! E) L" h. a. v) m' g8 @
弃用基于 Unity 动画的逻辑并删除. _5 _% b7 q0 C
相关配置参数 删除了 UseDOTweenAnimation ( 始终为 true) 删除
$ Z( |( |) i) ~! f- u了 UnityCameraInterpolation(始终为 false)删除
6 h, k" L+ T# f2 d了 UseOldFootIK(始终为 false),从过去的 IK 逻辑中的
6 o2 P D& E0 X) h! ~UI 中删除了相关参数 逻辑修改,在相机运动中不完成一帧中的关键帧切换(与 MMD 60fps 输出相同)[
5 l( X' U4 w# c9 p4 p1 l系统]通过将 JumpCameraAjacentFrame 选项更改为 false 来加载相机运动时启用完成。 -0.3.0
; \. V4 z' t- @-0.3.1 修复了在停止运动时
9 j( Z4 j% U) {: [执行足部 IK 计算的问题 修复了
' C8 W r1 j7 Q% L
3 v* I! f: ?1 }$ k' D肩部取消骨骼(肩部 C)位置不正确的问题 BepInEx 5.3 / BepisPlugins 15.4 / HoneySelect2 2020.08.14 补丁支持:默认启用& ^8 u) h+ R* K8 G
“仅应用面部表情、动作/语音”选项(EnableFaceOnly 选项)
. }) s* B+ j3 y" P, r) ?-0.3.3 VMD, `' V0 Z" [# R
文件中的 IK 开/关修复了无法正确加载数据的问题。修复了处理
V; z9 _$ U* y, S& N肩部/肘部/手腕扭曲骨骼平滑时的错误 修复了: {5 P+ F4 |' v2 e6 h
肢体骨骼被意外拉伸的问题 为0 i3 Z# N) s3 |! D
帧更新方法添加了替代选项设置(beta_AltUpdateOption:默认 False = 关闭)+ C; X* g/ R3 g/ D+ f$ _, j
-0.3.4( L& C* X0 n8 c
正确的) Z2 K; ~/ C/ V, i. s& \
! w$ k7 v% ~: G) d( g! U% O1 m比例计算错误
6 ]4 H9 Z7 Y3 ^1 `. @[无保证]
1 p# p+ E- s% z% i- u本软件按“原样”提供,不提供任何明示或
4 Q, o0 s* Q( ?; v- n( u, a0 K1 ^暗示的保证,, w$ k; z; s" U
包括但不限于适销性保证,4 ?* A6 {) a; z! \2 K% a; d
适用于特定目的和非侵权。! N- D3 G6 i7 m6 _: c# z6 ~+ Z' F
在任何情况下,
+ _$ |* Q5 _4 E( n! v& o: I作者或版权所有者均不对任何索赔、损害或其他# O4 ]0 k3 o0 R; [* i5 J
责任负责。
8 B3 w0 l( G8 I6 s/ J; i7 t无论是在合同、侵权行为或其他诉讼中,由软件或
9 i' Z8 ]6 y% ?1 q; _软件的使用或其他交易引起或! ]* J& q' {' t" b2 U/ {& W# t2 N' z
与之相关。4 v+ k/ o. r+ P3 G# D; i% A
|
|