Skip to content

Commit 560d36f

Browse files
committed
1.6.0 (2017-09-16T22:00Z)
1 parent 706e1ce commit 560d36f

File tree

2 files changed

+35
-35
lines changed

2 files changed

+35
-35
lines changed

advancedfx_import_gameRecord.py

Lines changed: 31 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Copyright (c) advancedfx.org
22
#
33
# Last changes:
4-
# 2017-09-14 dominik.matrixstorm.com
4+
# 2017-09-16 dominik.matrixstorm.com
55
#
66
# First changes:
77
# 2016-07-13 dominik.matrixstorm.com
@@ -264,17 +264,20 @@ def __init__(self,objNr,modelName):
264264

265265
class AgrTimeConverter:
266266
def __init__(self):
267-
self.firstTime = None
267+
self.time = 0
268+
self.frameTime = 0
269+
self.newTime = 0
268270

269-
def Convert(self,time,channelsClip):
270-
if self.firstTime is None:
271-
self.firstTime = time
271+
def Frame(self,frameTime):
272+
self.time = self.newTime
273+
self.frameTime = frameTime
272274

273-
time = time -self.firstTime
274275

275-
time = vs.DmeTime_t(time) -channelsClip.timeFrame.start.GetValue()
276+
def FrameEnd(self):
277+
self.newTime = self.time + self.frameTime
276278

277-
return time
279+
def GetTime(self,channelsClip):
280+
return vs.DmeTime_t(self.time) -channelsClip.timeFrame.start.GetValue()
278281

279282
def ReadFile(fileName):
280283
file = None
@@ -292,7 +295,7 @@ def ReadFile(fileName):
292295
SetError('Invalid file format.')
293296
return False
294297

295-
if 3 != version:
298+
if 4 != version:
296299
SetError('Version '+str(version)+' is not supported!')
297300
return False
298301

@@ -327,13 +330,16 @@ def ReadFile(fileName):
327330
if node0 is None:
328331
break
329332

330-
elif 'afxHiddenOffset' == node0:
331-
offset = ReadInt(file)
332-
if offset:
333+
elif 'afxFrame' == node0:
334+
time = ReadFloat(file)
335+
336+
timeConverter.Frame(time)
337+
338+
afxHiddenOffset = ReadInt(file)
339+
if afxHiddenOffset:
333340
curOffset = file.tell()
334-
file.seek(offset -4, 1)
341+
file.seek(afxHiddenOffset -4, 1)
335342

336-
time = ReadFloat(file)
337343
numHidden = ReadInt(file)
338344
for i in range(numHidden):
339345
handle = ReadInt(file)
@@ -343,44 +349,41 @@ def ReadFile(fileName):
343349
dagAnimSet = modelHandle.modelData
344350
if dagAnimSet:
345351
# Make ent invisible:
346-
rtime = timeConverter.Convert(time, sfmUtils.GetChannelsClipForAnimSet(dagAnimSet, shot))
347-
MakeKeyFrameValue(channelCache, dagAnimSet, 'visible_channel', rtime, False)
352+
MakeKeyFrameValue(channelCache, dagAnimSet, 'visible_channel', timeConverter.GetTime(sfmUtils.GetChannelsClipForAnimSet(dagAnimSet, shot)), False)
348353

349354
unusedModelHandles.append(modelHandle)
350355
#print("Marking %i (%s) as hidden/reusable." % (modelHandle.objNr,modelHandle.modelName))
351356

352357
file.seek(curOffset,0)
358+
359+
elif 'afxFrameEnd' == node0:
360+
timeConverter.FrameEnd()
353361

354362
elif 'afxHidden' == node0:
355363
# skipped, because will be handled earlier by afxHiddenOffset
356364

357-
time = ReadFloat(file)
358365
numHidden = ReadInt(file)
359366
for i in range(numHidden):
360367
handle = ReadInt(file)
361368

362369
elif 'deleted' == node0:
363370
handle = ReadInt(file)
364-
time = ReadFloat(file)
365371

366372
modelHandle = handleToLastModelHandle.pop(handle, None)
367373
if modelHandle is not None:
368374
dagAnimSet = modelHandle.modelData
369375
if dagAnimSet:
370376
# Make removed ent invisible:
371-
time = timeConverter.Convert(time, sfmUtils.GetChannelsClipForAnimSet(dagAnimSet, shot))
372-
MakeKeyFrameValue(channelCache, dagAnimSet, 'visible_channel', time, False)
377+
MakeKeyFrameValue(channelCache, dagAnimSet, 'visible_channel', timeConverter.GetTime(sfmUtils.GetChannelsClipForAnimSet(dagAnimSet, shot)), False)
373378

