1) Yes, this is possible:
Code:
import viz
import viztask
viz.go()
gallery = viz.add('gallery.ive')
def changeFOV():
yield viztask.waitKeyDown(' ')
viz.fov(60)
viztask.schedule( changeFOV() )
2) You can check the distance between the viewpoint and each billboard using the
vizmat.Distance command. The check can be done within a timer function on some regular interval. Based on the distance you can swap a new model in.
If you have access to Vizard 4 this can be accomplished using proximity sensors.