@realsee/vreo 0.1.6-alpha.5 → 0.2.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +103 -16
  2. package/docs/assets/custom.css +4 -4
  3. package/docs/assets/search.js +1 -1
  4. package/docs/classes/Player.Controller.html +54 -0
  5. package/docs/classes/Player.Player-1.html +11 -11
  6. package/docs/classes/Player.VideoAgentMesh.html +142 -0
  7. package/docs/classes/Player.VideoAgentScene.html +1 -0
  8. package/docs/enums/Player.InfoPanelStyleEnum.html +1 -0
  9. package/docs/enums/Player.InfoPanelTypeEnum.html +1 -1
  10. package/docs/enums/Player.PanoEffectEnum.html +2 -2
  11. package/docs/enums/Player.PanoTagEnum.html +1 -1
  12. package/docs/enums/Player.VreoKeyframeEnum.html +14 -12
  13. package/docs/enums/fivePlugins.CameraMovementEffect.html +1 -1
  14. package/docs/enums/fivePlugins.Rotation.html +1 -1
  15. package/docs/index.html +52 -19
  16. package/docs/interfaces/Player.CustomVreoKeyframeProps.html +1 -0
  17. package/docs/interfaces/Player.PlayerConfigs.html +4 -2
  18. package/docs/interfaces/Player.Vertex.html +1 -1
  19. package/docs/interfaces/Player.VideoAgentMeshOptions.html +1 -0
  20. package/docs/interfaces/Player.VreoKeyframe.html +1 -1
  21. package/docs/interfaces/Player.VreoUnit.html +1 -1
  22. package/docs/interfaces/Player.VreoVideo.html +1 -1
  23. package/docs/interfaces/fivePlugins.CameraMovementOptsCallback.html +1 -1
  24. package/docs/interfaces/fivePlugins.CameraMovementPluginExportType.html +3 -3
  25. package/docs/interfaces/fivePlugins.CameraMovementPluginParameterType.html +1 -1
  26. package/docs/interfaces/fivePlugins.ModelTVVideoPluginData.html +1 -1
  27. package/docs/interfaces/fivePlugins.ModelTVVideoPluginExportType.html +1 -1
  28. package/docs/interfaces/fivePlugins.ModelTVVideoPluginParameterType.html +1 -1
  29. package/docs/interfaces/react.VreoActionCallbacks.html +15 -7
  30. package/docs/interfaces/react.VreoProviderProps.html +1 -0
  31. package/docs/modules/Player.html +17 -15
  32. package/docs/modules/custom.html +3 -0
  33. package/docs/modules/fivePlugins.html +2 -2
  34. package/docs/modules/react.html +1 -1
  35. package/docs/modules.html +1 -1
  36. package/lib/PlayController/createHTMLAudioElement.d.ts +1 -0
  37. package/lib/PlayController/createHTMLAudioElement.js +47 -0
  38. package/lib/PlayController/index.d.ts +38 -0
  39. package/lib/PlayController/index.js +300 -0
  40. package/lib/Player/App.js +8 -3
  41. package/lib/Player/Controller.d.ts +2 -0
  42. package/lib/Player/Controller.js +14 -0
  43. package/lib/Player/custom/SpatialScenePanel/index.d.ts +22 -0
  44. package/lib/Player/custom/SpatialScenePanel/index.js +279 -0
  45. package/lib/Player/index.d.ts +1 -1
  46. package/lib/Player/index.js +98 -11
  47. package/lib/Player/modules/Drawer/index.js +1 -1
  48. package/lib/Player/modules/PopUp/index.d.ts +2 -0
  49. package/lib/Player/modules/PopUp/index.js +43 -0
  50. package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts +1 -0
  51. package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +5 -1
  52. package/lib/Player/modules/VideoAgent/VideoAgentScene.d.ts +4 -1
  53. package/lib/Player/modules/VideoAgent/VideoAgentScene.js +2 -1
  54. package/lib/Player/modules/VideoAgent/index.d.ts +2 -0
  55. package/lib/Player/modules/VideoAgent/index.js +1 -1
  56. package/lib/Player/modules/keyframes/BgMusic/index.d.ts +2 -0
  57. package/lib/Player/modules/keyframes/BgMusic/index.js +76 -0
  58. package/lib/Player/modules/keyframes/CameraMovement/index.js +41 -5
  59. package/lib/Player/modules/keyframes/InfoPanel/index.js +105 -23
  60. package/lib/Player/modules/keyframes/ModelVideo/index.js +43 -6
  61. package/lib/Player/modules/keyframes/PanoTextLabel/index.js +4 -12
  62. package/lib/Player/modules/keyframes/Prompter/index.js +2 -15
  63. package/lib/Player/modules/keyframes/UpdateVRPanorama/index.js +68 -17
  64. package/lib/Player/typings.d.ts +19 -1
  65. package/lib/fivePlugins/CameraMovementPlugin/index.js +104 -90
  66. package/lib/fivePlugins/CameraMovementPlugin/typings.d.ts +1 -0
  67. package/lib/react/index.d.ts +10 -2
  68. package/lib/react/index.js +1 -1
  69. package/lib/shared-utils/createTransMatrix.d.ts +1 -0
  70. package/lib/shared-utils/createTransMatrix.js +43 -0
  71. package/lib/typings/VreoUnit.d.ts +47 -8
  72. package/lib/typings/VreoUnit.js +15 -6
  73. package/package.json +6 -6
  74. package/resources/PlayController/createHTMLAudioElement.ts +53 -0
  75. package/resources/PlayController/index.ts +167 -0
  76. package/resources/Player/App.tsx +6 -1
  77. package/resources/Player/Controller.ts +12 -0
  78. package/resources/Player/custom/SpatialScenePanel/index.tsx +264 -0
  79. package/resources/Player/index.tsx +56 -2
  80. package/resources/Player/modules/Drawer/index.tsx +1 -1
  81. package/resources/Player/modules/PopUp/index.tsx +26 -0
  82. package/resources/Player/modules/VideoAgent/VideoAgentMesh.ts +4 -3
  83. package/resources/Player/modules/VideoAgent/VideoAgentScene.ts +2 -2
  84. package/resources/Player/modules/VideoAgent/index.tsx +3 -2
  85. package/resources/Player/modules/keyframes/BgMusic/index.tsx +66 -0
  86. package/resources/Player/modules/keyframes/CameraMovement/index.tsx +7 -3
  87. package/resources/Player/modules/keyframes/InfoPanel/index.tsx +109 -11
  88. package/resources/Player/modules/keyframes/ModelVideo/index.tsx +35 -2
  89. package/resources/Player/modules/keyframes/PanoTextLabel/index.tsx +2 -2
  90. package/resources/Player/modules/keyframes/Prompter/index.tsx +3 -14
  91. package/resources/Player/modules/keyframes/UpdateVRPanorama/index.tsx +72 -15
  92. package/resources/Player/typings.ts +21 -1
  93. package/resources/fivePlugins/CameraMovementPlugin/index.ts +59 -48
  94. package/resources/fivePlugins/CameraMovementPlugin/typings.ts +2 -1
  95. package/resources/react/index.tsx +12 -3
  96. package/resources/shared-utils/createTransMatrix.ts +12 -0
  97. package/resources/typings/VreoUnit.ts +56 -8
  98. package/stylesheets/custom/SpatialScenePanel.css +309 -0
  99. package/stylesheets/default.css +127 -9