374379
unusedModelHandles.append(modelHandle)
375380
print("Marking %i (%s) as hidden/reusable." % (modelHandle.objNr,modelHandle.modelName))
376381

377382
elif 'entity_state' == node0:
378383
visible = None
379-
time = None
380384
dagAnimSet = None
381385
handle = ReadInt(file)
382386
if dict.Peekaboo(file,'baseentity'):
383-
time = ReadFloat(file)
384387

385388
modelName = dict.Read(file)
386389

@@ -395,8 +398,7 @@ def ReadFile(fileName):
395398
# Switched model, make old model invisible:
396399
dagAnimSet = modelHandle.modelData
397400
if dagAnimSet:
398-
rtime = timeConverter.Convert(time, sfmUtils.GetChannelsClipForAnimSet(dagAnimSet, shot))
399-
MakeKeyFrameValue(channelCache, dagAnimSet, 'visible_channel', rtime, False)
401+
MakeKeyFrameValue(channelCache, dagAnimSet, 'visible_channel', timeConverter.GetTime(sfmUtils.GetChannelsClipForAnimSet(dagAnimSet, shot)), False)
400402

401403
modelHandle = None
402404

@@ -445,11 +447,9 @@ def ReadFile(fileName):
445447

446448
modelHandle.lastRenderOrigin = renderOrigin
447449

448-
time = timeConverter.Convert(time, sfmUtils.GetChannelsClipForAnimSet(dagAnimSet, shot))
449-
450-
MakeKeyFrameValue(channelCache, dagAnimSet, 'visible_channel', time, visible)
450+
MakeKeyFrameValue(channelCache, dagAnimSet, 'visible_channel', timeConverter.GetTime(sfmUtils.GetChannelsClipForAnimSet(dagAnimSet, shot)), visible)
451451

452-
MakeKeyFrameTransform(channelCache, dagAnimSet, "rootTransform", time, renderOrigin, QuaternionFromQAngle(renderAngles), True)
452+
MakeKeyFrameTransform(channelCache, dagAnimSet, "rootTransform", timeConverter.GetTime(sfmUtils.GetChannelsClipForAnimSet(dagAnimSet, shot)), renderOrigin, QuaternionFromQAngle(renderAngles), True)
453453

454454
if dict.Peekaboo(file,'baseanimating'):
455455
#skin = ReadInt(file)
@@ -478,7 +478,7 @@ def ReadFile(fileName):
478478
name = name[:name.find(')')]
479479
#print name
480480

481-
MakeKeyFrameTransform(channelCache, dagAnimSet, name, time, vec, quat)
481+
MakeKeyFrameTransform(channelCache, dagAnimSet, name, timeConverter.GetTime(sfmUtils.GetChannelsClipForAnimSet(dagAnimSet, shot)), vec, quat)
482482

483483
dict.Peekaboo(file,'/')
484484

@@ -496,17 +496,13 @@ def ReadFile(fileName):
496496
scaled_fieldOfView_channel.fromElement.hi = 180
497497
shot.scene.GetChild(shot.scene.FindChild("Cameras")).AddChild(dmeAfxCam)
498498

499-
time = ReadFloat(file)
500-
501499
renderOrigin = ReadVector(file)
502500
renderAngles = ReadQAngle(file)
503501
fov = ReadFloat(file)
504502
fov = fov / 180.0
505503

506-
time = timeConverter.Convert(time, sfmUtils.GetChannelsClipForAnimSet(afxCam, shot))
507-
508-
MakeKeyFrameValue(channelCache, afxCam, 'fieldOfView', time, fov)
509-
MakeKeyFrameTransform(channelCache, afxCam, 'transform', time, renderOrigin, QuaternionFromQAngle(renderAngles), False, '_pos', '_rot')
504+
MakeKeyFrameValue(channelCache, afxCam, 'fieldOfView', timeConverter.GetTime(sfmUtils.GetChannelsClipForAnimSet(dagAnimSet, shot)), fov)
505+
MakeKeyFrameTransform(channelCache, afxCam, 'transform', timeConverter.GetTime(sfmUtils.GetChannelsClipForAnimSet(dagAnimSet, shot)), renderOrigin, QuaternionFromQAngle(renderAngles), True, '_pos', '_rot')
510506

511507
else:
512508
SetError('Unknown packet: ')

readme.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@ a custom (skin) model (modelName is '?' then).
7474

7575
Changelog:
7676

77+
1.6.0 (2017-09-16T22:00Z):
78+
- advancedfx_import_gameRecord:
79+
- Updated to AGR version 4
80+
7781
1.5.0 (2017-09-13T17:26Z):
7882
- advancedfx_import_gameRecord:
7983
- Updated to AGR version 3

0 commit comments

Comments
 (0)