관련 지식인

 

위와 같은 애니메이션을 만드는 것입니다.

특히 파워포인트는 애니메이션 최대 길이가 59초인데 

이것을 극복하는 방법입니다.

 

 

애니메이션 최대 길이가 59초이기 때문에 1분길이라면 30초+30초 애니메이션을 이어서 재생하게 해야겠습니다.

막대에 강조효과로는 흐릿하게 나타나기 때문에 이동효과를 이용하되 왼쪽에 가려주는 흰색 도형(Bar1_Left)를 배치합니다.

막대바가 화면중간까지 이동하도록 하고 시계도형도 함께 이동하도록 합니다.

그 다음 화면 중간에 이르렀을 때 Clock1이 사라지고 (Bar1은 그대로 유지하고) Clock2와 Bar2가 나타나서 오른쪽으로 이동하도록 합니다.

실행 화면

 

 

또 다른 방법은 그냥 조그마한 네모 도형이 1초마다 차례로 계속 나타나게 하는 것도 괜찮겠습니다.

일반 애니메이션으로 해도 되지만 오디오 책갈피를 이용하면 장점이 많습니다.

무음 오디오와 북마크 트리거를 이용한 방법입니다.

1. 60초짜리 무음 오디오를 삽입하고 재생하게 한 다음

2. 1초마다 책갈피를 추가하고

3. 각 책갈피마다 타이머 바에 해당하는 네모 도형이 차례로 나타나게 애니메이션 트리거를 추가 합니다.

 

 

위 과정은 손이 많이 가기 때문에 VBA를 이용해서 자동화하면 좋습니다.

다음은 현재 선택한 오디오 도형에 북마크를 자동으로 추가하고

각 북마크에 네모 도형이 차례로 나타나는 트리거를 자동으로 추가하는 VBA코드입니다.

(Alt-F11 코드창에서 삽입-> 모듈을 추가하고 아래 코드를 붙여 넣고 코드 창을 닫고 일반 화면에서 Alt-F8로 실행)

addAudioBookmark 는 현재 스피커 도형에 원하는 만큼의 책갈피(북마크)를 추가하는 명령입니다.

addBookmarkTrigger는 각 북마크마다 네모도형(Box_1...Box_60)이 나타나는 애니메이션트리거를 추가하는 명령입니다.

 

더보기
Const TimerCount As Integer = 60

'오디오에 미디어 북마크를 자동으로 추가
Sub addAudioBookmark()

    Dim sld As Slide
    Dim shp As Shape
    Dim eft As Effect
    Dim mbk As MediaBookmark
    
    Dim i As Long
    
    Set sld = ActiveWindow.View.Slide
    
    'Set shp = sld.Shapes("silence1")
    On Error Resume Next
    Set shp = ActiveWindow.Selection.ShapeRange(1)
    If shp Is Nothing Then MsgBox "오디오를 선택하세요.": Exit Sub
    On Error GoTo 0
    
    If Not shp.Type = msoMedia Then MsgBox "오디오를 선택하세요.": Exit Sub
    
    '기존 북마크 제거
    For i = shp.MediaFormat.MediaBookmarks.Count To 1 Step -1
        shp.MediaFormat.MediaBookmarks.Item(i).Delete
    Next i
    '북마크 일괄 추가
    For i = 1 To TimerCount
        Set mbk = shp.MediaFormat.MediaBookmarks.Add(1000 * (i - 1), "Bookmark" & i)
    Next i
    
    
    
End Sub


'오디오북마크에 애니메이션 트리거 추가
Sub addBookmarkTrigger()

    Dim sld As Slide
    Dim shp As Shape, shpM As Shape
    Dim eft As Effect
    Dim i As Long
    
    Set sld = ActiveWindow.View.Slide
    Set shpM = sld.Shapes("silence")
    
    '기존 애니메이션 효과 모두 삭제
    For i = sld.TimeLine.MainSequence.Count To 1 Step -1
        If sld.TimeLine.MainSequence.Item(i).Shape.Name Like "Box_*" Then _
            sld.TimeLine.MainSequence.Item(i).Delete
    Next i
    For i = sld.TimeLine.InteractiveSequences.Count To 1 Step -1
        For j = sld.TimeLine.InteractiveSequences(i).Count To 1 Step -1
            If sld.TimeLine.InteractiveSequences(i).Item(j).Shape.Name Like "Box_*" Then _
                sld.TimeLine.InteractiveSequences(i).Item(j).Delete
        Next j
    Next i
    
    '새로 추가
    For i = 1 To TimerCount
        
        Set shp = sld.Shapes("Box_" & i)
        Set eft = sld.TimeLine.InteractiveSequences.Add.AddTriggerEffect(pShape:=shp, effectId:=msoAnimEffectAppear, _
            Trigger:=msoAnimTriggerOnMediaBookmark, pTriggerShape:=shpM, bookmark:="Bookmark" & i)

             'Trigger:=msoAnimTriggerOnPageClick)
    Next i

End Sub

 

간단한 실행 영상입니다.

 

 

 

오디오 북마크를 이용한 애니메이션은 무한 반복 시킬 수가 있는 장점이 있습니다.

오디오를 슬라이드가 끝날 때까지 반복이 가능하기 때문입니다.

오디오는 무한 반복하고 반복할 때 마다 책갈피 위치의 애니메이션은 계속 실행하기 때문에 특정 애니메이션시퀀스를 무한반복시킬 때 유용합니다.

두 가지 방법에 대한 테스트 파일 첨부합니다.

 

 

TimeBar1.pptm
0.18MB