鮑通


一般來說,線性思維有助于深入思考,探究事物的本質,側重于“目的”;非線性思維有助于拓展思路,理清事物的普遍聯系,側重于“過程”。二者并舉,至于如何調控,不同的人有不同的看法。對于非線性思維的特征而言,哪怕初始條件有一個很小的變化,都有可能造成結果的巨大改變。目前,非線性思維對創新教育的影響日益凸顯,如STEM研究性學習、非線性寫作等。下面,筆者將以兒童歌曲《讓我們蕩起雙槳》為例進行實踐探究。
● 戴上耳機找靈感
1.實施方法——體現主題的音樂文本
對于《讓我們蕩起雙槳》這首歌,很多學生都已經熟悉了,閑暇時光,讓學生帶上耳機再次聆聽美妙的音符。伴隨著動聽的歌聲,學生可以成為“項目發起人”,在歌詞和旋律中捕獲靈感,并將音樂中的意境和感悟分享給其他同學或者合作伙伴,引起情感共鳴,進而提高參與者的積極性、激發團隊活力,學生在聽歌的同時即可構思如何用編程動畫來呈現腦海里的某一段景象。
2.策略意圖——目標靈活化
歌詞最重要的是意境,而意境最重要的是表達。“蕩起雙槳”“小船飄蕩”“海面倒映白塔”“水中魚兒望著我們”等,這些帶有動作色彩的內容都可以用可視化編程腳本搭配多種素材實現動畫效果。因為對于歌詞而言,不同的人有不同的想象,所以表達出來的動畫效果自然也就不盡相同,學生對學習內容的選擇應該具有靈活性和隨意性。例如,非靈活的目標:為了有教養而讀書;靈活的目標則是為了有教養,每周讀一本書。編程同理。非靈活的目標是為了MV更有趣,請大家一起來創作;靈活的目標則是為了MV更有趣,請你選擇一兩句自己喜歡的歌詞進行創作。靈活性目標是具體的、可操作的,并且劃分了一定的層次,這樣按階段實現起來就會比較輕松一些。
● 拿起畫筆繪思維
1.實施方法——呈現結構的思維導圖
為了梳理創作思路,使項目中涉及的知識體系化,“項目發起人”可以通過思維導圖表達思維過程,將與主題相關的各層面繪制出來(也可多人一起參與)。
第一層:主題,最能表達中心思想的語句,一般為歌曲的名稱,即“讓我們蕩起雙槳”。
第二層:分析歌詞的內容,結合動畫創作的可行性,將歌詞拆分再進行重組。通常情況下相鄰的兩句歌詞為一個單元,分配一組鏡頭,如A組鏡頭、B組鏡頭、C組鏡頭等,然后作為分支與主題相連(如下頁圖1)。
第三層:為每組鏡頭(每組歌詞)尋找關鍵詞,篩選出最能表達歌詞內容的詞語,如雙槳、小船、波浪、海面、白塔等,作為該鏡頭組中的主要元素與上一級相連。
第四層:為每組鏡頭分配素材,確定鏡頭組中的場景以及該場景下的若干角色。一般歌詞中的關鍵詞即為角色。素材主要包括圖片、文字以及音效等。
再往下分層就是更加細致的構思了,如“小船兒推開波浪”中的“推開”動作如何實現,或者雙槳如何“蕩起”等。另外,如果要求歌詞與動畫同步,那么每組鏡頭的時間分配也是一個重要因素。初創不建議太復雜,隨性自由一些為好,負責該組鏡頭的學生可根據實際情況決定是否還需延伸。
2.策略意圖——任務分層化
圖文并茂、形式多樣的思維導圖將歌詞劃分為多個層次,具體化了源自音樂的創作靈感,也相當于將一個大的任務分割成了若干個子任務。所以,為了避免“牽一發動全身”的水波效應,鏡頭組之間要盡量減少聯系,即一個鏡頭組動畫盡量減少與另一個鏡頭組動畫的關聯,以此降低耦合度。但對于一個鏡頭組本身而言,內部各元素之間的聯系反而要緊密,提高內聚度,確保一個分支動畫的連貫性和完整性。任務分層化,消除了任務之間明顯的分支判斷,加強了任務內部零散的邏輯關系,它以“高內聚,低耦合”為原則,確保項目設計的清晰合理,也為下一步“程序模塊化”奠定基礎。
● 敲擊鍵盤編智慧
1.實施方法——實現鏡頭的腳本搭建
第一步:定義本項目中的命名規則。如果是多人合作,那么這一步非常重要。
鏡頭組別:建議以圖1的思維導圖為準,也可自定義(如:A,B,C …)。
場景:鏡頭組別-C編號(如A組鏡頭場景:A-C01,A-C02,A-C03 …)。
角色:鏡頭組別-J編號(如B組鏡頭角色:B-J01,B-J02,B-J03 …)。
第二步:制訂程序框架及流程示意,全程以“場景切換”為觸發點展開。程序中的詞語解釋及流程簡述如下。
函數:定義鏡頭組編號,即組別(可視為接口)。
清場:將所有角色的屬性回歸初始化狀態。
開機:調用第一個場景,緊跟著是演示該場景下的角色動作,完畢后清場(需要注意的是,如果該場景下有多個角色陸續或者同時出現,如魚兒游、鳥兒飛,則可以采取并行的方式實現,然后將清場安排在最遲完成的動作之后。此處,時間差的計算是關鍵,必要時也可另設廣播。下頁圖2中省略了多角色在同一場景中互動或并行的情況)。
第一個場景結束后(動畫結束+清場完畢),如果還有下一個場景,則進行跳轉,且演示下一個場景中的角色動作,完畢后清場;如果沒有下一個場景,則“關機”,結束本組鏡頭。
關機:在分組鏡頭中作為一個“預留”功能,為最后串聯多組鏡頭的工作做鋪墊。
第三步:完成一組鏡頭的制作后,導出場景和角色。
主程序寫在舞臺場景里,子程序寫在各個角色里,完成及測試順暢后均要做“導出”操作。其中,場景導出后僅為圖片,文件的后綴名為svg或png;角色導出后則將攜帶已有程序,文件的后綴名為sprite3。
2.策略意圖——程序模塊化
模塊化設計,并非直接寫出計算機程序,而是通過主程序調用子程序或子過程的形式搭建一個框架結構,即通過函數調用實現一系列聯動機制。這樣的設計不僅讓各部分程序變得簡明直觀,還可將經常用到的功能編寫成通用函數以提高執行效率。一個好的抽象必須能表達出“是什么”或者“做什么”,而盡量隱藏“怎么做”,如下頁圖2所示,將一個鏡頭組內部繁雜的業務邏輯,最終封裝成為一個函數接口,便于主程序調用。此處需說明:Scratch函數目前沒有返回值功能,所以借助一條“關機”消息來標識一個鏡頭組的結束。變量也可以實現,只是于分支中使用會因增加一條命名規則而帶來不必要的麻煩。
● 拉開幕布展創意
1.實施方法——展現動畫的鏡頭組合
第一步:新建一個可視化編程空白文檔,命名為“總鏡頭”,即《讓我們蕩起雙槳》這首歌的可視化編程動畫總鏡頭。
第二步:在舞臺場景中定義函數,如圖3所示,函數中的具體流程與分支鏡頭相吻合。
第三步:導入各個鏡頭組的場景和角色,并完成主程序調用。通過主程序將各個鏡頭組串聯,就實現了類似酷狗音樂中“串串動畫”的效果。需要注意的是,程序中需要捕獲“關機”消息,通過標識變量來控制分支鏡頭依次調用。總鏡頭的表演時長(動畫時長)以整首歌曲播放的時間為準,該規則僅在主程序中設定即可。
至此,歌曲動畫基本已經實現了對各個分支鏡頭組的自由搭配,其次序靈活,且任意修改或刪減其中的鏡頭不會影響整體的運行狀態,即稱之為滿足于用戶多樣化的體驗需求,進而說明,這種多人參與的模式可行。當然,對于程序中難免出現的一些問題,還需創作團隊利用一些常見的測試方法,通過異常處理機制及時加以解決。綜上所述,整個制作過程和運行模式呈非線性特點,具體功能實現和效果預覽呈線性特點,二者并舉,相互依存又相互促進。
2.策略意圖——成果多樣化
本文的方法是圍繞一首歌進行創作,既要緊扣歌曲的主題特色,又要符合歌詞的內容大意,這仍然帶有“局限性”。其實,學生還可以在完全脫離歌詞大意的情況下,隨性設計一些有趣的小動畫,然后對其進行分類,如生活類、喜劇類、冒險類、科幻類等,最終可選取與歌曲主題相接近的幾段拼搭起來作為這首歌的MV,當然,如果選取與主題毫不相關的,甚至完全將歌曲換成詩歌朗誦,也許會另有一番滋味。另外,還可以考慮附加一個統計功能(或借助第三方工具),顯示出哪些鏡頭被調用的次數較多,公布一份“熱播排行榜”,評選出一批“優秀設計師”,展才華無窮、示創意無限,充分調動更多學生的好奇心和積極性,讓編程成為學生們休閑娛樂的主陣地。
● 結束語
今后,隨著社會的發展和科技的進步,當思維與環境不對稱的時候,還需靈活調控兩種思維方式的平衡,一方面去發現研究過程的非線性特點,一方面用線性的方式去應對。這樣的經歷才能讓學生更好地理解和應用科學知識,掌握科學研究方法,更為深入地理解科技的本質,也能更好地面對生活中的實際問題。