@@ -1,18 +1,23 @@
1
1
  import { unsafe__useFiveInstance } from '@realsee/five/react'
2
2
  import * as React from 'react'
3
3
  import { Player } from '../Player'
4
+ import { PlayerConfigs } from '../Player/typings'
4
5
  import { VreoKeyframeEvent, VreoUnit } from '../typings/VreoUnit'
5
6
 
6
7
  const VreoContext = React.createContext<Player | null>(null)
7
8
 
8
- export const VreoProvider: React.FC = (props) => {
9
+ export interface VreoProviderProps {
10
+ configs?: Partial<PlayerConfigs>
11
+ }
12
+
13
+ export const VreoProvider: React.FC<VreoProviderProps> = (props ) => {
9
14
  const five = unsafe__useFiveInstance()
10
15
 
11
16
  const [player, setPlayer] = React.useState<Player | null>(null)
12
17
  const playerRef = React.useRef<Player | null>(null)
13
18
 
14
19
  React.useEffect(() => {
15
- playerRef.current = new Player(five)
20
+ playerRef.current = new Player(five, props.configs || {})
16
21
  setPlayer(playerRef.current)
17
22
 
18
23
  return () => {
@@ -40,8 +45,12 @@ function useVreoInstance() {
40
45
  export interface VreoActionCallbacks {
41
46
  /**
42
47
  * 载入剧本数据。
48
+ * @param vreoUnit 剧本数据
49
+ * @param currentTime 开始时间戳
50
+ * @param preload 是否开启预载
51
+ * @param force 是否强制载入
43
52
  */
44
- load: (vreoUnit: VreoUnit, currentTime?: number) => Promise<boolean>
53
+ load: (vreoUnit: VreoUnit, currentTime?: number, preload?: boolean, force?: boolean) => Promise<boolean>
45
54
  /**
46
55
  * 播放。
47
56
  */
@@ -0,0 +1,12 @@
1
+ import * as THREE from 'three'
2
+
3
+ export function createTransMatrix(arr1: number[]) {
4
+ const matrix4 = new THREE.Matrix4()
5
+ matrix4.fromArray(arr1)
6
+
7
+ return (arr2: number[]) => {
8
+ const vector3 = new THREE.Vector3(...arr2)
9
+ vector3.applyMatrix4(matrix4)
10
+ return vector3.toArray()
11
+ }
12
+ }
@@ -1,4 +1,4 @@
1
- import { Mode, Pose, WorkCubeImage, Work } from '@realsee/five'
1
+ import { Mode, MovePanoOptions, Pose } from '@realsee/five'
2
2
  import { CameraMovementEffect, Rotation } from '../fivePlugins/CameraMovementPlugin/typings'
3
3
 
4
4
  export enum VreoKeyframeEnum {
@@ -36,6 +36,10 @@ export enum VreoKeyframeEnum {
36
36
  * 视频特效
37
37
  */
38
38
  VideoEffect = 'VideoEffect',
39
+ /**
40
+ * 背景音乐
41
+ */
42
+ BgMusic = 'BgMusic',
39
43
  /**
40
44
  * 结束
41
45
  */
@@ -61,6 +65,7 @@ export type VreoKeyframeConfigMap = {
61
65
  * 剧本关键帧
62
66
  */
63
67
  export interface VreoKeyframe {
68
+ uuid?: string
64
69
  type: VreoKeyframeEnum
65
70
  start: number
66
71
  end: number
@@ -96,15 +101,22 @@ export interface VreoUnit {
96
101
  * 剧本事件
97
102
  */
98
103
  export type VreoKeyframeEvent = { [key in VreoKeyframeEnum]: (keyframe: VreoKeyframe) => void } & {
99
- paused: () => void
104
+ // 新数据载入完成
105
+ loaded: (vreoUnit: VreoUnit) => void
106
+ // 语音状态 播放 -> 暂停
107
+ paused: (ended?: boolean) => void
108
+ // 语音状态 暂停 -> 播放
100
109
  playing: () => void
110
+ // 未知的 剧本帧类型
111
+ unknownKeyframeType: (keyframe: Record<string, any>) => void
101
112
  }
102
113
 
103
114
  /**
104
115
  * 相机运动
105
116
  */
106
117
  export type CameraMovementData = {
107
- effect: CameraMovementEffect
118
+ effect?: CameraMovementEffect
119
+ transEffect?: "fly" | "fade" | "instant"
108
120
  mode: Mode
109
121
  panoIndex: number
110
122
  loop?: boolean
@@ -123,9 +135,23 @@ export type PrompterData = {
123
135
  * VR 全景切换
124
136
  */
125
137
  export type UpdateVRPanoramaData = {
126
- panoIndex: number
127
- images: WorkCubeImage
128
- work?: Work
138
+ _signature: string
139
+ allow_hosts: string[]
140
+ certificate: string
141
+ expire_at: string
142
+ // 动态场景
143
+ dynamic_scene?: {
144
+ images: {
145
+ index: number
146
+ right: string
147
+ left: string
148
+ up: string
149
+ down: string
150
+ front: string
151
+ back: string
152
+ }
153
+ }
154
+ [key: string]: any
129
155
  }
130
156
 
131
157
  /**
@@ -138,9 +164,13 @@ export interface Vertex {
138
164
  }
139
165
 
140
166
  /**
141
- * 四个顶点元组
167
+ * 矩形顶点
142
168
  */
143
169
  export type QuadrangleVertexs = [Vertex, Vertex, Vertex, Vertex]
170
+ /**
171
+ * 顶点数组
172
+ */
173
+ export type Vertexs = Vertex[]
144
174
 
145
175
  /**
146
176
  * 视频广告
@@ -157,7 +187,8 @@ export type ModelVideoData = {
157
187
  /**
158
188
  * 视频映射在模型中的顶点
159
189
  */
160
- vertexs: QuadrangleVertexs
190
+ vertexs: QuadrangleVertexs | Vertexs
191
+ matrixWorld?: number[]
161
192
  }
162
193
 
163
194
  /**
@@ -210,12 +241,22 @@ export enum InfoPanelTypeEnum {
210
241
  Video = 'Video',
211
242
  }
212
243
 
244
+ export enum InfoPanelStyleEnum {
245
+ Drawer = 'Drawer',
246
+ PopUp = 'PopUp',
247
+ }
248
+
213
249
  /**
214
250
  * 信息面板
215
251
  */
216
252
  export type InfoPanelData = {
217
253
  type: InfoPanelTypeEnum
254
+ style?: InfoPanelStyleEnum
218
255
  url: string
256
+ // 标题
257
+ title?: string
258
+ // 副标题
259
+ subTitle?: string
219
260
  }
220
261
 
221
262
  /**
@@ -229,5 +270,12 @@ export type VideoEffectData = {
229
270
  vector?: Pick<Pose, 'longitude' | 'latitude'>
230
271
  }
231
272
 
273
+ /**
274
+ * 背景音乐
275
+ */
276
+ export type BgMusicData = {
277
+ url: string
278
+ }
279
+
232
280
  /** 自定义序列帧 */
233
281
  export type CustomData = Record<string, any>
@@ -0,0 +1,309 @@
1
+ @keyframes SpatialScenePanel-panel-sprites-animation {
2
+ 0% {
3
+ background-position: 0 0
4
+ }
5
+
6
+ 100% {
7
+ background-position: -330rem 0
8
+ }
9
+ }
10
+
11
+
12
+ @keyframes SpatialScenePanel-opacity-animation {
13
+ 0% {
14
+ opacity: .3
15
+ }
16
+
17
+ 100% {
18
+ opacity: 1
19
+ }
20
+ }
21
+
22
+ @keyframes SpatialScenePanel-dot-sprites-animation {
23
+ 0% {
24
+ background-position: 0 0
25
+ }
26
+
27
+ 100% {
28
+ background-position: -31.25rem 0
29
+ }
30
+ }
31
+
32
+ @keyframes SpatialScenePanel-line-sprites-animation {
33
+ 0% {
34
+ background-position: 0 0
35
+ }
36
+
37
+ 100% {
38
+ background-position: -9.583333333333334rem 0
39
+ }
40
+ }
41
+
42
+ .vreo-SpatialScenePanel {
43
+ width: 10rem;
44
+ height: 13.4375rem;
45
+ position: fixed;
46
+ top: 0;
47
+ left: 0;
48
+ pointer-events: none;
49
+ user-select: none
50
+ }
51
+
52
+ .SpatialScenePanel {
53
+ width: 10rem;
54
+ height: 13.4375rem;
55
+ transform: scale3d(1,1,1);
56
+ transform-origin: center;
57
+ position: fixed;
58
+ left: 3rem;
59
+ top: 3rem;
60
+ }
61
+
62
+ .SpatialScenePanel-show-area {
63
+ width: 100%;
64
+ height: 100%;
65
+ transform: scale3d(1,1,1);
66
+ transform-origin: center;
67
+ position: absolute
68
+ }
69
+
70
+ .SpatialScenePanel-show-area .SpatialScenePanel-bg {
71
+ width: 10rem;
72
+ height: 13.4375rem;
73
+ position: absolute;
74
+ top: 50%;
75
+ left: 50%;
76
+ transform: translate3d(-50%,-50%,0);
77
+ background-image: url("//vrlab-static.ljcdn.com/release/web/VoiceAssistant/images/panel-min.7d9ba2b7.png");
78
+ background-size: 340rem 13.4375rem;
79
+ background-repeat: no-repeat;
80
+ z-index: -1;
81
+ }
82
+
83
+ .SpatialScenePanel-bg--animation {
84
+ /* animation: SpatialScenePanel-panel-sprites-animation 1.375s 0s steps(33) infinite normal; */
85
+ animation: SpatialScenePanel-panel-sprites-animation 1.375s 0.5s steps(33) normal;
86
+ }
87
+
88
+
89
+ .SpatialScenePanel-show-area .SpatialScenePanel-header {
90
+ width: 7.5rem;
91
+ height: 1.375rem;
92
+ display: -ms-flexbox;
93
+ display: flex;
94
+ justify-content: space-between;
95
+ background-image: url("//vrlab-static.ljcdn.com/release/web/VoiceAssistant/images/title-bg.377af865.png");
96
+ background-size: 100%;
97
+ margin: 1.875rem auto 1.25rem auto;
98
+ background-image: linear-gradient(to left, rgba(234, 208, 154, 0), rgb(255 229 176 / 21%) 47%, rgba(234, 208, 154, 0));
99
+ border-bottom: 1px solid rgb(255 255 255 / 10%);
100
+ border-radius: 2px;
101
+ }
102
+
103
+ .SpatialScenePanel-show-area .SpatialScenePanel-header .SpatialScenePanel-title {
104
+ font-family: PingFangSC-Medium;
105
+ font-size: 1.0625rem;
106
+ color: #ffe5b0;
107
+ letter-spacing: 0;
108
+ line-height: 1.125;
109
+ text-shadow: 0 0 1.25rem rgba(0,0,0,0.15)
110
+ }
111
+
112
+ .SpatialScenePanel-show-area .SpatialScenePanel-header .SpatialScenePanel-temperature {
113
+ font-family: PingFangSC-Semibold;
114
+ font-size: .625rem;
115
+ color: rgba(255,229,176,0.6);
116
+ letter-spacing: 0;
117
+ line-height: 1.25rem;
118
+ text-shadow: 0 0 .625rem rgba(255,255,255,0.03);
119
+ align-self: flex-end
120
+ }
121
+
122
+ .SpatialScenePanel-show-area .SpatialScenePanel-body {
123
+ position: relative;
124
+ padding: 0 1.25rem
125
+ }
126
+
127
+ .SpatialScenePanel-show-area .SpatialScenePanel-body .SpatialScenePanel-item {
128
+ position: relative;
129
+ display: -ms-flexbox;
130
+ display: flex;
131
+ align-items: center;
132
+ margin-bottom: 1rem;
133
+ width: 100%
134
+ }
135
+
136
+ .SpatialScenePanel-show-area .SpatialScenePanel-body .SpatialScenePanel-text {
137
+ opacity: .3;
138
+ font-family: PingFangSC-Regular;
139
+ font-size: .75rem;
140
+ color: #fff;
141
+ letter-spacing: 0;
142
+ line-height: .75rem
143
+ }
144
+
145
+ .SpatialScenePanel-show-area .SpatialScenePanel-body .SpatialScenePanel-icon {
146
+ opacity: .3;
147
+ width: 1rem;
148
+ height: 1rem;
149
+ margin-right: .375rem;
150
+ flex-shrink: 0
151
+ }
152
+
153
+ .SpatialScenePanel-show-area .SpatialScenePanel-body .SpatialScenePanel-dot {
154
+ position: absolute;
155
+ width: 1.25rem;
156
+ height: 1.25rem;
157
+ flex-shrink: 0;
158
+ display: -ms-flexbox;
159
+ display: flex;
160
+ justify-content: center;
161
+ align-items: center;
162
+ right: -.625rem
163
+ }
164
+
165
+ .SpatialScenePanel-show-area .SpatialScenePanel-body .SpatialScenePanel-dot::before {
166
+ display: block;
167
+ position: absolute;
168
+ width: .25rem;
169
+ height: .25rem;
170
+ background: #c3d5ff;
171
+ opacity: .3;
172
+ content: '';
173
+ z-index: 1;
174
+ border-radius: 100%
175
+ }
176
+
177
+ .SpatialScenePanel-show-area .SpatialScenePanel-body .SpatialScenePanel-dot::after {
178
+ display: block;
179
+ position: absolute;
180
+ content: '';
181
+ z-index: 2
182
+ }
183
+
184
+ .SpatialScenePanel.show .SpatialScenePanel-disappear-area {
185
+ display: none
186
+ }
187
+
188
+ .SpatialScenePanel.show .SpatialScenePanel-show-area {
189
+ transform: scale3d(1,1,1);
190
+ transition: -webkit-transform 1s linear;
191
+ transition: transform 1s linear;
192
+ transition: transform 1s linear, -webkit-transform 1s linear
193
+ }
194
+
195
+ .SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_0 .SpatialScenePanel-text,.SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_0 .SpatialScenePanel-icon {
196
+ animation: SpatialScenePanel-opacity-animation 1s 1s 1 normal forwards
197
+ }
198
+
199
+ .SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_0 .SpatialScenePanel-dot::before {
200
+ animation: SpatialScenePanel-opacity-animation 1s 1s 1 normal forwards
201
+ }
202
+
203
+ .SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_0 .SpatialScenePanel-dot::after {
204
+ width: 2.083333333333333rem;
205
+ height: 2.083333333333333rem;
206
+ position: absolute;
207
+ top: 50%;
208
+ left: 50%;
209
+ transform: translate3d(-50%,-50%,0);
210
+ background-image: url("//vrlab-static.ljcdn.com/release/web/VoiceAssistant/images/dot.54b5e078.png");
211
+ background-size: 33.333333333333336rem 2.083333333333333rem;
212
+ background-repeat: no-repeat;
213
+ animation: SpatialScenePanel-dot-sprites-animation 1s 1s steps(15) 1 normal
214
+ }
215
+
216
+ .SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_1 .SpatialScenePanel-text,.SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_1 .SpatialScenePanel-icon {
217
+ animation: SpatialScenePanel-opacity-animation 1s 2s 1 normal forwards
218
+ }
219
+
220
+ .SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_1 .SpatialScenePanel-dot::before {
221
+ animation: SpatialScenePanel-opacity-animation 1s 2s 1 normal forwards
222
+ }
223
+
224
+ .SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_1 .SpatialScenePanel-dot::after {
225
+ width: 2.083333333333333rem;
226
+ height: 2.083333333333333rem;
227
+ position: absolute;
228
+ top: 50%;
229
+ left: 50%;
230
+ transform: translate3d(-50%,-50%,0);
231
+ background-image: url("//vrlab-static.ljcdn.com/release/web/VoiceAssistant/images/dot.54b5e078.png");
232
+ background-size: 33.333333333333336rem 2.083333333333333rem;
233
+ background-repeat: no-repeat;
234
+ animation: SpatialScenePanel-dot-sprites-animation 1s 2s steps(15) 1 normal
235
+ }
236
+
237
+ .SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_2 .SpatialScenePanel-text,.SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_2 .SpatialScenePanel-icon {
238
+ animation: SpatialScenePanel-opacity-animation 1s 3s 1 normal forwards
239
+ }
240
+
241
+ .SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_2 .SpatialScenePanel-dot::before {
242
+ animation: SpatialScenePanel-opacity-animation 1s 3s 1 normal forwards
243
+ }
244
+
245
+ .SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_2 .SpatialScenePanel-dot::after {
246
+ width: 2.083333333333333rem;
247
+ height: 2.083333333333333rem;
248
+ position: absolute;
249
+ top: 50%;
250
+ left: 50%;
251
+ transform: translate3d(-50%,-50%,0);
252
+ background-image: url("//vrlab-static.ljcdn.com/release/web/VoiceAssistant/images/dot.54b5e078.png");
253
+ background-size: 33.333333333333336rem 2.083333333333333rem;
254
+ background-repeat: no-repeat;
255
+ animation: SpatialScenePanel-dot-sprites-animation 1s 3s steps(15) 1 normal
256
+ }
257
+
258
+ .SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_3 .SpatialScenePanel-text,.SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_3 .SpatialScenePanel-icon {
259
+ animation: SpatialScenePanel-opacity-animation 1s 4s 1 normal forwards
260
+ }
261
+
262
+ .SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_3 .SpatialScenePanel-dot::before {
263
+ animation: SpatialScenePanel-opacity-animation 1s 4s 1 normal forwards
264
+ }
265
+
266
+ .SpatialScenePanel .SpatialScenePanel-body .SpatialScenePanel-item.index_3 .SpatialScenePanel-dot::after {
267
+ width: 2.083333333333333rem;
268
+ height: 2.083333333333333rem;
269
+ position: absolute;
270
+ top: 50%;
271
+ left: 50%;
272
+ transform: translate3d(-50%,-50%,0);
273
+ background-image: url("//vrlab-static.ljcdn.com/release/web/VoiceAssistant/images/dot.54b5e078.png");
274
+ background-size: 33.333333333333336rem 2.083333333333333rem;
275
+ background-repeat: no-repeat;
276
+ animation: SpatialScenePanel-dot-sprites-animation 1s 4s steps(15) 1 normal
277
+ }
278
+
279
+ .SpatialScenePanel.hide .SpatialScenePanel-show-area {
280
+ transform: scale3d(0,1,1);
281
+ transition: transform 150ms linear;
282
+ }
283
+
284
+ .SpatialScenePanel.hide .SpatialScenePanel-disappear-area {
285
+ display: -ms-flexbox;
286
+ display: flex;
287
+ width: 1.25rem;
288
+ height: 13.4375rem;
289
+ justify-content: center;
290
+ align-items: center
291
+ }
292
+
293
+ .SpatialScenePanel.hide .SpatialScenePanel-disappear-area::after {
294
+ content: '';
295
+ width: 100%;
296
+ height: 100%;
297
+ position: absolute;
298
+ width: .4166666666666667rem;
299
+ height: 11.666666666666666rem;
300
+ position: absolute;
301
+ top: 50%;
302
+ left: 50%;
303
+ transform: translate3d(-50%,-50%,0);
304
+ background-image: url("//vrlab-static.ljcdn.com/release/web/VoiceAssistant/images/line.4ac1c0bb.png");
305
+ background-size: 10rem 11.666666666666666rem;
306
+ background-repeat: no-repeat;
307
+ animation: SpatialScenePanel-line-sprites-animation 500ms 100ms steps(23) 1 normal
308
+ }
309
+
@@ -131,36 +131,44 @@
131
131
  width: 250px;
132
132
  font-size: 14px;
133
133
  opacity: 1;
134
- transition: opacity 0.5s;
134
+ transition: opacity 0.1s;
135
135
  }
136
+
136
137
  .vreo-prompter--audio {
137
138
  top: 72px;
138
139
  left: 64px;
139
140
  }
141
+
140
142
  .vreo-prompter-innerText {
141
143
  position: absolute;
142
144
  left: 0;
143
145
  top: 0;
144
146
  padding-right: 10px;
145
147
  }
148
+
149
+ .vreo-prompter--audio .vreo-prompter-innerText {
150
+ padding-right: 0;
151
+ text-align: center;
152
+ width: 100%;
153
+ }
146
154
  .vreo-prompter--hidden {
147
155
  opacity: 0;
148
156
  }
149
157
 
150
- .vreo-prompter-text-transition-enter-active {
158
+ /* .vreo-prompter-text-transition-enter-active {
151
159
  opacity: 0;
152
- }
160
+ } */
153
161
 
154
- .vreo-prompter-text-transition-enter-done {
162
+ /* .vreo-prompter-text-transition-enter-done {
155
163
  opacity: 1;
156
164
  transition: opacity 1000ms;
157
- }
158
-
165
+ } */
166
+ /*
159
167
  .vreo-prompter-text-transition-exit-active,
160
168
  .vreo-prompter-text-transition-exit-done {
161
169
  opacity: 0;
162
170
  transition: opacity 500ms;
163
- }
171
+ } */
164
172
 
165
173
  .VideoEffect {
166
174
  position: absolute;
@@ -485,21 +493,131 @@
485
493
  display: block;
486
494
  }
487
495
 
496
+ .vreo-infoPanelWrapper {
497
+ flex: 1;
498
+ display: flex;
499
+ justify-content: center;
500
+ align-items: center;
501
+ }
502
+
488
503
  .vreo-infoPanel {
489
504
  width: 100%;
490
505
  height: 100%;
491
506
  display: flex;
492
- justify-content: center;
507
+ align-items: center;
508
+ background-color: rgba(0, 0, 0, 0.75);
509
+ flex-direction: column;
510
+ }
511
+
512
+ .vreo-infoPanel::after {
513
+ content: '';
514
+ display: block;
515
+ width: 100%;
516
+ height: 20px;
517
+ }
518
+
519
+ .vreo-infoPanel-title {
520
+ height: 64px;
521
+ width: 100%;
522
+ color: white;
523
+ display: flex;
493
524
  align-items: center;
494
525
  }
495
526
 
527
+ .vreo-infoPanel-t1 {
528
+ font-size: 17px;
529
+ font-weight: 600;
530
+ padding-left: 26px;
531
+ }
532
+
533
+ .vreo-infoPanel-t2 {
534
+ font-size: 12px;
535
+ opacity: 0.6;
536
+ padding-right: 26px;
537
+ padding-left: 8px;
538
+ padding-top: 6px;
539
+ }
540
+
496
541
  .vreo-infoPanelImg,
497
542
  .vreo-infoPanelVideo {
543
+ flex: 1;
544
+ background-size: contain;
498
545
  width: 100%;
499
- max-width: 375px;
546
+ background-repeat: no-repeat;
547
+ background-position: center center;
500
548
  }
501
549
 
550
+ .vreo-infoPanelVideo {
551
+ max-width: 412px;
552
+ }
553
+
502
554
  .vreo-panel--hidden .vreo-panel-inner {
503
555
  opacity: 0;
504
556
  transition: opacity 0.45s;
505
557
  }
558
+
559
+ .vreo-PopUp {
560
+ position: absolute;
561
+ left: 0;
562
+ top: 0;
563
+ width: 100%;
564
+ height: 100%;
565
+ pointer-events: none;
566
+ background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.7) 65%);
567
+ opacity: 0;
568
+ transition: opacity .45s;
569
+ display: flex;
570
+ justify-content: center;
571
+ align-items: center;
572
+ }
573
+
574
+ .vreo-PopUp.vreo-PopUp-visible {
575
+ opacity: 1;
576
+ pointer-events: all;
577
+ }
578
+
579
+ .vreo-PopUp-inner {
580
+ width: 339px;
581
+ height: 425px;
582
+ position: relative;
583
+ }
584
+
585
+ @media only screen and (min-width: 960px) {
586
+ .vreo-PopUp-inner {
587
+ width: 678px;
588
+ height: 620px;
589
+ position: relative;
590
+ }
591
+ .vreo-infoPanelVideo {
592
+ max-width: 100%;
593
+ }
594
+ }
595
+
596
+ .vreo-PopUp-inner .vreo-infoPanel {
597
+ background-color: initial;
598
+ justify-content: center;
599
+ }
600
+
601
+ .vreo-PopUp-inner .vreo-infoPanel-title {
602
+ position: absolute;
603
+ bottom: 32px;
604
+ left: 0;
605
+ z-index: 1;
606
+ flex-direction: column;
607
+ justify-content: end;
608
+ height: 200px;
609
+ background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.8));
610
+ }
611
+
612
+ .vreo-PopUp-inner .vreo-infoPanel-title .vreo-infoPanel-t1 {
613
+ padding-left: 0;
614
+ font-size: 20px;
615
+ font-weight: 600;
616
+ padding-bottom: 14px;
617
+ }
618
+
619
+ .vreo-PopUp-inner .vreo-infoPanel-title .vreo-infoPanel-t2 {
620
+ padding: 0 0 24px 0;
621
+ font-size: 14px;
622
+ opacity: 0.85;
623
+ }