AudioEmitter 세계에 오디오 스트림을 방송합니다.하나 이상의 입력 핀에 연결할 수 있는 단일 Wires 핀을 제공합니다.모든 스트림은 송신자의 부모 위치에서 세계로 방송됩니다. AudioEmitter부모가 Attachment 또는 Camera 또는 PVInstance인 경우, 부모의 세계 위치가 사용됩니다.부모가 이러한 클래스 중 하나가 아니면 AudioEmitter 는 실제로 침묵합니다.
AudioEmitters 는 3D 공간화를 구현하기 위해 AudioListeners 에서 듣습니다.
코드 샘플
local part1: BasePart = workspace.Speakers.Left
local part2: BasePart = workspace.Speakers.Right
local player: AudioPlayer = workspace.AudioPlayer
local leftEmitter = Instance.new("AudioEmitter")
local rightEmitter = Instance.new("AudioEmitter")
local toLeft = Instance.new("Wire")
local toRight = Instance.new("Wire")
leftEmitter.Parent = part1
rightEmitter.Parent = part2
toLeft.Parent = leftEmitter
toLeft.SourceInstance = player
toLeft.TargetInstance = leftEmitter
toRight.Parent = rightEmitter
toRight.SourceInstance = player
toRight.TargetInstance = rightEmitter
player:Play()
요약
속성
방출된 소리의 인지된 볼륨이 AudioListener와 관련된 각도에 따라 어떻게 변화하는지를 나타냅니다. 여기에서는 LookVector와 관련된 소리의 AudioEmitter에 대해 설명합니다.
이 AudioListeners를 들을 수 있는 컨트롤입니다.이 AudioEmitter .
방출된 소리의 인지된 볼륨이 AudioListener와 AudioEmitter 사이의 거리가 증가함에 따라 어떻게 변화하는지를 나타냅니다.
이 AudioEmitter에 대한 오디오 시뮬레이션의 세부 정도를 제어합니다.
메서드
AudioEmitter에서 사용하는 각도 감소 곡선을 가져오거나 기본 곡선을 사용하는 경우 빈 테이블을 가져옵니다.
지정된 핀하다연결된 배열 Wires를 반환합니다.
AudioEmitter에서 사용하는 거리 감소 곡선 또는 기본 곡선을 사용하는 경우 빈 테이블을 가져옵니다.
가 사용해야 하는 각도 감소 곡선을 설정하거나, 제공되지 않으면 상수 볼륨 곡선을 사용합니다.
AudioEmitter 가 사용해야 하는 거리 감소 곡선을 설정하거나, 제공되지 않으면 역전 롤오프 곡선을 사용합니다.
이벤트
다른 인스턴스가 를 통해 연결되거나 연결 해제되면 발생합니다. 연결되거나 연결 해제되면 발생합니다.
속성
AngleAttenuation
각도와 관련된 볼륨-오버-앤젤 곡선을 나타내며, 이는 서로 간의 각도와 관련된 AudioListener 와 연관된 AudioEmitter 의 소리를 얼마나 크게 들을지에 영향을 줍니다, 그리고 이는 LookVector 와 연관된 AudioEmitter 에 관련된 것입니다.
이 속성은 내부이며 스크립트에서 액세스할 수 없습니다; 복제를 지원하기 위해 존재합니다. 사용 세부 정보는 SetAngleAttenuation() 참조하십시오.
DistanceAttenuation
서로 사이의 거리에 따라 어떻게 크게 들리는지에 영향을 미치는 볼륨-거리 곡선을 나타냅니다.Represents a volume-over-distance curve that affects how loudly a AudioListener will hear the AudioEmitter , based on the distance between them.
이 속성은 내부이며 스크립트에서 액세스할 수 없습니다; 복제를 지원하기 위해 존재합니다. 사용 세부 정보는 SetDistanceAttenuation() 참조하십시오.
SimulationFidelity
오디오 시뮬레이션의 세부 정도가 이 AudioEmitter , 비슷하게 MeshPart.CollisionFidelity 또는 MeshPart.RenderFidelity 에 대해 어떻게 제어되어야 하는지 제어합니다.
AudioEmitters 및 AudioListeners 필요한 수준의 세부 정보에 대해 동의하지 않는 옵션을 사용합니다.
메서드
GetAngleAttenuation
테이블 매핑 각도를 볼륨으로 반환합니다.키는 0 와 180 사이의 숫자이며, 값은 0 와 1 사이의 숫자로 볼륨이 방향에 따라 감소하는 방법을 설명합니다.기본 각도 감소 곡선이 사용되는 경우 이 메서드는 빈 테이블을 반환합니다.
반환
위에 설명한 대로 테이블 매핑 각도를 볼륨으로 변환합니다.
GetConnectedWires
지정된 핀하다연결된 배열 Wires 을 반환합니다. AudioEmitter 에는 "입력" 핀하다하나 있습니다.
매개 변수
반환
GetDistanceAttenuation
테이블 매핑 거리를 볼륨으로 반환합니다.키는 0보다 큰 또는 같은 숫자이며, 값은 0에서 1(포함)까지의 숫자로 볼륨이 거리에서 어떻게 감소하는지 설명합니다.기본 거리 감소 곡선이 사용되는 경우 이 메서드는 빈 테이블을 반환합니다.
반환
GetInteractingListeners
반환
SetAngleAttenuation
서로 간의 각도와 관련된 음량 위에 각도 곡선을 설정하여 가 어떻게 크게 들을 수 있는지, 그리고 관련된 와 함께 연결된 에 따라 영향을 줍니다.
곡선은 볼륨 값에 대한 테이블 매핑 각도 키로 표시됩니다.키는 0 와 180 (포함) 사이의 고유한 숫자로 예상되며, 값은 0 와 1 (포함) 사이의 숫자로 예상됩니다.최대 400개의 키-값 쌍이 포함된 테이블이 지원됩니다.
각도 에서 곡선의 점의 각도 값이 직접 위쪽과 아래쪽에 있는 볼륨 레벨 사이에서 선형으로 인터폴레이션되어 볼륨의 크기가 결정됩니다. The volume of the from the perspective of a at an angle is determined by linearly interpolating between the volume levels for the points on the curve whose angle values are directly above and below .아래에 a 포인트가 없거나 위에 a 포인트가 없으면 다른 포인트의 용량 수준이 선택됩니다.본질적으로 곡선은 직선으로 연결된 점의 시퀀스이며, 왼쪽과 오른쪽 끝점을 넘어서 곡선은 각각의 볼륨 수준에서 외부로 확장됩니다.
이 볼륨은 모든 다른 공격 곡선의 볼륨(수신 AudioListener 포함)과 곱해서 최종 청각을 얻습니다.
테이블이 비어 있거나 인 경우, 기본값은 상수 용량 값의 각도 감소 곡선을 사용하도록 설정됩니다.
매개 변수
반환
SetDistanceAttenuation
서로 사이의 거리에 따라 어떻게 크게 들리는지에 영향을 미치는 볼륨-거리 곡선을 설정합니다.Sets a volume-over-distance curve that affects how loudly a AudioListener will hear the AudioEmitter , based on the distance between them.
곡선은 테이블 매핑 거리 키와 볼륨 값으로 표시됩니다.키는 0보다 큰 또는 같은 유일한 숫자로 예상되며, 값은 0에서 1(포함) 사이의 숫자로 예상됩니다.최대 400개의 키-값 쌍이 포함된 테이블이 지원됩니다.
원거리에서 커브의 점의 거리 값이 직접 위쪽과 아래쪽에 있는 볼륨 레벨 사이에서 선형으로 간격을 채우면 AudioEmitter 의 볼륨 용량이 결정됩니다.The volume of the from the perspective of a AudioListener at a distance d is determined by linearly interpolating between the volume levels for the points on the curve whose distance values are directly above and below d.아래에 d 포인트가 없거나 위에 d 포인트가 없으면 다른 포인트의 용량 수준이 선택됩니다.본질적으로 곡선은 직선으로 연결된 점의 시퀀스이며, 왼쪽과 오른쪽 끝점을 넘어서 곡선은 각각의 볼륨 수준에서 무한대로 확장됩니다.
이 볼륨은 모든 다른 공격 곡선의 볼륨(수신 AudioListener 포함)과 곱해서 최종 청각을 얻습니다.
테이블이 비어 있거나 nil 이면, AudioEmitter 기본값은 역삼각 법칙에 의해 결정된 거리 감소 곡선을 사용하도록 설정됩니다.
매개 변수
반환
코드 샘플
local Players = game:GetService("Players")
local emitterPart = Instance.new("Part")
emitterPart.Anchored = true
emitterPart.Position = Vector3.new(0, 0, 0)
emitterPart.Parent = workspace
local emitter: AudioEmitter = Instance.new("AudioEmitter")
emitter.Parent = emitterPart
local curve = {}
curve[10] = 1 -- Within a distance of 10 studs, listeners hear this emitter at full volume
curve[100] = 0.4 -- At a distance of 100 studs, listeners hear this emitter at 40% volume
curve[300] = 0 -- At any distance farther than 300 studs, listeners cannot hear this emitter
emitter:SetDistanceAttenuation(curve)
-- Replicate the rolloff curve from the old voice implementation
-- Default voice without the new audio API uses quadratic rolloff ranging from 7 to 80 studs
local MIN_DISTANCE = 7
local MAX_DISTANCE = 80
local CURVE_STEP_SIZE = 2
local voiceCurve = {}
for i = MIN_DISTANCE, MAX_DISTANCE, CURVE_STEP_SIZE do
voiceCurve[i] = ((i - MIN_DISTANCE) - (MAX_DISTANCE - MIN_DISTANCE)) ^ 2 / (MAX_DISTANCE - MIN_DISTANCE) ^ 2
end
voiceCurve[MAX_DISTANCE] = 0
local function setVoiceCurve(character)
local voiceEmitter: AudioEmitter = character:WaitForChild("AudioEmitter")
voiceEmitter:SetDistanceAttenuation(voiceCurve)
end
for _, player in Players:GetPlayers() do
if player.Character then
setVoiceCurve(player.Character)
end
player.CharacterAdded:Connect(setVoiceCurve)
end
이벤트
WiringChanged
연결되거나 연결 해제된 Wire 후 발생하는 이벤트로, Wire 는 현재 또는 이전에 AudioEmitter 및 다른 연결 가능한 인스턴스에 고정되었거나 고정되었습니다.
매개 변수
인스턴스가 연결되었거나 연결 해제되었는지 여부.
타겟 AudioEmitter 에 있는 핀은 다음과 같습니다.The pin on the that the Wire targets.
Wire 와 다른 인스턴스 사이의 AudioEmitter.