心若改變,則態(tài)度改變;態(tài)度改變,則習(xí)慣改變;習(xí)慣改變,則人生改變
1、場(chǎng)景設(shè)計(jì):動(dòng)畫場(chǎng)景設(shè)計(jì)包括哪些?影視動(dòng)畫場(chǎng)景設(shè)計(jì)就是指動(dòng)畫影片中除角色造型以外的隨著時(shí)間改變而變化的一切物的造型設(shè)計(jì)。場(chǎng)景就是隨著故事的展開,圍繞在角色周圍,與角色發(fā)生關(guān)系的所有景物,即角色所處的生活場(chǎng)所、陳設(shè)道具、社會(huì)環(huán)境、自然環(huán)境以及歷史環(huán)境,甚至包括作為社會(huì)背景出現(xiàn)的群眾角色。都是場(chǎng)景設(shè)計(jì)的范圍。 場(chǎng)景一般分為內(nèi)景、外景、和內(nèi)外結(jié)合景。 影視動(dòng)畫場(chǎng)景設(shè)計(jì)-場(chǎng)景設(shè)計(jì)要完成的常規(guī)的設(shè)計(jì)圖包括:場(chǎng)景效果圖(或稱氣氛?qǐng)D),場(chǎng)景平面圖、立面圖,場(chǎng)景細(xì)部圖,場(chǎng)景結(jié)構(gòu)鳥瞰圖。 2、場(chǎng)景設(shè)計(jì):動(dòng)畫場(chǎng)景設(shè)計(jì)風(fēng)格類型有哪些呢想要系統(tǒng)的學(xué)習(xí)可以考慮報(bào)一個(gè)網(wǎng)絡(luò)直播課,推薦CGWANG的網(wǎng)絡(luò)課。老師講得細(xì),上完還可以回看,還有同類型錄播課可以免費(fèi)學(xué)(贈(zèng)送終身VIP)。 自制能力相對(duì)較弱的話,建議還是去好點(diǎn)的培訓(xùn)機(jī)構(gòu),實(shí)力和規(guī)模在國內(nèi)排名前幾的大機(jī)構(gòu),推薦行業(yè)龍頭:王氏教育。 王氏教育全國直營校區(qū)面授課程試聽[復(fù)制后面鏈接在瀏覽器也可打開]: 在“動(dòng)畫制作技術(shù)”領(lǐng)域的培訓(xùn)機(jī)構(gòu)里,[王氏教育]是國內(nèi)的老大,且沒有加盟分校,都是總部直營的連鎖校區(qū)。跟很多其它同類型大機(jī)構(gòu)不一樣的是:王氏教育每個(gè)校區(qū)都是實(shí)體面授,老師是手把手教,而且有專門的班主任從早盯到晚,爆肝式的學(xué)習(xí)模式,提升會(huì)很快,特別適合基礎(chǔ)差的學(xué)生。 大家可以先把[繪學(xué)霸]APP下載到自己手機(jī),方便碎片時(shí)間學(xué)習(xí)——繪學(xué)霸APP下載: 3、場(chǎng)景設(shè)計(jì):如何設(shè)計(jì)場(chǎng)景?房間是構(gòu)成這整個(gè)世界的要素之一,在此我們提供了一個(gè)房間的標(biāo)準(zhǔn)物件來讓所有的房間繼承。而如同其他的物件一般,你需要寫一個(gè)create()來設(shè)定房間中的敘述、出口、物品、生物等等。這里,我喜歡說你用create()這個(gè)函式來賦予這個(gè)房間的屬性。一般來說,要建造一個(gè)簡(jiǎn)單的房間,你只要賦予它基本的屬性即可。當(dāng)然,我們不認(rèn)為一個(gè)區(qū)域中幾十個(gè)房間沒有任何的機(jī)關(guān)或秘密,是個(gè)會(huì)吸引玩家一游的好地方。 下面,提到了一些建造房間所需要留意的事項(xiàng),也會(huì)配合一些例子來說明。 一、基本篇 一個(gè)基本的房間,要有short<短敘述>、long<長(zhǎng)敘述>、exits<出口> 1.當(dāng)你在寫一個(gè)房間的long<長(zhǎng)敘述>時(shí),其格式為: set("long",@LONG 房間的敘述....... LONG其中@LONG和LONG是互相對(duì)應(yīng)的,你可以用任何字接在@后面,但是前后兩個(gè)字一定要一樣,這樣系統(tǒng)才能判別,而房間的敘述寫完時(shí),一定要換行后再接第二個(gè)LONG,且同一行不能再有其他任何的字元,不然系統(tǒng)無法判定敘述是否該結(jié)束了,會(huì)造成編譯時(shí)的錯(cuò)誤。 而為求區(qū)域看起來外觀上整齊、統(tǒng)一,房間的長(zhǎng)敘述中每一行的長(zhǎng)度必須一樣,而一行的長(zhǎng)度建議為29到32個(gè)中文字,約占螢?zāi)坏娜种。并且一個(gè)房間的敘述**不要低於三行,區(qū)域各個(gè)房間的敘述重復(fù)性降到越低越好,這樣你的區(qū)域看起來才不會(huì)太過陽春。當(dāng)然,有時(shí)候?yàn)榱四承┠康模热缫粋(gè)迷宮,你可能會(huì)相鄰的幾個(gè)房間都用到一樣的敘述,那自然不在此限。 2.一個(gè)房間的出口則以下列格式賦予: set("exits",([ "方向":"連接到的房間之檔名", ...........在這里,為了一個(gè)以后區(qū)域開放后搬移目錄的便利性,建議采用__DIR__這個(gè)由系統(tǒng)提供的巨集來寫路徑,比如說: "west":__DIR__"path3","west":"/u/d/davidoff/goathill/path3", 是完全一樣的。但前者顯然在以后目錄的搬移上方便的多。而在下面會(huì)提到設(shè)定房間中的物品或生物時(shí),也建議采用這種方式寫作。 3.item_desc這是用來設(shè)定個(gè)別景物的描述,當(dāng)玩家用look這個(gè)指令時(shí)就會(huì)作用。其格式為: set("item_desc",([ "景物名稱":"景物敘述", ...........其中景物敘述可以是字串或是一個(gè)function,所以你可以利用這個(gè)功能加以變化,當(dāng)玩家look一個(gè)景物時(shí),可能看到敘述,也可能發(fā)生一些特殊的事件,而你就可以在被呼叫的函式中寫下這些事件。 · · 關(guān)注微信公眾號(hào):挪車小黃碼 · 官方免費(fèi)領(lǐng)。号曹嚧a,車主雙方虛擬號(hào)碼,隱私保護(hù),拒絕騷擾,違章查詢,免費(fèi)使用!--挪車電話 官網(wǎng):https://www.nuoche.cc/ · · 4.objects可以讓這個(gè)房間在每次reset時(shí)載入某些生物或某些物品: set("objects",([ "物品或生物的檔名":數(shù)量, ...........如同前面所提到的,建議采用__DIR__來編寫你的路徑,而數(shù)量則要用整數(shù)。 5.要為這個(gè)房間添上門戶時(shí),記得前面必須先#include。而格式為: create_door("出口方向","門的名稱","進(jìn)入方向",預(yù)設(shè)狀態(tài)); 比如說,這里明顯的出口有west、east和up。而你要讓西邊有一個(gè)關(guān)上的紅木門,你可以這樣寫: create_door("west","紅木門","east",DOOR_CLOSED); 當(dāng)玩家進(jìn)入這個(gè)房間時(shí),他會(huì)看到:這里明顯的出口有east和up。 而當(dāng)他lookwest時(shí),會(huì)看到:這個(gè)紅木門是關(guān)上的。 其他的一些屬性,你可以參考/doc/build/room_prop或是讀一下標(biāo)準(zhǔn)物件的room.c。也建議你可以多用morehere來觀看一間特殊的room。 二、進(jìn)階篇 要讓你的區(qū)域中富有變化,生動(dòng)有趣,除了文字?jǐn)⑹龅呢S富度以外,你更可以利用init()這個(gè)函式為你的房間增加一些「機(jī)關(guān)」或「秘密」。 這里,先讓我們了解一下init()的用途為何,和為什麼要用到它。每一個(gè)房間的create()只有當(dāng)reset時(shí)才會(huì)被呼叫到,而init()則是在B物件進(jìn)入到A物件時(shí)都會(huì)呼叫到A物件的init()?吹竭@,你應(yīng)該可以看出差別了,我們希望當(dāng)一個(gè)物件(此處較多是玩家)進(jìn)到一個(gè)房間時(shí),能夠經(jīng)由某個(gè)動(dòng)作啟動(dòng)這個(gè)房間的機(jī)關(guān)的話,自然是利用init()來編寫。 一般的使用方式,是在init()中利用add_action()來呼叫你寫的函式,其格式為: add_action("functiontype","action"); functiontype即是被呼叫的函式名action是啟動(dòng)的動(dòng)作 而你就可以將被action啟動(dòng)后要發(fā)生的事,都寫在被呼叫的函式里面。理論上來說,利用這個(gè)方式我們可以做到任何事,當(dāng)然,能不能達(dá)成就看寫程式的功力了。下面舉個(gè)簡(jiǎn)單的例子: voidinit()add_action("do_pick","pick");intdo_pick(stringarg)objectme; me=this_player(); if(!arg||(arg!="flower"))returnnotify_fail("你要摘什麼?\n"); elseif(random((int)me->query("kar"))<7) message_vision("$N將花摘了下來,但一不小心被刺了一下。\n",me); elsemessage_vision("$N摘下一朵美麗的血紅色鮮花。\n",me); return1;當(dāng)玩家利用pick這個(gè)指令時(shí)就會(huì)呼叫到do_pick()這個(gè)function,而啟動(dòng)了這個(gè)房間的機(jī)關(guān)。 這里特別提到一點(diǎn),一個(gè)簡(jiǎn)單的room我們?yōu)榱耸褂洃涹w的使用量降到**,會(huì)在create()**加上一行replace_program(ROOM);。這是因?yàn)樵诜块g的標(biāo)準(zhǔn)物件中有定義了如init()等其他的函式,而一個(gè)簡(jiǎn)單的房間根本沒有用到,所以我們用replace_program()來將原本的被繼承的標(biāo)準(zhǔn)物件「重置」(或說取代)掉,但是一旦房間中用到了init()來編寫時(shí),就**不可以用replace_program(),因?yàn)橄到y(tǒng)屆時(shí)找不到init()便會(huì)隨便呼叫一個(gè)記憶體中的位址而隨便傳進(jìn)一些亂七八糟的東西,情況嚴(yán)重時(shí),甚至可以讓整個(gè)mudcrash。但是,我們自不可因噎廢食,該用的時(shí)候還是要用,這些應(yīng)該是一個(gè)好的程式寫作人員自己必須留意的,發(fā)生狀況要自己負(fù)責(zé)。 三、建議 如果你玩過mud的話,應(yīng)該對(duì)mud組成一個(gè)世界的方式相當(dāng)熟悉,沒錯(cuò),我們就是用一個(gè)個(gè)的房間(room)來構(gòu)成這個(gè)虛擬的世界,這里我們稱「房間」只是傳統(tǒng)的mud的稱呼,因?yàn)樵缙诘膍ud全名是Multi-UserDungeon,Dungeon就是「地牢」的意思,因此用房間來稱呼地牢的最小單位而沿用至今。 當(dāng)然,我們現(xiàn)在的mud早已脫離地牢的時(shí)代,而是一個(gè)沒有限制的創(chuàng)作空間,如何將你想像中的人、事、地規(guī)劃成以房間為單位的舞臺(tái),就看你的經(jīng)驗(yàn)和功力了,通常mud并不硬性規(guī)定一個(gè)房間跟另一個(gè)房間的距離、位置等關(guān)系,而是根據(jù)實(shí)際需要而決定房間的連結(jié)方式。不可否認(rèn)的,大多數(shù)巫師在從事區(qū)域的創(chuàng)作時(shí)都會(huì)或多或少加上距離跟位置的考量,但是在此仍然要提醒一下,為了位置跟距離的關(guān)系而制作的房間是不具意義的。 建造房間,首先你必須先自己規(guī)劃一個(gè)「區(qū)域」的構(gòu)想,我們通常把一個(gè)村莊、洞穴、城鎮(zhèn)等地理上能夠明確區(qū)隔其范圍的單位稱為一個(gè)區(qū)域(area),理想的區(qū)域設(shè)計(jì),是將所有該區(qū)域用到的程式放在同一個(gè)目錄,并且和其**路徑無關(guān),可以隨時(shí)掛上或搬移到其他的目錄下,因?yàn)閰^(qū)域是一個(gè)獨(dú)立的地理單位,具有一致的風(fēng)格跟設(shè)定,對(duì)于大多數(shù)mud的管理者而言都希望萬一因?yàn)閰^(qū)域的擴(kuò)展而有需要移動(dòng)或整理現(xiàn)有區(qū)域時(shí),能不必一個(gè)個(gè)地去修改檔案,能夠配合管理者要求的巫師,自然就會(huì)受到歡迎。 當(dāng)你有了構(gòu)想之后,相信很多巫師會(huì)用「畫地圖」當(dāng)成第二步,根據(jù)我的觀察,一個(gè)用這種方法寫出來的區(qū)域通常會(huì)有太多不必要的房間,因?yàn)楫嫷貓D時(shí)往往會(huì)不自覺地將房間想像成「具有相同面積的方塊」,因而大量增加了房間的個(gè)數(shù),你如果不信,可以試著比較接下來我所建議的方法,看看哪一種方**有比較多的房間。 我所建議的方法是「身歷其境」的創(chuàng)作方式,當(dāng)你構(gòu)想好一個(gè)區(qū)域大致的內(nèi)容之后,可以先寫出這個(gè)區(qū)域的入口,想像你是**個(gè)「發(fā)現(xiàn)」這個(gè)地方的探險(xiǎn)者,然后跟著你的想像力所至,開一個(gè)出口到下一個(gè)房間,繼續(xù)探險(xiǎn),千萬要注意的是: 不要畫地圖,甚至想像中也不要用「空中俯瞰」區(qū)域的方式去設(shè)計(jì)你的區(qū)域,因?yàn)橐粋(gè)探險(xiǎn)者是很難有機(jī)會(huì)俯瞰他發(fā)現(xiàn)的區(qū)域的,mud在空間概念上較傾向于冒險(xiǎn)游戲而非角色扮演/模擬游戲。 寫完一個(gè)房間的敘述再寫下一個(gè),不要用roommaker造出空房間之后就急著連接出口到下一個(gè)房間,因?yàn)檫@樣到**往往你會(huì)需要苦思半天才能想出一些無聊的敘述填滿你用roommaker造出來的一堆多余房間,當(dāng)你發(fā)現(xiàn)不知道要在一個(gè)房間的敘述里寫什么的時(shí)候,就表示這個(gè)房間其實(shí)是多余的。 讓你的想像力引導(dǎo)你的創(chuàng)造力,不要因?yàn)橛X得一座城堡「應(yīng)該」有四座塔樓,而寫出你的故事中根本不必出現(xiàn)的場(chǎng)景,或者是因?yàn)橐粭l長(zhǎng)廊「應(yīng)該」比國王的大廳長(zhǎng)很多而用五、六個(gè)房間來「堆砌」這樣的場(chǎng)景,要記得每間房間的存在都需要耗費(fèi)電腦的一些資源去儲(chǔ)存,浪費(fèi)太多的資源在無意義的場(chǎng)景上將使你的區(qū)域在難以過關(guān)。 適當(dāng)?shù)厥褂谩竸?dòng)作」連接你的場(chǎng)景,例如有一棵樹可以爬上去,你可能開一個(gè)up的出口直接連到樹上的房間,這時(shí)候如果花點(diǎn)心思,讓使用者必須從環(huán)境的敘述中發(fā)現(xiàn)提示,如樹旁消失的腳印,樹皮新近剝落的痕跡等引導(dǎo)玩家發(fā)現(xiàn)一個(gè)climb的動(dòng)作,不是能使你的區(qū)域更有內(nèi)容嗎? 不過要提醒一些懶惰的新巫師,就是像這樣code片段不要直接從一些范例中「拷貝」下來,修改一下文字字串就到處適用,如何設(shè)計(jì)一個(gè)有趣的「動(dòng)作」將是你成為有實(shí)力的巫師**的鍛練方式。 |