2025-05-02 17:36:01 +09:00
{
"0" : {
"1" : {
"ele" : "none" ,
"point" : 0
} ,
"2" : {
"ele" : "none" ,
"point" : 0
} ,
"3" : {
"ele" : "none" ,
"point" : 0
} ,
"4" : {
"ele" : "none" ,
"point" : 0
} ,
"5" : {
"ele" : "none" ,
"point" : 0
} ,
"6" : {
"ele" : "none" ,
"point" : 0
} ,
"7" : {
"ele" : "none" ,
"point" : 0
} ,
"8" : {
"ele" : "$[?(@.width == 65 && @.height == 45)]" ,
"type" : "size" ,
"value" : {
"width" : 65 ,
"height" : 45
} ,
"point" : 4
} ,
"9" : {
"ele" : "none" ,
"point" : 0 ,
"desc" : "파일명 확인"
}
} ,
"1" : {
"1" : {
"ele" : "none" ,
"point" : 0
} ,
"2" : {
"ele" : "none" ,
"point" : 0
} ,
"3" : {
"ele" : "none" ,
"point" : 0
} ,
"4" : {
2025-05-28 17:35:53 +09:00
"ele" : "$.children[?(@.name=='한옥')].name" ,
"value" : "한옥" ,
2025-05-02 17:36:01 +09:00
"point" : 4
} ,
"5" : {
"ele" : "none" ,
"point" : 0
} ,
"6" : {
2025-05-28 17:35:53 +09:00
"ele" : "$.children[?(@.name=='Traditional Park')].name" ,
"value" : "Traditional Park" ,
2025-05-02 17:36:01 +09:00
"point" : 4
} ,
"7" : {
2025-05-28 17:35:53 +09:00
"ele" : "$.children[?(@.name=='Traditional Park')].text.font.names[0]" ,
2025-05-02 17:36:01 +09:00
"type" : "font" ,
"value" : "Arial" ,
"point" : 2
} ,
"8" : {
2025-05-28 17:35:53 +09:00
"ele" : "$.children[?(@.name=='Traditional Park')].text.font.names[0]" ,
2025-05-02 17:36:01 +09:00
"value" : "Arial-BoldItalicMT" ,
"point" : 2
} ,
"9" : {
2025-05-28 17:35:53 +09:00
"ele" : "$.children[?(@.name=='Traditional Park')].text.font.sizes[0]" ,
2025-05-02 17:36:01 +09:00
"value" : 48 ,
"point" : 2
} ,
"10" : {
2025-05-28 17:35:53 +09:00
"ele" : "$.children[?(@.name=='Traditional Park')].text.font.colors[0]" ,
2025-05-02 17:36:01 +09:00
"type" : "color" ,
2025-05-28 17:35:53 +09:00
"value" : "017e86" ,
2025-05-02 17:36:01 +09:00
"point" : 2
} ,
"11" : {
"ele" : "none" ,
"point" : 0
} ,
"12" : {
"ele" : "none" ,
"point" : 0
} ,
"13" : {
"ele" : "none" ,
"point" : 0
} ,
"14" : {
2025-05-28 17:35:53 +09:00
"ele" : "$.children[?(@.name=='전통 문화 공원')].name" ,
"value" : "전통 문화 공원" ,
2025-05-02 17:36:01 +09:00
"point" : 4
} ,
"15" : {
2025-05-28 17:35:53 +09:00
"ele" : "$.children[?(@.name=='전통 문화 공원')].text.font.names[0]" ,
2025-05-02 17:36:01 +09:00
"type" : "font" ,
2025-05-28 17:35:53 +09:00
"value" : "GungsuhChe" ,
"point" : 2 ,
"desc" : {
"돋움체" : "DotumChe" ,
"궁서체" : "GungsuhChe" ,
"굴림체" : "GulimChe" ,
2025-05-28 17:43:18 +09:00
"휴먼옛체" : "YetR"
2025-05-28 17:35:53 +09:00
}
2025-05-02 17:36:01 +09:00
} ,
"16" : {
2025-05-28 17:35:53 +09:00
"ele" : "$.children[?(@.name=='전통 문화 공원')].text.font.sizes[0]" ,
2025-05-02 17:36:01 +09:00
"value" : 36 ,
"point" : 2
} ,
"17" : {
2025-05-28 17:35:53 +09:00
"ele" : "$.children[?(@.name=='전통 문화 공원')].text.font.colors[0]" ,
2025-05-02 17:36:01 +09:00
"type" : "color" ,
2025-05-28 17:35:53 +09:00
"value" : "ffeeca" ,
2025-05-02 17:36:01 +09:00
"point" : 2
} ,
"18" : {
"ele" : "none" ,
"point" : 0
} ,
"19" : {
"ele" : "none" ,
"point" : 0
} ,
"20" : {
"ele" : "none" ,
"point" : 0
} ,
"21" : {
"ele" : "none" ,
"point" : 0
} ,
"22" : {
2025-05-28 17:35:53 +09:00
"ele" : "$.children[?(@.name=='맷돌')].name" ,
"value" : "맷돌" ,
2025-05-02 17:36:01 +09:00
"point" : 4
} ,
"23" : {
"ele" : "none" ,
"point" : 0
} ,
"24" : {
"ele" : "none" ,
"point" : 0
} ,
"25" : {
"ele" : "none" ,
"point" : 0
} ,
"26" : {
"ele" : "$[?(@.width == 65 && @.height == 35)]" ,
"type" : "size" ,
"value" : {
"width" : 65 ,
"height" : 35
} ,
"point" : 5
} ,
"27" : {
"ele" : "none" ,
"point" : 0 ,
"desc" : "파일명 확인"
}
} ,
"2" : {
2025-06-13 17:03:43 +09:00
"desc" : "videoStartTime 항목은 동영상파일>자막>시작시간 문항의 정답을 작성" ,
2025-05-02 17:36:01 +09:00
"videoStartTime" : 170 ,
"openingStartTime" : 0 ,
"1" : {
2025-06-13 17:03:43 +09:00
"ele" : "//CRTrackList[@Name='비디오1']/CRTrackClip[not(@Length<='5' and @ClipLength='-1')]/@ClipIndex" ,
"type" : "mediaOrder" ,
2025-05-02 17:36:01 +09:00
"value" : [
"동영상.mp4" ,
2025-05-28 17:35:53 +09:00
"이미지2.jpg" ,
2025-05-02 17:36:01 +09:00
"이미지3.jpg" ,
2025-05-28 17:35:53 +09:00
"이미지1.jpg"
2025-05-02 17:36:01 +09:00
] ,
2025-06-13 17:03:43 +09:00
"point" : 4 ,
"desc" : "비디오1 트랙에 있는 클립의 ClipIndex값을 기준으로 CRClipArr에서 Path값을 가져와서 정답 채점, 클립의 ClipIndex값이 -1인 경우와 길이가 5프레임 이하인 경우는 제외한다."
2025-05-02 17:36:01 +09:00
} ,
"2" : {
2025-06-13 17:03:43 +09:00
"ele" : "/CROASTERP/CRTrackArr[1]/CRVideoTrackArr[1]/CRTrackList[1]/CRTrackClip[1]/@Speed" ,
"type" : "oneAnswer" ,
"value" : {
"speed" : "120"
} ,
"point" : 2 ,
"desc" : "100당 1배속 / 130 = 1.3배속"
2025-05-02 17:36:01 +09:00
} ,
"3" : {
2025-06-13 17:03:43 +09:00
"ele" : "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{videoClipIndex}']" ,
"type" : "startEnd" ,
"media" : "동영상.mp4" ,
"value" : {
2025-05-02 17:36:01 +09:00
"start" : "0" ,
2025-06-13 17:03:43 +09:00
"end" : "360"
} ,
"point" : 2 ,
"desc" : "시작시간과 재생시간 정답값 입력, 3번문항은 '동영상.mp4' 클립의 길이를 확인하는 문항이므로 media는 수정할 필요가 없다."
2025-05-02 17:36:01 +09:00
} ,
"4" : {
2025-06-13 17:03:43 +09:00
"ele" : "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex='{videoClipIndex}']//CRFilter" ,
"type" : "effect" ,
"media" : "동영상.mp4" ,
2025-05-28 17:35:53 +09:00
"value" : {
2025-05-28 17:43:18 +09:00
"ID" : "70" ,
2025-05-28 17:35:53 +09:00
"VID100" : "30" ,
"VID101" : "20"
} ,
"point" : 3 ,
2025-06-13 17:03:43 +09:00
"desc" : "value값의 키값(VID___)은 이펙트의 속성종류에 따라 변경되므로 채점기준표작성시 확인 필요"
2025-05-02 17:36:01 +09:00
} ,
"5" : {
"ele" : "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name" ,
2025-05-12 16:42:09 +09:00
"ele2" : "//CRCUnitArr[@Name='{search}']/@Name" ,
2025-05-02 17:36:01 +09:00
"type" : "video" ,
2025-05-28 17:35:53 +09:00
"value" : "청량하고 시원한 폭포" ,
"search" : "청량하고 시원한 폭포" ,
2025-05-02 17:36:01 +09:00
"point" : 3
} ,
"6" : {
"ele" : "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102" ,
"ele2" : "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102" ,
2025-05-28 17:35:53 +09:00
"search" : "청량하고 시원한 폭포" ,
2025-05-02 17:36:01 +09:00
"type" : "video" ,
"value" : "돋움체" ,
"point" : 2
} ,
"7" : {
"ele" : "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101" ,
"ele2" : "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101" ,
2025-05-28 17:35:53 +09:00
"search" : "청량하고 시원한 폭포" ,
2025-05-02 17:36:01 +09:00
"type" : "video" ,
2025-05-28 17:35:53 +09:00
"value" : "120" ,
2025-05-02 17:36:01 +09:00
"point" : 2
} ,
"8" : {
"ele" : "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100" ,
"ele2" : "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100" ,
2025-05-28 17:35:53 +09:00
"search" : "청량하고 시원한 폭포" ,
2025-05-02 17:36:01 +09:00
"type" : "video" ,
2025-05-28 17:43:18 +09:00
"value" : "-937955" ,
2025-05-02 17:36:01 +09:00
"point" : 2
} ,
"9" : {
"ele" : "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID600' or name()='VID601']" ,
"ele2" : "//CRCUnitArr[@Name='{search}']/@*[name()='VID600' or name()='VID601']" ,
"type" : "video" ,
2025-05-28 17:35:53 +09:00
"search" : "청량하고 시원한 폭포" ,
2025-05-02 17:36:01 +09:00
"value" : [
2025-05-28 17:35:53 +09:00
0.27395833 ,
0.9222222
2025-05-02 17:36:01 +09:00
] ,
"point" : 2
} ,
"10" : {
2025-06-13 17:03:43 +09:00
"ele" : "{search}" ,
2025-05-28 17:35:53 +09:00
"search" : "청량하고 시원한 폭포" ,
2025-06-13 17:03:43 +09:00
"type" : "videoStartTime" ,
2025-05-28 17:43:18 +09:00
"value" : 170 ,
2025-05-02 17:36:01 +09:00
"point" : 2
} ,
"11" : {
2025-06-13 17:03:43 +09:00
"ele" : "{search}" ,
2025-05-28 17:35:53 +09:00
"search" : "청량하고 시원한 폭포" ,
2025-06-13 17:03:43 +09:00
"type" : "videoLength" ,
"value" : 150 ,
2025-05-02 17:36:01 +09:00
"point" : 2
} ,
"12" : {
"existEle" : "//CRClip[@Path='동영상.mp4']" ,
"ele" : "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='동영상.mp4']/preceding-sibling::*)]/@Mute" ,
"type" : "searchIndex" ,
"value" : "1" ,
"point" : 2
} ,
"13" : {
2025-05-28 17:35:53 +09:00
"existEle" : "//CRClip[@Path='{image}'] | //CRClip[@Type='11']/CRCUnitArr[@Path='{image}']" ,
"ele" : "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='{image}']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='{image}']/../preceding-sibling::CRClip)][1]/@Length" ,
"image" : "이미지2.jpg" ,
2025-05-02 17:36:01 +09:00
"type" : "searchIndex" ,
2025-05-28 17:35:53 +09:00
"value" : "150" ,
2025-05-02 17:36:01 +09:00
"point" : 2
} ,
"14" : {
"type" : "multi" ,
2025-05-28 17:35:53 +09:00
"ele" : "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='{image}']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='{image}']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID102']" ,
"image" : "이미지2.jpg" ,
2025-05-02 17:36:01 +09:00
"value" : [
2025-05-28 17:35:53 +09:00
"103" ,
"7"
2025-05-02 17:36:01 +09:00
] ,
"point" : 2
} ,
"15" : {
"type" : "multi" ,
2025-05-28 17:35:53 +09:00
"ele" : "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='{image}']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='{image}']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']" ,
"image" : "이미지2.jpg" ,
2025-05-02 17:36:01 +09:00
"value" : [
2025-05-28 17:43:18 +09:00
"11" ,
2025-05-28 17:35:53 +09:00
"500:530" ,
2025-05-02 17:36:01 +09:00
"2"
] ,
"point" : 2 ,
"desc" : "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
} ,
"16" : {
2025-05-28 17:35:53 +09:00
"existEle" : "//CRClip[@Path='{image}'] | //CRClip[@Type='11']/CRCUnitArr[@Path='{image}']" ,
"ele" : "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='{image}']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='{image}']/../preceding-sibling::CRClip)][1]/@Length" ,
"image" : "이미지3.jpg" ,
2025-05-02 17:36:01 +09:00
"type" : "searchIndex" ,
2025-05-28 17:35:53 +09:00
"value" : "150" ,
2025-05-02 17:36:01 +09:00
"point" : 2
} ,
"17" : {
"type" : "multi" ,
2025-05-28 17:35:53 +09:00
"ele" : "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='{image}']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='{image}']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID102']" ,
"image" : "이미지3.jpg" ,
2025-05-02 17:36:01 +09:00
"value" : [
2025-05-28 17:35:53 +09:00
"184" ,
"30"
2025-05-02 17:36:01 +09:00
] ,
"point" : 2
} ,
"18" : {
"type" : "multi" ,
2025-05-28 17:35:53 +09:00
"ele" : "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='{image}']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='{image}']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']" ,
"image" : "이미지3.jpg" ,
2025-05-02 17:36:01 +09:00
"value" : [
2025-05-28 17:35:53 +09:00
"19" ,
"650:680" ,
2025-05-02 17:36:01 +09:00
"2"
] ,
"point" : 2 ,
"desc" : "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
} ,
"19" : {
2025-05-28 17:35:53 +09:00
"existEle" : "//CRClip[@Path='{image}'] | //CRClip[@Type='11']/CRCUnitArr[@Path='{image}']" ,
"ele" : "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='{image}']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='{image}']/../preceding-sibling::CRClip)][1]/@Length" ,
"image" : "이미지1.jpg" ,
2025-05-02 17:36:01 +09:00
"type" : "searchIndex" ,
2025-05-28 17:35:53 +09:00
"value" : "180" ,
2025-05-02 17:36:01 +09:00
"point" : 2
} ,
"20" : {
"type" : "multi" ,
2025-05-28 17:35:53 +09:00
"ele" : "//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='{image}']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='{image}']/../preceding-sibling::CRClip)][1]//CRFilter/@*[name()='ID' or name()='VID102']" ,
"image" : "이미지1.jpg" ,
2025-05-02 17:36:01 +09:00
"value" : [
2025-05-28 17:35:53 +09:00
"67" ,
"30"
2025-05-02 17:36:01 +09:00
] ,
"point" : 2
} ,
"21" : {
"type" : "multi" ,
2025-05-28 17:35:53 +09:00
"ele" : "//CRTransFilter[@ClipIndex=count(//CRTrackList[@Name='비디오1']/CRTrackClip[@ClipIndex=count(//CRClip[@Path='{image}']/preceding-sibling::CRClip | //CRClip[@Type='11']/CRCUnitArr[@Path='{image}']/../preceding-sibling::CRClip)][1]/preceding-sibling::CRTrackClip)][@Type='2']/@*[name()='ID' or name()='Range' or name()='Type']" ,
"image" : "이미지1.jpg" ,
2025-05-02 17:36:01 +09:00
"value" : [
2025-05-28 17:35:53 +09:00
"10" ,
"800:860" ,
2025-05-02 17:36:01 +09:00
"2"
] ,
"point" : 2 ,
"desc" : "오버랩일 경우 XPATH구문에서 Type속성값 16으로 변경, 그리고 ClipIndex값은 트랜지션이 끝나는 지점 이미지의 ClipIndex값을 가지게 되어 다음 순서의 이미지로 변경해주어야한다."
} ,
"22" : {
"ele" : "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@Name" ,
2025-05-12 16:42:09 +09:00
"ele2" : "//CRCUnitArr[@Name='{search}']/@Name" ,
2025-05-02 17:36:01 +09:00
"type" : "opening" ,
2025-05-28 17:35:53 +09:00
"search" : "전통 공원 (Traditional Park)" ,
"value" : "전통 공원 (Traditional Park)" ,
2025-05-02 17:36:01 +09:00
"point" : 3
} ,
"23" : {
"ele" : "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID102" ,
"ele2" : "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID102" ,
2025-05-28 17:35:53 +09:00
"search" : "전통 공원 (Traditional Park)" ,
2025-05-02 17:36:01 +09:00
"type" : "opening" ,
"value" : "궁서체" ,
"point" : 2
} ,
"24" : {
"ele" : "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool[@Type='1']/GCUnit/@VID101" ,
"ele2" : "//CRCUnitArr[@Name='{search}']//GCUnitPool[@Type='1']/GCUnit/@VID101" ,
2025-05-28 17:35:53 +09:00
"search" : "전통 공원 (Traditional Park)" ,
2025-05-02 17:36:01 +09:00
"type" : "opening" ,
"value" : "140" ,
"point" : 2
} ,
"25" : {
"ele" : "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='4']/@VID100" ,
"ele2" : "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='4']/@VID100" ,
2025-05-28 17:35:53 +09:00
"search" : "전통 공원 (Traditional Park)" ,
2025-05-02 17:36:01 +09:00
"type" : "opening" ,
2025-05-28 17:35:53 +09:00
"value" : "-14592003" ,
2025-05-02 17:36:01 +09:00
"point" : 2
} ,
"26" : {
"ele" : "//CROwneUnit[{subtitleIndex}]/CRCUnitArr//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']" ,
"ele2" : "//CRCUnitArr[@Name='{search}']//GCUnitPool/GCUnit[@Type='2']/@*[name()='VID100' or name()='VID101']" ,
2025-05-28 17:35:53 +09:00
"search" : "전통 공원 (Traditional Park)" ,
2025-05-02 17:36:01 +09:00
"type" : "opening" ,
"value" : [
2025-05-28 17:35:53 +09:00
"0.30000001" ,
2025-05-02 17:36:01 +09:00
"-3868161"
] ,
"point" : 2
} ,
"27" : {
"ele" : "//CROwneUnit[{subtitleIndex}]/CRCUnitArr/@*[name()='VID505' or name()='VID507']" ,
"ele2" : "//CRCUnitArr[@Name='{search}']/@*[name()='VID505' or name()='VID507']" ,
2025-05-28 17:35:53 +09:00
"search" : "전통 공원 (Traditional Park)" ,
2025-05-02 17:36:01 +09:00
"type" : "opening" ,
"value" : [
2025-05-28 17:35:53 +09:00
"4" ,
2025-05-02 17:36:01 +09:00
"2"
] ,
"point" : 3
} ,
"28" : {
2025-06-13 17:03:43 +09:00
"ele" : "{search}" ,
2025-05-28 17:35:53 +09:00
"search" : "전통 공원 (Traditional Park)" ,
2025-06-13 17:03:43 +09:00
"type" : "openingStartTime" ,
2025-05-02 17:36:01 +09:00
"value" : 0 ,
2025-06-13 17:03:43 +09:00
"point" : 2 ,
"desc" : "오프닝자막의 시작시간 value 속성만 수정"
2025-05-02 17:36:01 +09:00
} ,
"29" : {
2025-06-13 17:03:43 +09:00
"ele" : "{search}" ,
2025-05-28 17:35:53 +09:00
"search" : "전통 공원 (Traditional Park)" ,
2025-06-13 17:03:43 +09:00
"type" : "openingLength" ,
"value" : 120 ,
2025-05-02 17:36:01 +09:00
"point" : 2
} ,
"30" : {
"ele" : "//CRTrackList[@Name='오디오1'][@Count>='1']/CRTrackClip[1][not(@ClipIndex='-1')]" ,
"point" : 2
} ,
"31" : {
2025-05-28 17:35:53 +09:00
"ele" : "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']/CRTrackClip[@Length='810']" ,
2025-05-02 17:36:01 +09:00
"point" : 2
} ,
"32" : {
2025-05-28 17:35:53 +09:00
"ele" : "//CRTrackArr/CRAudioTrackArr/CRTrackList[@Name='오디오1']//CRFilter[@Type='2'][@ID='1'][@VID8='90']" ,
2025-05-02 17:36:01 +09:00
"point" : 2
} ,
"33" : {
"ele" : "none" ,
"point" : 0 ,
"desc" : "파일명 확인"
}
} ,
"4" : {
"1" : {
"type" : "multi" ,
"ele" : "//Document/Width/@value | //Document/Height/@value" ,
"value" : [
"650" ,
"350"
] ,
"point" : 5 ,
"desc" : "캔버스 사이즈 650*350"
} ,
"2" : {
"ele" : "none" ,
"point" : 5 ,
"desc" : "자유 변형 문항은 채점 불가"
} ,
"3" : {
"type" : "isExist" ,
"ele" : "//Layer/Name/@value" ,
"value" : "Flower" ,
"point" : 5 ,
"desc" : "Flower 레이어가 있는지 여부 체크"
} ,
"4" : {
"type" : "multiValue" ,
2025-05-07 16:58:03 +09:00
"ele" : "//Layer[Name[@value='{layer}']]/Effects/Item[EffectData/{option}]/Name/@value | //Layer[Name[@value='{layer}']]/Effects/Item/EffectData/{option}/@value" ,
2025-05-02 17:36:01 +09:00
"layer" : "Flower" ,
"option" : "VibranceValue" ,
"value" : [
"39" ,
"생동감"
] ,
"point" : 5 ,
"desc" : "Flower 레이어의 효과 체크"
} ,
"5" : {
"ele" : "none" ,
"point" : 6 ,
"desc" : "올가미 도구/이미지 문항은 채점 불가"
} ,
"6" : {
"type" : "exists" ,
"ele" : "//Layer/Effects/Item/Name/@value" ,
"value" : "세피아" ,
"point" : 6 ,
"desc" : "세피아 효과가 있는지 여부 체크"
} ,
"7" : {
"type" : "exact" ,
"ele" : "//Layer/Shapes/Shape/shape_type/@value" ,
"value" : "ELLIPSE" ,
"point" : 3 ,
"desc" : "레이어 쉐이프 타입이 타원인지 체크"
} ,
"8" : {
"type" : "size" ,
"ele" : "//Layer//op_points" ,
"value" : {
2025-05-07 16:58:03 +09:00
"width" : 120 ,
"height" : 120
2025-05-02 17:36:01 +09:00
} ,
"point" : 3 ,
"desc" : "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
} ,
"9" : {
"type" : "color" ,
"ele" : "//Layer//Shape[contains(draw_type/@value, 'Interior')]/secondary_color/@value" ,
"value" : "7097bb" ,
"point" : 6 ,
"desc" : "색상 코드 비교 시 소문자로 입력할 것"
} ,
"10" : {
"type" : "multiValue" ,
"ele" : "//Layer/BlendOp/@value | //Layer/Opacity/@value" ,
"value" : [
"반사" ,
"80"
] ,
2025-05-12 16:42:09 +09:00
"point" : 6 ,
2025-05-02 17:36:01 +09:00
"desc" : "혼합모드(색 회피율, 불투명도 : 80)"
} ,
"11" : {
"ele" : "none" ,
"point" : 0 ,
"desc" : "기본설정"
} ,
"12" : {
"ele" : "none" ,
"point" : 0 ,
"desc" : "파일명 확인"
}
} ,
"5" : {
"1" : {
"type" : "multi" ,
"ele" : "//Document/Width/@value | //Document/Height/@value" ,
"value" : [
"650" ,
"450"
] ,
"point" : 5 ,
"desc" : "캔버스 사이즈 650*450"
} ,
"2" : {
"ele" : "none" ,
"point" : 5 ,
"desc" : "배경색 문항은 채점 불가"
} ,
"3" : {
"type" : "exists" ,
"ele" : "//Layer/MaskOpType/@value" ,
"value" : "Layering" ,
"point" : 6
} ,
"4" : {
"ele" : "none" ,
"point" : 6 ,
"desc" : "가로방향 흐릿하게 문항은 채점 불가"
} ,
"5" : {
"type" : "exists" ,
"ele" : "//Layer//shape_type/@value" ,
"value" : "ROUNDED_RECTANGLE" ,
"point" : 3
} ,
"6" : {
"type" : "size" ,
"ele" : "//Layer//op_points" ,
"value" : {
"width" : 400 ,
"height" : 60
} ,
"point" : 3 ,
"desc" : "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
} ,
"7" : {
"type" : "gradient" ,
"ele" : "//Layer/Shapes/Shape" ,
"startColor" : "gradient_start_color/@value" ,
"endColor" : "gradient_end_color/@value" ,
"value" : {
"startColor" : "ffe000" ,
"endColor" : "34a159"
} ,
"point" : 6
} ,
"8" : {
"type" : "exists" ,
"ele" : "//Layer//Shape[shape_type/@value='TEXT']/lines/Item/@value" ,
"value" : "흰 꽃 사이 노란 꽃" ,
"point" : 5
} ,
"9" : {
"type" : "exists" ,
"ele" : "//Layer//Shape[shape_type/@value='TEXT']/font/Name/@value" ,
"value" : "맑은 고딕" ,
"point" : 3
} ,
"10" : {
"type" : "exists" ,
"ele" : "//Layer//Shape[shape_type/@value='TEXT']/font/{style}/@value" ,
"style" : "Italic" ,
"value" : "True" ,
"point" : 3
} ,
"11" : {
"type" : "exists" ,
"ele" : "//Layer//Shape[shape_type/@value='TEXT']/font/Size/@value" ,
"value" : "30" ,
"point" : 3
} ,
"12" : {
"type" : "color" ,
"ele" : "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Interior')]/secondary_color/@value" ,
"value" : "b46ef8" ,
"point" : 3 ,
"desc" : "색상 코드 비교 시 소문자로 입력할 것"
} ,
"13" : {
"type" : "exists" ,
"ele" : "//Layer//Shape[shape_type/@value='TEXT']/outline_peninfo/Width/@value" ,
"value" : "7" ,
"point" : 3
} ,
"14" : {
"type" : "color" ,
"ele" : "//Layer//Shape[shape_type/@value='TEXT'][contains(draw_type/@value, 'Outline')]/primary_color/@value" ,
"value" : "ffffff" ,
"point" : 3 ,
"desc" : "색상 코드 비교 시 소문자로 입력할 것"
} ,
"15" : {
"ele" : "//Layer[MaskOpType/@value='Clipping'][last()]" ,
"point" : 6 ,
"desc" : "클리핑 마스크 항목은 별도 레이어로 추가되고 해당 속성을 추가해놓은 레이어가 있는지 여부 체크 함"
} ,
"16" : {
"type" : "exists" ,
"ele" : "//Layer/Shapes/Shape/shape_type/@value" ,
2025-05-07 16:58:03 +09:00
"value" : "RECTANGLE" ,
2025-05-02 17:36:01 +09:00
"point" : 3
} ,
"17" : {
"type" : "size" ,
"ele" : "//Layer//op_points" ,
"value" : {
"width" : 150 ,
"height" : 150
} ,
"point" : 3 ,
"desc" : "레이어 쉐이프 X, Y 좌표를 가지고 너비, 높이 계산하여 정답 채점"
} ,
"18" : {
"type" : "exists" ,
"ele" : "//Layer//outline_peninfo/Width/@value" ,
"value" : "7" ,
"point" : 3
} ,
"19" : {
"type" : "color" ,
"ele" : "//Layer//Shape[contains(draw_type/@value, 'Outline')]/primary_color/@value" ,
"value" : "e8e88e" ,
"point" : 3 ,
"desc" : "색상 코드 비교 시 소문자로 입력할 것(채우기:secondary_color, 외곽선:primary_color)"
} ,
"20" : {
"type" : "shadow" ,
"ele" : {
"shadow" : "//Layer//Shape[contains(draw_type/@value, 'Shadow')]" ,
"width" : "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_width/@value" ,
"distance" : "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_distance/@value" ,
"blur" : "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_blur/@value" ,
"angle" : "//Layer//Shape[contains(draw_type/@value, 'Shadow')]/shadow_angle/@value"
} ,
"value" : {
"width" : "3" ,
"distance" : "5" ,
"blur" : "1" ,
"angle" : "320"
} ,
"point" : 5 ,
"desc" : "그림자 속성이 있는 경우 그림자 속성의 너비, 거리, 흐림 정도, 각도를 비교하여 정답 채점"
} ,
"21" : {
"ele" : "none" ,
"point" : 0 ,
"desc" : "기본설정"
} ,
"22" : {
"ele" : "none" ,
"point" : 0 ,
"desc" : "파일명 확인"
}
}
}