Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled diff
생성일
7년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
8 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
28 행
복사
97 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
113 행
복사
복사
복사됨
복사
복사됨
//Duik.connector
//Duik.connector
"absolute animation" mod
var ctrlLayer =
thisComp.layer("C | Slider
");
var ctrlLayer =
thisComp.layer("C | Slider
2
");
var ctrlValue = ctrlLayer.effect("Slider")(18);
var ctrlValue = ctrlLayer.effect("Slider")(18);
var ctrlEffect = ctrlLayer.effect("Value Connector");
var ctrlEffect = ctrlLayer.effect("Value Connector");
복사
복사됨
복사
복사됨
Text moved with changes to lines 16-20 (97.3% similarity)
var ctrlMin = ctrlEffect(2).value;
var ctrlMax = ctrlEffect(3).value;
var result = value;
if (numKeys >= 2 && ctrlEffect.enabled)
{
var useVelocity = ctrlEffect(1).value == 2;
var useVelocity = ctrlEffect(1).value == 2;
if (useVelocity) ctrlValue = ctrlValue.velocity;
if (useVelocity) ctrlValue = ctrlValue.velocity;
else ctrlValue = ctrlValue.value;
else ctrlValue = ctrlValue.value;
복사
복사됨
복사
복사됨
var tHasKeys = ctrlLayer.transform.xPosition.numKeys > 1;
function connect(keyF){
Text moved with changes from lines 5-9 (97.3% similarity)
var ctrlMin = ctrlEffect(2).value; //0
var ctrlMax = ctrlEffect(3).value; //100
var result = value;
if (numKeys >= 2 && ctrlEffect.enabled)
{
var t = 0;
var t = 0;
var beginTime = key(1).time;
var beginTime = key(1).time;
var endTime = key(numKeys).time;
var endTime = key(numKeys).time;
if (ctrlMin > ctrlMax)
if (ctrlMin > ctrlMax)
{
{
복사
복사됨
복사
복사됨
t = linear(
ctrlValue
, ctrlMin, ctrlMax, endTime, beginTime);
t = linear(
keyF
, ctrlMin, ctrlMax, endTime, beginTime);
// t = linear(time, 0, 100, 0.5, 0.0); ????????
}
}
else
else
{
{
복사
복사됨
복사
복사됨
t = linear(
ctrlValue
, ctrlMin, ctrlMax, beginTime, endTime);
t = linear(
keyF
, ctrlMin, ctrlMax, beginTime, endTime);
}
}
result = valueAtTime(t);
result = valueAtTime(t);
}
}
복사
복사됨
복사
복사됨
Math.floor(result);
var driver =
Math.floor(result);
//
//
복사
복사됨
복사
복사됨
return driver;
}
sliderController = ctrlLayer.transform.xPosition;
poses = [];
temp = 1;
while ( temp <= thisComp.marker.numKeys ) {
poses.push ( this.value );
i = temp++ ;
}
function getValues(){
var obj_A = sliderController
var ID_A = obj_A.nearestKey(time).index;
var value_A;
var time_A;
var keyF_A;
var keyF_B;
if (obj_A.nearestKey(time).time <= time ){
value_A = obj_A.key(ID_A).value;
time_A = obj_A.key(ID_A).time;
} else {
try{
obj_A.key(ID_A-1).value;
value_A = obj_A.key(ID_A-1).value;
time_A = obj_A.key(ID_A-1).time;
}catch(err){
value_A = obj_A.key(ID_A).value;
time_A = obj_A.key(ID_A).time;
}
}
var obj_B = sliderController
var ID_B = obj_B.nearestKey(time).index;
var value_B;
var time_B;
if (obj_B.nearestKey(time).time >= time ){
value_B = obj_B.key(ID_B).value;
time_B = obj_B.key(ID_B).time;
} else {
try{
obj_B.key(ID_B+1).value;
value_B = obj_B.key(ID_B+1).value;
time_B = obj_B.key(ID_B+1).time;
}catch(err){
value_B = obj_B.key(ID_B).value;
time_B = obj_B.key(ID_B).time;
}
}
keyF_A = connect(value_A);
keyF_B = connect(value_B);
return linear(time,time_A, time_B, keyF_A, keyF_B);
// time value can't read the easing from the slider keyframes, I must discover a way to mimic the ctrlEffect + UseVelocity shenanigans from the original code.
}
if(tHasKeys) getValues() else key(1).value;
저장된 비교 결과
원본
파일 열기
//Duik.connector var ctrlLayer = thisComp.layer("C | Slider"); var ctrlValue = ctrlLayer.effect("Slider")(18); var ctrlEffect = ctrlLayer.effect("Value Connector"); var ctrlMin = ctrlEffect(2).value; var ctrlMax = ctrlEffect(3).value; var result = value; if (numKeys >= 2 && ctrlEffect.enabled) { var useVelocity = ctrlEffect(1).value == 2; if (useVelocity) ctrlValue = ctrlValue.velocity; else ctrlValue = ctrlValue.value; var t = 0; var beginTime = key(1).time; var endTime = key(numKeys).time; if (ctrlMin > ctrlMax) { t = linear(ctrlValue, ctrlMin, ctrlMax, endTime, beginTime); } else { t = linear(ctrlValue, ctrlMin, ctrlMax, beginTime, endTime); } result = valueAtTime(t); } Math.floor(result); //
수정본
파일 열기
//Duik.connector "absolute animation" mod var ctrlLayer =thisComp.layer("C | Slider 2"); var ctrlValue = ctrlLayer.effect("Slider")(18); var ctrlEffect = ctrlLayer.effect("Value Connector"); var useVelocity = ctrlEffect(1).value == 2; if (useVelocity) ctrlValue = ctrlValue.velocity; else ctrlValue = ctrlValue.value; var tHasKeys = ctrlLayer.transform.xPosition.numKeys > 1; function connect(keyF){ var ctrlMin = ctrlEffect(2).value; //0 var ctrlMax = ctrlEffect(3).value; //100 var result = value; if (numKeys >= 2 && ctrlEffect.enabled) { var t = 0; var beginTime = key(1).time; var endTime = key(numKeys).time; if (ctrlMin > ctrlMax) { t = linear(keyF, ctrlMin, ctrlMax, endTime, beginTime); // t = linear(time, 0, 100, 0.5, 0.0); ???????? } else { t = linear(keyF, ctrlMin, ctrlMax, beginTime, endTime); } result = valueAtTime(t); } var driver = Math.floor(result); // return driver; } sliderController = ctrlLayer.transform.xPosition; poses = []; temp = 1; while ( temp <= thisComp.marker.numKeys ) { poses.push ( this.value ); i = temp++ ; } function getValues(){ var obj_A = sliderController var ID_A = obj_A.nearestKey(time).index; var value_A; var time_A; var keyF_A; var keyF_B; if (obj_A.nearestKey(time).time <= time ){ value_A = obj_A.key(ID_A).value; time_A = obj_A.key(ID_A).time; } else { try{ obj_A.key(ID_A-1).value; value_A = obj_A.key(ID_A-1).value; time_A = obj_A.key(ID_A-1).time; }catch(err){ value_A = obj_A.key(ID_A).value; time_A = obj_A.key(ID_A).time; } } var obj_B = sliderController var ID_B = obj_B.nearestKey(time).index; var value_B; var time_B; if (obj_B.nearestKey(time).time >= time ){ value_B = obj_B.key(ID_B).value; time_B = obj_B.key(ID_B).time; } else { try{ obj_B.key(ID_B+1).value; value_B = obj_B.key(ID_B+1).value; time_B = obj_B.key(ID_B+1).time; }catch(err){ value_B = obj_B.key(ID_B).value; time_B = obj_B.key(ID_B).time; } } keyF_A = connect(value_A); keyF_B = connect(value_B); return linear(time,time_A, time_B, keyF_A, keyF_B); // time value can't read the easing from the slider keyframes, I must discover a way to mimic the ctrlEffect + UseVelocity shenanigans from the original code. } if(tHasKeys) getValues() else key(1).value;
비교하기