视角环绕镜头

视角环绕镜头

变量

{

全局:
	28: Initialized
	29: Center
	30: TargetCenter
	31: P1
	34: Radius
	35: Speed
	36: Alpha
	37: Rotation
	38: Stage
	39: StageTimer
	40: StageDuration
	41: IntroTotalTime
	42: IntroTimer
	43: IntroActive

}

规则("\"初始化点位与参数")

{

事件
{
	持续 - 全局;
}

条件
{
	全局.Initialized == 假;
}

动作
{
	"// 点位1坐标(建议用摄像机图标在地图上点选)"
	全局.P1 = 矢量(0, 20, 0);
	"// 环绕半径(单位:米)"
	全局.Radius = 30;
	"// 旋转速度(度/秒)"
	全局.Speed = 30;
	"// 旋转方向:-1顺时针,1逆时针"
	全局.Rotation = 1;
	"// 每个点位停留时间(秒)"
	全局.StageDuration = 8;
	" // 开场运镜总时长(秒),默认24秒(3个点位 × 8秒)"
	全局.IntroTotalTime = 24;
	" // 运镜计时器,从0开始"
	全局.IntroTimer = 0;
	"// 运镜是否激活,初始为True"
	全局.IntroActive = 真;
	"  // 初始化阶段与角度"
	全局.Stage = 0;
	全局.StageTimer = 0;
	全局.Alpha = 0;
	全局.Center = 全局.P1;
	全局.TargetCenter = 全局.P1;
	全局.Initialized = 真;
}

}

规则("让角度循环")

{

事件
{
	持续 - 全局;
}

条件
{
	全局.Rotation != 0;
	全局.Alpha == 0;
}

动作
{
	" // 让角度以指定速率递增,实现持续环绕"
	追踪全局变量频率(Alpha, 全局.Rotation * 10000, 全局.Speed, 速率及最终值);
}

}

规则("角度过大时重置")

{

事件
{
	持续 - 全局;
}

条件
{
	绝对值(全局.Alpha) == 10000;
}

动作
{
	" // 角度归零,重新开始环绕"
	全局.Alpha = 0;
}

}

规则("阶段计时")

{

事件
{
	持续 - 全局;
}

条件
{
	全局.Initialized == 真;
}

动作
{
	"// 计时器持续递增"
	追踪全局变量频率(StageTimer, 9999, 1, 速率及最终值);
}

}

规则("切换阶段")

{

事件
{
	持续 - 全局;
}

条件
{
	全局.StageTimer >= 全局.StageDuration;
}

动作
{
	" // 阶段加1,满3归零"
	全局.Stage = (全局.Stage + 1) % 3;
	"// 计时器归零"
	全局.StageTimer = 0;
}

}

规则("切换到点位1")

{

事件
{
	持续 - 全局;
}

条件
{
	全局.Stage == 0;
}

动作
{
	全局.TargetCenter = 全局.P1;
}

}

规则("平滑移动中心点")

{

事件
{
	持续 - 全局;
}

动作
{
	" // 中心点以指定速率追逐目标点位,实现平滑过渡"
	追踪全局变量频率(Center, 全局.TargetCenter, 5, 速率及最终值);
}

}

规则("开场运镜计时")

{

事件
{
	持续 - 全局;
}

条件
{
	全局.IntroActive == 真;
}

动作
{
	"// 运镜计时器持续递增"
	追踪全局变量频率(IntroTimer, 9999, 1, 速率及最终值);
}

}

规则("为所有玩家开启镜头")

{

事件
{
	持续 - 每名玩家;
	双方;
	全部;
}

条件
{
	全局.IntroActive == 真;
}

动作
{
	"// 为事件玩家启动摄像机,位置由三角函数实时计算"
	禁用 开始镜头(事件玩家, 矢量(X方向分量(全局.Center) + 全局.Radius * 角度的余弦值(全局.Alpha), Y方向分量(全局.Center), Z方向分量(全局.Center) + 全局.Radius * 角度的正弦值(全局.Alpha)),
		全局.Center, 0);
	禁用 开始镜头(事件玩家, 矢量(X方向分量(全局.Center) + 全局.Radius * 角度的余弦值(全局.Alpha), Y方向分量(全局.Center), Z方向分量(全局.Center) + 全局.Radius * 角度的正弦值(全局.Alpha)),
		矢量(X方向分量(全局.Center) + 全局.Radius * 0.500 * 角度的余弦值(全局.Alpha + 90), Y方向分量(全局.Center), Z方向分量(全局.Center)
		+ 全局.Radius * 0.500 * 角度的正弦值(全局.Alpha + 90)), 0);
	开始镜头(事件玩家, 矢量(X方向分量(全局.Center) + 全局.Radius * 角度的余弦值(全局.Alpha), Y方向分量(全局.Center) + 40, Z方向分量(全局.Center) + 全局.Radius * 角度的正弦值(
		全局.Alpha)), 全局.Center, 0);
}

}

规则("为所有玩家停止镜头")

{

事件
{
	持续 - 每名玩家;
	双方;
	全部;
}

条件
{
	全局.IntroActive == 真;
	游戏正在进行中 == 真;
}

动作
{
	停止镜头(事件玩家);
}

}

评论
这里空空如也~
这里空空如也~