[After Effects] 확장과 웹소켓으로 MIDI의 이벤트를 받아서 놀아요.
13847 단어 Node.jsAfterEffects
AE를 전제로 썼지만 확장이 거의 없어 AE 이외의 Adobe 제품도 사용할 수 있다.
필요한 물건
nanoKONTROL2 4000엔 정도
전체도
이번에는 노드.js 듣기 MIDI에서 실행되는 웹 소켓 서버에 설정하여 그것을 받아들이는 형식으로 확장합니다.
소스는 여기서 공개한다.
https://github.com/matsurai25/zxp-midi
server const app = require('http').createServer();
const io = require('socket.io')(app);
app.listen(39393);
io.on('connection', function(socket) {
// 接続された
console.log('connection established');
});
Node.js로 서버를 만듭니다.const Korg = require('./korg.js');
const korg = new Korg();
let timer;
// 全イベントを聴く
korg.on('*', function(event, value) {
// フェーダーのイベントが送られ過ぎないように、setTimeoutで
// イベント後一定期間内に再度イベントがった場合はそのイベントを無視するようにしている。
if (timer !== false) {
clearTimeout(timer); // setTimeoutを解除
}
timer = setTimeout(function() {
// webSocketでイベントを送信
io.emit('midi-event', {
time:moment().format('HH:mm:ss'),
type:event.split(':')[0],
channel:event.split(':')[1],
value:value
});
}, 50);
})
MIDI 활동을 받아서 소켓으로 보냅니다.korg.js
에서 약간 변경korg-nano되어 나노콘트롤2의 MIDI 매핑을 받았다.
이번 쇠퇴는 활동이 너무 많이 발송되고 AE 측의 동작이 무거워졌기 때문에 set Timeout에서 짧은 시간 내에 활동이 너무 많이 발송되는 것을 제한했다.
extension
Adobe의 확장은 HTML+js로 다양한 물건을 만들 수 있습니다.
즉 앞부분의 다양한 물건을 사용할 수 있다는 것이다.
아무튼 괜찮은 개발 패키지를 만들었으니 이번엔 이걸로 하자
https://github.com/matsurai25/adobe-html5-panel-template
jade/scss 등의 컴파일, manfest 파일의 설정, zxp 서명, 시작을 작성할 수 있습니다.
vue.js
이번에 사용한 것은Vue.js
어떤 활동이 있는지 똑똑히 볼 수 있다.
https://jp.vuejs.org/
일본어 문서가 있어서 알기 쉽습니다.const Vue = require('vue/dist/vue.common.js'); // Vue
const io = require('socket.io-client/dist/socket.io.js');
module.exports = () => {
const socket = io('http://localhost:39393');
var app = new Vue({
el: '#app',
data: {
messages: []
},
created: function() {
socket.on('midi-event', (data) => {
console.log(data);
this.$data.messages.unshift(data);
});
}
});
};
new Vue()
다양한 목록 표현과 이벤트 설정을 제공합니다.created
에서 지정한 함수는 마운트가 완료될 때 실행됩니다.socket.on(key, function)
에서 지정한 키의 플러그인이 전송될 때 처리됩니다.
이것은 먼저 받은 jsonunshift
을 message
에 넣고 배열한 것이다.DOM 면이 자동으로 업데이트됩니다. #app
.message(v-for='message in messages')
.time
| {{ message.time }}
.type
| {{ message.type }}
.channel
| {{ message.channel }}
.value
| {{ message.value }}
DOM의 경우 이러한 느낌으로 미리 지정됩니다.
몸매는 scss로 좋은 느낌을 줍니다.
확장성
_slider
라는 제어점을 만들고 layer
라는 이름의 도면층을 만들고 그 위에 슬라이더 제어를 가득 넣은 다음 모든 도면층에서 참조합니다.var s = comp('_slider').layer('slider').effect('slider:'+n)(1);
를 참고하십시오.
어쨌든 기분 좋은 물건이야.
var k = comp('_slider').layer('slider').effect('slider:1')(1);
effect("色相/彩度")(7)+index*20 + 5*k;
적당히 채우기 ● 페이드인 페이드로 색상 효과를 조절한다.
앱을 여기에 두고 자유롭게 사용하세요(CC2014)
https://github.com/matsurai25/zxp-midi/blob/master/AE_MIDI_SLIDER_sample.aep
완성
무슨 뜻인지 모르겠지만, MIDI 액세서리로 After Effects의 확장을 조작하라고 썼습니다.유쾌하다.pic.twitter.com/HFlnHrymOA — matsurai (@matsurai25) 2017년 2월 25일
감상
const app = require('http').createServer();
const io = require('socket.io')(app);
app.listen(39393);
io.on('connection', function(socket) {
// 接続された
console.log('connection established');
});
Node.js로 서버를 만듭니다.const Korg = require('./korg.js');
const korg = new Korg();
let timer;
// 全イベントを聴く
korg.on('*', function(event, value) {
// フェーダーのイベントが送られ過ぎないように、setTimeoutで
// イベント後一定期間内に再度イベントがった場合はそのイベントを無視するようにしている。
if (timer !== false) {
clearTimeout(timer); // setTimeoutを解除
}
timer = setTimeout(function() {
// webSocketでイベントを送信
io.emit('midi-event', {
time:moment().format('HH:mm:ss'),
type:event.split(':')[0],
channel:event.split(':')[1],
value:value
});
}, 50);
})
MIDI 활동을 받아서 소켓으로 보냅니다.
korg.js
에서 약간 변경korg-nano되어 나노콘트롤2의 MIDI 매핑을 받았다.이번 쇠퇴는 활동이 너무 많이 발송되고 AE 측의 동작이 무거워졌기 때문에 set Timeout에서 짧은 시간 내에 활동이 너무 많이 발송되는 것을 제한했다.
extension
Adobe의 확장은 HTML+js로 다양한 물건을 만들 수 있습니다.
즉 앞부분의 다양한 물건을 사용할 수 있다는 것이다.
아무튼 괜찮은 개발 패키지를 만들었으니 이번엔 이걸로 하자
https://github.com/matsurai25/adobe-html5-panel-template
jade/scss 등의 컴파일, manfest 파일의 설정, zxp 서명, 시작을 작성할 수 있습니다.
vue.js
이번에 사용한 것은Vue.js
어떤 활동이 있는지 똑똑히 볼 수 있다.
https://jp.vuejs.org/
일본어 문서가 있어서 알기 쉽습니다.const Vue = require('vue/dist/vue.common.js'); // Vue
const io = require('socket.io-client/dist/socket.io.js');
module.exports = () => {
const socket = io('http://localhost:39393');
var app = new Vue({
el: '#app',
data: {
messages: []
},
created: function() {
socket.on('midi-event', (data) => {
console.log(data);
this.$data.messages.unshift(data);
});
}
});
};
new Vue()
다양한 목록 표현과 이벤트 설정을 제공합니다.created
에서 지정한 함수는 마운트가 완료될 때 실행됩니다.socket.on(key, function)
에서 지정한 키의 플러그인이 전송될 때 처리됩니다.
이것은 먼저 받은 jsonunshift
을 message
에 넣고 배열한 것이다.DOM 면이 자동으로 업데이트됩니다. #app
.message(v-for='message in messages')
.time
| {{ message.time }}
.type
| {{ message.type }}
.channel
| {{ message.channel }}
.value
| {{ message.value }}
DOM의 경우 이러한 느낌으로 미리 지정됩니다.
몸매는 scss로 좋은 느낌을 줍니다.
확장성
_slider
라는 제어점을 만들고 layer
라는 이름의 도면층을 만들고 그 위에 슬라이더 제어를 가득 넣은 다음 모든 도면층에서 참조합니다.var s = comp('_slider').layer('slider').effect('slider:'+n)(1);
를 참고하십시오.
어쨌든 기분 좋은 물건이야.
var k = comp('_slider').layer('slider').effect('slider:1')(1);
effect("色相/彩度")(7)+index*20 + 5*k;
적당히 채우기 ● 페이드인 페이드로 색상 효과를 조절한다.
앱을 여기에 두고 자유롭게 사용하세요(CC2014)
https://github.com/matsurai25/zxp-midi/blob/master/AE_MIDI_SLIDER_sample.aep
완성
무슨 뜻인지 모르겠지만, MIDI 액세서리로 After Effects의 확장을 조작하라고 썼습니다.유쾌하다.pic.twitter.com/HFlnHrymOA — matsurai (@matsurai25) 2017년 2월 25일
감상
const Vue = require('vue/dist/vue.common.js'); // Vue
const io = require('socket.io-client/dist/socket.io.js');
module.exports = () => {
const socket = io('http://localhost:39393');
var app = new Vue({
el: '#app',
data: {
messages: []
},
created: function() {
socket.on('midi-event', (data) => {
console.log(data);
this.$data.messages.unshift(data);
});
}
});
};
#app
.message(v-for='message in messages')
.time
| {{ message.time }}
.type
| {{ message.type }}
.channel
| {{ message.channel }}
.value
| {{ message.value }}
_slider
라는 제어점을 만들고 layer
라는 이름의 도면층을 만들고 그 위에 슬라이더 제어를 가득 넣은 다음 모든 도면층에서 참조합니다.var s = comp('_slider').layer('slider').effect('slider:'+n)(1);
를 참고하십시오.어쨌든 기분 좋은 물건이야.
var k = comp('_slider').layer('slider').effect('slider:1')(1);
effect("色相/彩度")(7)+index*20 + 5*k;
적당히 채우기 ● 페이드인 페이드로 색상 효과를 조절한다.앱을 여기에 두고 자유롭게 사용하세요(CC2014)
https://github.com/matsurai25/zxp-midi/blob/master/AE_MIDI_SLIDER_sample.aep
완성
무슨 뜻인지 모르겠지만, MIDI 액세서리로 After Effects의 확장을 조작하라고 썼습니다.유쾌하다.pic.twitter.com/HFlnHrymOA — matsurai (@matsurai25) 2017년 2월 25일
감상
웹소켓 서버를 인터넷에 놓고 어떤 키로 요청하면 보내는 스크립트를 손에 넣을 수 있다.스크립트 파일은 항상 일회용 코드로 변해서 손에서 관리하지 않아도 된다.이거 재밌겠다, 한가할 때 해보자-matsurai(@matsurai25)2017년 2월 25일
그게 다야.
Reference
이 문제에 관하여([After Effects] 확장과 웹소켓으로 MIDI의 이벤트를 받아서 놀아요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/matsurai25/items/ebb5357204c984e0d459텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)