Three JS Editor를 사용한 Trippy 8D 오디오.
먼저 찾은 threeJs 편집기here를 실행합니다. 상자 개체를 추가하고 오른쪽 하단 모서리에 스크립트를 첨부합니다.
다음으로 구 또는 원하는 3d 개체를 추가하고 위치를 상자 오른쪽으로 약 2 단위로 설정합니다. 이제 편집기의 오른쪽 상단 모서리에 있는 SCENE 트리 보기의 상자 핸들 아래에 있는 구체 핸들을 드래그하여 상자의 자식으로 만들어야 합니다. 상자 3d 개체에서 수행한 것과 같이 구형 3d 개체에 스크립트를 추가합니다.
Box(상위) 스크립트:
player.listener = null
var tOld = 0
var rotX = 1
var rotY = 1
var rotZ = 1
function update( event ) {
var ds = new Date().getSeconds()
var dn = Date.now()
if(tOld < dn) {
tOld = dn+5000
rotX = ds % 4 == 0 ? 1 : 0
rotY = ds % 3 == 0 ? 1 : 0
rotZ = ds % 2 == 0 ? 1 : 0
console.log(rotX, rotY, rotZ)
console.log(tOld, dn, ds)
}
this.rotateOnAxis(new THREE.Vector3(rotX,rotY,rotZ), deg2rad(.1))
}
function init(){
player.listener = new THREE.AudioListener();
console.log(player)
this.add(player.listener)
}
먼저 player.listener를 null로 설정한 다음 초기화 후크에서 THREE.audioListener를 player.listener로 설정하여 구체 스크립트 자식에서 액세스할 수 있도록 합니다.
function init(){
player.listener = new THREE.AudioListener();
console.log(player)
this.add(player.listener)
}
다음으로 tOld, rotX, rotY, rotZ를 초기화합니다. 나중에 무작위 회전에 이것을 사용할 것입니다. Date() 클래스에서 현재 초를 가져오고 Date.now() 함수에서 현재 밀리초를 얻습니다.
이전 시간(tOld)이 여전히 새 밀리초보다 크면 회전 설정을 조정하지 마십시오. 5초마다 갱신됩니다.
마지막으로 상자 3d 개체를 회전합니다.
this.rotateOnAxis(new THREE.Vector3(rotX,rotY,rotZ), deg2rad(.1))
Sphere 스크립트:
function init(){
console.log('ball', player)
var i = setInterval( () => {
if(player.listener === null) return
player.sound = new THREE.PositionalAudio( player.listener );
this.add(player.sound)
const audioLoader = new THREE.AudioLoader();
audioLoader.load( 'https://cdn.jsdelivr.net/gh/ellenprobst/web-audio-api-with-Threejs@57582104/lib/TheWarOnDrugs.m4a', function( buffer ) {
player.sound.setBuffer( buffer );
player.sound.setLoop( false );
player.sound.setVolume( 1 );
player.sound.play();
});
console.log('loaded sound!')
if(player.listener !== null){
clearInterval(i)
}
}, 1000)
}
function stop(){
player.sound.stop()
}
스크립트가 수행하는 작업:
초기화 후크에서 다른 전역 변수가 될 player.sound에 player.listener 전역 변수를 THREE.PositionalAudio로 설정합니다. 오디오를 중지 후크에서 중지하려면 이것이 필요합니다. 그런 다음 오디오 파일을 로드하고 버퍼, 루프, 볼륨을 설정하고 마지막으로 재생합니다.
이제 자신의 mp4 또는 ogg 음악 파일로 8D 위치 오디오를 즐길 수 있습니다.
demo!을 확인하십시오.
Reference
이 문제에 관하여(Three JS Editor를 사용한 Trippy 8D 오디오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jtwebguy/8d-audio-with-threejs-editor-25o7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)