|
|
HoneySelect2 VMD Play Plugin (HS2VMDPlayPlugin) (v0.3.4) 播放$ S) Q5 Z( D# c$ b) c# g' I# e% s" G
L8 V3 [7 U+ L2 N/ }$ b
s- G9 R! ~7 c) T& v4 HMikuMikuDance 运动数据 (.vmd)。
7 X$ Q/ S' T) A) u2 S, u5 w, L并非所有动漫都可以工作,因为骨骼结构和 IK 机制非常不同。
& {" S" S; G* }6 Y9 z4 C/ U8 {4 I% ^+ }" M% ]
它仅适用于 StudioNEOV2。
. q' n3 p7 E f9 a& ]3 y7 [; l
+ {, ]3 D9 d) X! v* n8 Y1. 按 “Ctrl” + “Shift” + “V” 切换 GUI 显示(您可以在 BepInEx/config/HS2_VMDPlayPlugin.cfg 文件中更改键)。
( t8 P% z; S9 G6 U2. 使用“<”和“>”按钮选择一个角色。
7 V }5 [7 b$ u# \6 q3. 按下“关闭”按钮(它将切换到“打开”)以激活该功能。( S& r. Z3 |! j) L) W
- 现有的动漫将被停止。2 X: R) _# p* Y4 l4 D; Y/ t$ N
4. 直接在 VMD 旁边键入文件名,或单击“...” 单击该按钮以选择一个文件。0 n. m# J* m) f1 A# j8 e8 D6 v
如果文件路径包含 “;” 或使用“+”按钮合并来自多个 VMD 文件的动作。( @4 ~1 A+ R, T
5. (可选)如果有音频,请在 Sound 旁边键入文件名,或按“Load”(加载)按钮加载文件。# R6 G; y; G, N
6. 按下 VMD 上的“加载”按钮以加载 VMD 文件(以及声音文件,如果指定)。 )
; `* @# ?! s) q# g( Q: ?7. (可选)如果摄像机运动位于单独的 VMD 文件中,请打开 Camera 选项卡,指定 VMD 文件,然后选择 Load (加载) 以导入它。
, x8 i/ j4 R$ O- y8. (可选)如果要指定循环音频等参数,请打开声音选项卡并更改设置。
, [+ C$ v( o! t& s8 I& h* M9. 按播放(全部)按钮播放动漫、相机和音频。
+ X$ W9 c4 `1 D6 E2 P10. (可选)更改屏幕底部的控制器选项。
$ n" v, J: Y$ _' e6 Q O7 c$ `; f5 r: D7 d- T7 s& v* s
如果要将动漫与多个角色同步,请使用 (All Chara) 右侧的 Play/Pause/Stop 按钮。( F; R' H/ n! a. P8 m3 I, N
a% v9 d7 [9 \ Y& \# a
M, x' X" ]' ^( |1 v# \根据 BepInEx/plugins/HS2_VMDPlayPlugin/FaceData.txt 中包含的人脸设置,捕获
/ }3 K- X6 P5 S: e.vmd 文件中的面部表情操作参数,以进行面部表情操作。
# p# B" U# h; X1 N9 k6 S+ K请参阅自定义面部表情。& m8 b* ^& {3 b" y' ^
2 c; t+ M; z/ p% E$ N9 o; z- g
7 ^$ i$ q: `+ y# h4 B! H先决条件:" x* W( z: r2 |
已安装 BepInEx v5.3 (https://github.com/BepInEx/BepInEx)。& h) q9 O! S* K( A" E0 P
如果要写入场景数据,则需要 BepisPlugins 中包含的 ExtensibleSaveFormat 插件。8 ?* P" U8 L6 r3 X
1 X, @/ f) K0 Z% K* C/ O
0 g8 \1 A7 B, e% {& y4 O
[部署]9 @. N7 ~5 W) I' B; B/ s+ p
将 BepInEx 文件夹复制到 HoneySelect2 部署目录。4 f! e& N% p+ e+ x& v
文件夹结构应如下所示:
+ J5 E( _) B: ~( r6 {. w# C" B: J9 E# B. k( y9 y
(HoneySelect2 介绍目录) /
( ]% |4 h0 n/ J' FStudioNEOV2_Data/
$ I) g- G3 j ?5 r* |...
8 ]3 y: v7 n; w8 z4 _.... a% _# J4 R0 I. ?- j" X5 {
BepInEx/! I0 z. r, N8 C8 J1 ]
插件/
% B" W. _1 U* d; @! ^2 sHS2_VMDPlayPlugin/
6 b& e$ y% F- j" N% FHS2_VMDPlayPlugin.dll/ _5 t. Y* N; g( Z5 S
MMD4URuntime.dll# y0 g$ i1 X+ `! h. }' x
FaceData_ sample.txt! K& v4 S& d6 Y% D# j [* z
config/
+ ]8 G, j# y- _HS2_VMDPlayPlugin.cfg3 |' e$ p( m9 M) @6 W% X8 m- l) y# w
...。
# a2 F1 l* q; ^( G% A: {HoneySelect2.exe
/ I, @" F- L- _- t% r7 XStudioNEOV2.exe
0 w7 D$ m# Q1 `: m6 j5 I S. Q) Q
+ x$ g* t- w0 ^7 R5 _( {: t
- t7 ]) M5 @% |. e* g3 X
卸载 删除- A, |+ R4 k r( `4 g* e7 Q
以下目录和文件:
6 V+ h: e- ]0 y8 w% C8 J- Q# rBepInEx/plugins/HS2_VMDPlayPlugin 目录: h. i ]4 x( L( O8 M4 d
BepInEx/config/HS2_VMDPlayPlugin.cfg 文件/ X# u$ L( B( v- s
0 S+ [" [" l! \5 j
$ n7 p+ N3 T F1 j5 d[自定义面部表情]5 Z2 h! _5 y4 E( g9 s; d, Z
可以通过编辑 FaceData.txt 来添加和编辑面部变形。 日语 Morph 名称必须以 UTF-8 编码存储。
; ]$ l/ Z' G3 W/ X$ S7 M. Q2 H: b4 z2 ^0 i
(语法)7 g' c. v( N1 b. y; b0 B% h
> < 完整 := <MORPH NAME> “=” <类型: 眉毛,眼睛,嘴>全部 “,” < 属性值> [“,” < 属性值> “,” <属性值> ....]
- J) X3 t7 `- Q: _/ l
( ~2 B+ A% s. L& @< 属性值> :=, L! r1 R7 g7 r7 L/ u$ Y) H* j/ `
“eyebrow” “:” <眉纹编号> : < 粗细 0-1.0> - 眉纹,如果指定了多个,则按粗细合并。
- \2 F$ O4 l1 q; v“eyeopen” “:” < 体重 0-1.0> - 眼睛张开度
1 S( ~9 a2 u5 D! O; p“eye” “:” < 眼型数字> “:” < 体重 0-1.0> - 眼型
+ K+ d8 B4 \7 i5 f“张口” “:” < 体重 0-1.0> - 张口度
' [6 m0 b" i$ w7 d“mouth” “:” <口型编号> “:” < 体重 0-1.0> - 口型
! S! n. e9 c/ \0 p* } `+ q, ~“tongue” “:” “0” or “1” - 伸出舌头 (1) 不要 (0)3 R5 h4 o) O) v8 i
9 o1 y; D; L+ I. U4 ]* K(示例) wink=
2 x4 x9 t! Z/ u/ P+ GEYE,eye:5:1
% H" h# Z6 l/ d3 H" tmix=ALL,eyeopen:0.5,eye:12:0.4,eye:10:0.3,mouthopen:0.3,mouth:15:1,tongue:0
2 }5 t2 K) I u$ \# W; [" r+ [0 h6 x; e, ^ D% w$ `7 A/ h# \
你可以指定 _DEFAULT_ 作为+ R. y, Q3 Z7 h5 z
特殊元素。 如果未在 VMD 端指定任何键,则此元素是默认表达式。
5 P7 o7 ^6 m |+ \9 p5 f% Q: H. \6 y(如果 Model > UseDefaultFace 在设置中为 true)3 |7 O/ b3 c- Z- G5 Z9 J
& ~! i& ]! f. [写入场景
' S; L% r" D% K0 W* R3 {. |0 w5 w2 O7 i2 _* N5 S3 E
将 VMD 设置信息写入和读取场景文件 (png)。
- E6 f& T! X' G; {; n4 d; |5 c如果您不想编写它,请在 BepInEx/config/HS2_VMDPlayPlugin.cfg 文件中将以下行更改为 false。
5 [( K* t: e K1 b7 u* w2 q# Z3 N. k# p
[保存]
* @6 ~5 B3 `# G1 x" LSaveInScene=true #これを 更改为
% R" l( ~* E2 l, j
7 ]/ m. ]# o; S8 o
6 W7 K& X& z6 g9 F- X9 Z# \false
0 P- z: e9 k& R' u- N: ?+ @[播放控制器]
. B _) k6 P* O( Y% p6 wShow Config / Close Config - 打开(关闭)参数调整配置屏幕。
9 n, O- b2 @% S7 ^) @3 x播放/暂停/停止 - 立即播放/暂停/停止运动/音频/摄像机。( c9 z, r: Q% c# G1 C9 e
自动隐藏 - 如果选中,则在参数调整配置屏幕未打开且鼠标光标未位于控制器位置(距屏幕底部 40 像素)时自动隐藏控制器。
. \9 h' u6 B4 G关闭 - 关闭控制器和参数调整配置屏幕。$ [0 Y/ a# M' c' m: k0 y" K
, M7 r! j# B/ y& R$ Q. w6 b5 O
! S7 |( e3 j1 {( O. w& \0 i q" O- ^; ?0 D
Tuning Parameters (优化参数) -5 ?8 U" V4 c( y
模型的优化参数
4 N2 o! `. s$ p: L$ \/ M1 z7 F( xCenterPos(y):更改 centerbone 的 Y 位置。 (扩展后添加)
3 x. \# W9 o% C# rModel Scale(模型缩放):所有移动骨骼的 x、y 和 z 坐标的缩放(与骨骼的参考位置不同)Move! ^$ b1 _5 _" [. l7 |; r( k
(y)Scale(移动(y)Scale):所有移动骨骼的 y 坐标的缩放(在应用“模型缩放”(Model Scale)后添加)
7 _5 E, e8 c- K9 C; w$ A) |
- e; ~+ v+ X& e) k$ p! L3 `3 dCenterBasePos:虚拟中心骨的 Y 位置(在 PMX 模型上假定的位置)
& ^. q5 z: o6 H# V( c+ ~Shoulder/UpperArm/LowerArm Tilt:肩部、上臂和手臂的初始倾斜度。 将 T 姿势与 A 姿势 (MMD) 对齐的调整值。3 u* E2 i6 s& e$ j M
% W2 Y% P: S; p7 \9 t如果要使运动更具动态性,请增加 Model Scale。/ X# W7 {. y5 k* T* T
如果您的双腿因 IK 而伸展和颤抖,请减小模型比例。2 l) {# _: C0 ~8 \. J
如果模型比例增加并且它被埋在地板下,请额外调整 CenterPos(y) 和 Model Scale(y)。
. q7 S" e! ^2 H. v
2 b0 r2 \1 o9 @: H) Z( H在多个模型运动的情况下,最好对齐 Model Scale(模型比例)。
4 [/ d, p* u( p5 Y/ C/ E- y C
% e, N$ C1 E) g. b- U6 n. |# K' j( k[用于动作调整的参考模型输出]
# m0 E3 T4 {2 tVMD Load Config(需要重新加载)右侧显示“保存”(用于多个模型的位置调整4 c' r6 V$ m1 L$ o% r8 h
, m' q) q- X/ @
. ?2 E+ C" _0 w" K, l6 h/ Y
) 使用 “PMX” 按钮输出。# J& U" }8 j U$ J7 u3 V3 Q
按下此按钮将使模型返回到其初始姿势 (A-stance),并以 PMX 文件格式输出骨骼配置。+ B, m( i3 V4 L$ Z6 ?1 @/ w
该文件在 BepInEx/plugins/HS2_VMDPlayPlugin/pmx/ 目录下输出时间戳。
% z+ v$ H* g* ~2 T# N* z9 Z内容仅为骨骼。 它不包含任何网格、纹理、变形等。9 q' s( n; s" U: z' Z8 D4 w' U
它旨在与 VMD 大小调整 (VMD_sizing) 工具一起使用。) ^& v/ A9 ^* j5 n: N
Shoulder Tilt 等值也使用设置的值。 但是,无论设置如何,模型比例都被视为 1.0。
8 D& f3 L0 P$ {% V4 m因此,如果要使用输出模型的调整后的运动,请将 Model Scale 设置为 1.0 并使用它。
3 D: u! v% N/ {' s- j& V! q4 l$ H* p1 b! v4 _
对于 Base Scale (基础缩放) 和 Global Scale (全局缩放),请使用配置的值。- H3 L& J3 k" [% Y
在默认的 BaseScale 0.095 和 Global Scale 10.0 的情况下,游戏中的 Y=10.0(大致是默认角色身体的中心)在 MMD 中大约是 Y=10.6。
! u/ G! B# h% b, N(因为动作加载后乘以 0.95)
1 b! R" a7 Y7 k) Q! `# M: u- d+ r% P6 T" G9 @& P! g; m7 c
5 b6 F$ F$ f ~ m
8 L, d5 a: n" ~' B8 w
[历史]
7 r# ?8 x9 P" w' Y; l-0.0.1
. B* C( x. F% J5 z% |" F初始版本
3 F9 p3 G' ` F- 0.0.2 支持读取
& p1 Y1 a- }9 h0 r8 }) ~: z摄像机视角数据
% ~" S1 d: e$ R9 x8 J- M) K-0.0.3 修复了* Z8 M/ T+ `* g8 {
GUI 关闭 \, \( Q$ {1 u1 h
时,使用鼠标进行正常摄像机操作可能无法工作的问题 -0.0.4
: I& c8 I; l6 [4 ?. V3 K4 c修复了摄像机运动逻辑(旧逻辑是通过将 UnityCameraInterpolation 选项设置为 True 来指定的)将
5 `, ]) l4 J4 E5 O9 {( p4 n9 ^: P默认的 Shoulder Tilt 从 12 更改为 8(度)。
1 ~0 ?4 F3 T& b( @" V-0.0.5
^5 S. A4 ~, p# G% R修复了相机计算逻辑(删除了在有一帧差异的键之间禁用完成的逻辑)-: ?3 L' W+ q0 L A
0.0.6 支持. z( l4 \ ~0 A* r- t2 s5 x
指定多个 VMD 文件(动作 + 面部表情等)(使用“+”按钮或“;” 带分离的直接输入)相机和角色动作的
9 S; T9 C4 q6 W" ?% r动画计算逻辑已完全修改。 从使用 Unity 的 Animation 切换到 DOTween 自己的实现。& q7 _( J5 u1 `: X4 J2 q2 h
初始肩部、上臂和臂参数(模型 -> ShoulderTiltDefault、UpperArmTiltDefault、LowerArmTiltDefault)。
7 ?1 {/ X! M. X4 k+ b; h设置颈部旋转角度的补充参数 (Model - > NeckRotationScale)。2 V" ?2 W B' o% ^ c" j
添加了用于计算摄像机和整个角色位置的缩放选项 (System -> BaseScale。 它以与 GlobalScale 相同的方式应用于整个系统。 ) 修复了
) i+ c- p* s+ u模型初始缩放计算中的错误(修复了始终应用字符高度cf_N_height的问题) j! h, K/ w4 \5 Z5 n
-0.1.0 重构了与其他% _! `4 D0 C* m- O3 h
插件
* b& i9 J4 U" J' I+ i共享代码 肩部取消 (Shoulder P/Shoulder C) 骨骼的临时实现
& j7 Y( L& s: t) z-0.1.1 修复了无法选择
: y4 [$ |8 @4 i4 b2 W, {第二个和后续字符的问题。
- ~# w& t# A x$ h. ]-0.1.2 修复了快捷键设置中无法使用" O7 m" B% C9 _
大写字母的问题。
' ~: F. E& A; RIK 目标修复了曲调计算未初始化的问题(在最后一个键之后)修复了在切换) `7 i3 |4 o4 s5 q# }) `
地图或加载场景时 UI 恢复为隐藏的问题。. V {8 \5 _! x/ @4 G6 K/ e$ o
性能改进
3 {7 e) c5 m" s% P G' R) o-0.1.3 为
2 x- _. R' E# e7 C( ?足部 IK 引入' q2 N4 L- E$ G
不同的算法 添加了用于调整加载场景时等待时间的参数 (System > LoadWaitFrames)可选
' {; a/ _) M7 \; l8 J U使用默认表达式 (_DEFAULT_) (Model > UseDefaultFace)。' ^4 s3 ?; c# X* s' l# C
-0.1.4 支持在0 x; w) j4 d% X- z. t/ c8 U A
VMD 文件中读取 IK 开/关数据(模型 > UseIKDataInVMD)修复了
% z! R9 N% m0 x6 E9 x: J3 E循环设置不起作用的问题。修复了
4 l2 P& c4 E) Q9 a' E, o插补曲线计算中的1 u$ \3 ?3 h8 |2 m1 b5 a2 k
错误 修复了) _% r" x! @4 s# h
前束 IK 计算中的错误 -0.1.5# _. k+ b- s" t$ K
修复了即使在关闭 VMD 后也无法更改面部表情的问题 修复了8 d5 r! m' e% C# t' k& C% X$ Z
在初始化和加载过程中
4 _2 D, I5 x/ R4 N2 {前束位置等下沉的问题。 修复了导致不包含面部表情数据的 VMD 文件无法加载的问题。修复了脚趾 IK 计算 2 -4 T) r O5 G4 K/ @6 g: r& I9 m
0.1.61 [: U/ x* a0 _6 q8 ]7 F8 B/ j
中的问题 修复了在保存/读取未设置
& p0 i; \4 p3 I7 V+ K-0.1.7 的数据时意外打开 VMD. @) |, C& x, f" z3 b! ]! ^
的问题
9 G3 |; n% H4 ] a% W修复初始化模型7 u: n' D! f* V; C+ L7 e5 q
时腿部/臀部/胸部位置的初始化逻辑 -0.1.8 新增选项 设置
, D$ L4 v, \! `1 l# YMMD 相关文件参考目录 (MMDData > MMDDataBaseDir) GC
0 P( A P8 y( [Alloc Memory 的性能调整 扭曲 (x-arm twist/x-hand-twist) 骨骼的临时实现4 V3 U4 v: V9 d3 _7 l' |. w4 t6 ~
-0.1.9
* _+ [# I K( O& L/ @: P4 K手腕角度校正逻辑修复; ~4 g+ [8 g6 J3 q( @" }# t) g
拇指角度校正逻辑修复
# u, L6 H' Y m. `8 b-0.1.10
, h9 Y4 H) ~, |; I
, [# s4 t& ]1 s0 k9 b修复了无法关闭摄像头循环的问题。修复了在没有
) z: v' o* J. xthumb 0 键的 VMD 文件中拇指角度发生偏移的问题 修复了
o- [9 d0 U" ~% W& w" @. S C& `7 f' C/ F1 A- }# z
在未指定 MMDDataBaseDir 的情况下选择文件时初始文件夹设置不正确的问题。 修复面部表情逻辑
/ Y$ Z7 X; x2 V0 x-0.1.11 修复扭骨不只在, t5 f2 q$ l: T4 F' B7 q- ]
左手起作用的问题 修复
4 z8 N9 C$ M ~6 j1 k! U1 [' Z8 V# J4 d
扭骨的角度计算 -0.1.12 修复. m. P4 ]8 i6 R
5 O. S# w( r1 g; ?. x
面部表情逻辑 修复了肩部取消角度(肩部 C)未反映的问题。
6 U8 b `. D8 P* v-0.1.13 修复了! M. p+ u3 \- y3 W) ~$ v; V
在保存/加载
. @ M* m3 g8 @9 P* b数据时,即使角色的 VMD 设置为关闭,面部表情也会被错误重置的问题。修复了扭曲骨骼的角度计算(轴限制)
0 Q" i2 K: j* F+ [- 0.2.0( a, w2 ?- J! e! |* x" C8 C
修复扭曲骨骼角度计算(平滑)5 B- r2 S+ L2 ?
-0.2.1 在* X& j. J. J+ f* A1 Y, V
文件选择对话框(左下角)中添加了排序按钮(名称、修改日期)* M4 V, ]( e) F8 t
添加一个按钮,以将摄像机的 ModelScale 反映到所有角色的 ModelScale,或将角色的最小 ModelScale 反映到摄像机的 ModelScale。在
+ ?6 x9 A# X- r摄像机的 ModelScale 选项下 (>>all chara, <<min chara)9 ^1 B$ C" K, W% G0 u0 u) g9 w b
自动计算搜索栏的宽度(如果坐标不可见则拉伸)# N% T% w0 A% X) I: Q% r1 z
UI > AutoControllerAutoAdjustControllerWidth 设置,可以禁用该设置修复了插补曲线计算( I, _4 M' G# C% w% x
-0.2.3 中的
# y2 r% w3 x1 u& P错误
2 `- K( f5 {, M% |# `用于动态调整的参考模型(仅骨骼)输出(仅当 UseDOTweenAnimation=true 时)有关详细信息5 m$ D2 {/ i. R3 W/ D( ]* C. ?
,请参阅 [用于动态调整的参考模型输出]。
: S( v7 w( _5 R5 W/ c7 ?8 N4 H-0.2.4 修复了通过指定多个 VMD 文件保存的
7 W* F; @- O% W' r2 a场景数据无法正常加载的问题。修复了5 A9 {$ N" I7 P/ j z
; d ?( s. G5 P扭曲的骨骼角度(平滑)没有正确反映的问题。修复了
( q* H7 Y1 s# j! k$ }1 j( b0 Z( A2 i. W" k, v6 ~
新增相机$ g) z. Z0 L, k4 Z
Y 轴旋转调整参数 -0.2.5 新增
/ A W% E5 E$ {1 V! v. _& A播放、暂停、停止快捷键选项(所有角色、语音、相机)(所有默认值未指定) [
1 A& H( z/ L, \* dUI] UIKeyPlay, UIKeyPause、UIKeyStop$ ]* ~( V1 J) r! m/ S! n# [
仅面部运动应用选项(默认禁用,通过将 beta_EnableFaceOnly 更改为 true 来使用)% Q$ r- P8 j% w6 ]
-0.3.0 修复了角色在运动过程中
& L( V, ^& ?; \6 Y可能无意中模糊的问题。8 }/ l6 u9 p% @" q$ k
添加了配置选项以提高性能(UseDirectTransformApply - 默认处于打开状态)9 @* [; g5 s3 I' V) G
弃用基于 Unity 动画的逻辑并删除5 A- Q; E& s8 O; X
相关配置参数 删除了 UseDOTweenAnimation ( 始终为 true) 删除! u3 J4 m! I9 D. n* |; S
了 UnityCameraInterpolation(始终为 false)删除
0 e7 y. c# z, v& ~8 j0 |了 UseOldFootIK(始终为 false),从过去的 IK 逻辑中的2 X, U4 Z) q* q6 H8 Z7 t
UI 中删除了相关参数 逻辑修改,在相机运动中不完成一帧中的关键帧切换(与 MMD 60fps 输出相同)[
+ e- L2 t- B$ w系统]通过将 JumpCameraAjacentFrame 选项更改为 false 来加载相机运动时启用完成。 -0.3.0
4 d- f# ], r t) T3 R8 l, L-0.3.1 修复了在停止运动时3 T2 |/ b* Z8 w# U
执行足部 IK 计算的问题 修复了: s7 C9 K! u" z$ Q- K. [8 c
$ O# }- t- k, s H+ j- X5 d; \肩部取消骨骼(肩部 C)位置不正确的问题 BepInEx 5.3 / BepisPlugins 15.4 / HoneySelect2 2020.08.14 补丁支持:默认启用9 O0 e0 A2 j- j, O
“仅应用面部表情、动作/语音”选项(EnableFaceOnly 选项)
/ R) k9 k7 {& @-0.3.3 VMD2 p+ L9 x7 _2 \- G N# i
文件中的 IK 开/关修复了无法正确加载数据的问题。修复了处理: i6 Q0 }7 \4 b+ S
肩部/肘部/手腕扭曲骨骼平滑时的错误 修复了# V& H; s" X0 k& ^
肢体骨骼被意外拉伸的问题 为5 w, _! m& H' k3 U3 C" P0 m
帧更新方法添加了替代选项设置(beta_AltUpdateOption:默认 False = 关闭)$ P* w7 ?* I) u( W8 B1 c7 N
-0.3.4& w. F7 {, e' Q. E, W! J/ I
正确的$ P$ B' |3 ?% d) M
: J) T: E O2 s6 \% q
比例计算错误
/ }/ x$ l5 h# m0 d[无保证]2 s8 ]6 g/ |6 J$ I! d1 n5 v) I
本软件按“原样”提供,不提供任何明示或
- r) K. A: Z6 K' r" R" d1 j暗示的保证,
' Z k/ I- x: {7 R) f包括但不限于适销性保证, z% [ K' b. g% }: A
适用于特定目的和非侵权。& a0 @1 V1 E4 Z
在任何情况下,
{# [8 m' Z4 Q: j8 r( @# f* F8 ]作者或版权所有者均不对任何索赔、损害或其他
& S4 G# Y/ r& X8 i! Z5 ]责任负责。- P! e8 t4 V |4 r
无论是在合同、侵权行为或其他诉讼中,由软件或' V {2 V6 Z7 w% K) |1 P5 p
软件的使用或其他交易引起或
5 ~, J8 a; A' S/ ^与之相关。
6 v* g- ^8 q$ k7 L( @ |
|