PageSourceSearch

http://designhub.top/

html designhub.top collected 2026-09-28 05:07:14 UTC 105,251 bytes, 1,099 lines download raw bytes

1<!DOCTYPE html>
2<html lang="zh-CN" data-dir="ltr" style="direction: ltr;">
3<head>
4	<title>主页 | Design Hub</title>
5	<meta name="viewport" content="width&#x3D;device-width, initial-scale&#x3D;1.0" />
6	<meta name="content-type" content="text/html; charset=UTF-8" />
7	<meta name="apple-mobile-web-app-capable" content="yes" />
8	<meta name="mobile-web-app-capable" content="yes" />
9	<meta property="og:site_name" content="Design Hub" />
10	<meta name="msapplication-badge" content="frequency=30; polling-uri=http://designhub.top/sitemap.xml" />
11	<meta name="theme-color" content="#ffffff" />
12	<meta name="title" content="Design Hub" />
13	<meta property="og:type" content="website" />
14	<meta property="og:image" content="http://designhub.top/assets/images/[email protected]" />
15	<meta property="og:image:url" content="http://designhub.top/assets/images/[email protected]" />
16	<meta property="og:image:width" content="963" />
17	<meta property="og:image:height" content="225" />
18	<meta property="og:title" content="Design Hub" />
19	<meta property="og:url" content="http://designhub.top" />
20	
21	<link rel="stylesheet" type="text/css" href="/assets/client.css?v=6c6ptbk3u1t" />
22	<link rel="icon" type="image/x-icon" href="/assets/uploads/system/favicon.ico?v&#x3D;6c6ptbk3u1t" />
23	<link rel="manifest" href="/manifest.webmanifest" crossorigin="use-credentials" />
24	<link rel="search" type="application/opensearchdescription+xml" title="Design Hub" href="/osd.xml" />
25	<link rel="apple-touch-icon" href="/assets/images/touch/512.png" />
26	<link rel="icon" sizes="36x36" href="/assets/images/touch/36.png" />
27	<link rel="icon" sizes="48x48" href="/assets/images/touch/48.png" />
28	<link rel="icon" sizes="72x72" href="/assets/images/touch/72.png" />
29	<link rel="icon" sizes="96x96" href="/assets/images/touch/96.png" />
30	<link rel="icon" sizes="144x144" href="/assets/images/touch/144.png" />
31	<link rel="icon" sizes="192x192" href="/assets/images/touch/192.png" />
32	<link rel="icon" sizes="512x512" href="/assets/images/touch/512.png" />
33	<link rel="prefetch" href="/assets/src/modules/composer.js?v&#x3D;6c6ptbk3u1t" />
34	<link rel="prefetch" href="/assets/src/modules/composer/uploads.js?v&#x3D;6c6ptbk3u1t" />
35	<link rel="prefetch" href="/assets/src/modules/composer/drafts.js?v&#x3D;6c6ptbk3u1t" />
36	<link rel="prefetch" href="/assets/src/modules/composer/tags.js?v&#x3D;6c6ptbk3u1t" />
37	<link rel="prefetch" href="/assets/src/modules/composer/categoryList.js?v&#x3D;6c6ptbk3u1t" />
38	<link rel="prefetch" href="/assets/src/modules/composer/resize.js?v&#x3D;6c6ptbk3u1t" />
39	<link rel="prefetch" href="/assets/src/modules/composer/autocomplete.js?v&#x3D;6c6ptbk3u1t" />
40	<link rel="prefetch" href="/assets/templates/composer.tpl?v&#x3D;6c6ptbk3u1t" />
41	<link rel="prefetch" href="/assets/language/zh-CN/topic.json?v&#x3D;6c6ptbk3u1t" />
42	<link rel="prefetch" href="/assets/language/zh-CN/modules.json?v&#x3D;6c6ptbk3u1t" />
43	<link rel="prefetch" href="/assets/language/zh-CN/tags.json?v&#x3D;6c6ptbk3u1t" />
44	<link rel="prefetch stylesheet" href="/assets/plugins/nodebb-plugin-markdown/styles/default.css" />
45	<link rel="prefetch" href="/assets/language/zh-CN/markdown.json?v&#x3D;6c6ptbk3u1t" />
46	
47
48	
48<script>
49		var config = JSON.parse('{"relative_path":"","upload_url":"/assets/uploads","asset_base_url":"/assets","assetBaseUrl":"/assets","siteTitle":"Design Hub","browserTitle":"Design Hub","titleLayout":"&#123;pageTitle&#125; | &#123;browserTitle&#125;","showSiteTitle":true,"maintenanceMode":false,"minimumTitleLength":3,"maximumTitleLength":255,"minimumPostLength":8,"maximumPostLength":32767,"minimumTagsPerTopic":0,"maximumTagsPerTopic":5,"minimumTagLength":3,"maximumTagLength":15,"undoTimeout":10000,"useOutgoingLinksPage":false,"allowGuestHandles":false,"allowTopicsThumbnail":true,"usePagination":true,"disableChat":false,"disableChatMessageEditing":false,"maximumChatMessageLength":1000,"socketioTransports":["polling","websocket"],"socketioOrigins":"http://designhub.top:*","websocketAddress":"","maxReconnectionAttempts":5,"reconnectionDelay":1500,"topicsPerPage":20,"postsPerPage":20,"maximumFileSize":20480,"theme:id":"nodebb-theme-persona","theme:src":"","defaultLang":"zh-CN","userLang":"zh-CN","loggedIn":false,"uid":-1,"cache-buster":"v=6c6ptbk3u1t","topicPostSort":"oldest_to_newest","categoryTopicSort":"newest_to_oldest","searchEnabled":true,"searchDefaultInQuick":"titles","bootswatchSkin":"","enablePostHistory":true,"timeagoCutoff":30,"timeagoCodes":["af","am","ar","az-short","az","be","bg","bs","ca","cs","cy","da","de-short","de","dv","el","en-short","en","es-short","es","et","eu","fa-short","fa","fi","fr-short","fr","gl","he","hr","hu","hy","id","is","it-short","it","ja","jv","ko","ky","lt","lv","mk","nl","no","pl","pt-br-short","pt-br","pt-short","pt","ro","rs","ru","rw","si","sk","sl","sq","sr","sv","th","tr-short","tr","uk","ur","uz","vi","zh-CN","zh-TW"],"cookies":{"enabled":false,"message":"[[global:cookies.message]]","dismiss":"[[global:cookies.accept]]","link":"[[global:cookies.learn_more]]","link_url":"https:&#x2F;&#x2F;www.cookiesandyou.com"},"thumbs":{"size":512},"iconBackgrounds":["#f44336","#e91e63","#9c27b0","#673ab7","#3f51b5","#2196f3","#009688","#1b5e20","#33691e","#827717","#e65100","#ff5722","#795548","#607d8b"],"emailPrompt":1,"useragent":{"isYaBrowser":false,"isAuthoritative":true,"isMobile":false,"isMobileNative":false,"isTablet":false,"isiPad":false,"isiPod":false,"isiPhone":false,"isiPhoneNative":false,"isAndroid":false,"isAndroidNative":false,"isBlackberry":false,"isOpera":false,"isIE":false,"isEdge":false,"isIECompatibilityMode":false,"isSafari":false,"isFirefox":false,"isWebkit":false,"isChrome":true,"isKonqueror":false,"isOmniWeb":false,"isSeaMonkey":false,"isFlock":false,"isAmaya":false,"isPhantomJS":false,"isEpiphany":false,"isDesktop":false,"isWindows":false,"isLinux":false,"isLinux64":false,"isMac":false,"isChromeOS":false,"isBada":false,"isSamsung":false,"isRaspberry":false,"isBot":false,"isCurl":false,"isAndroidTablet":false,"isWinJs":false,"isKindleFire":false,"isSilk":false,"isCaptive":false,"isSmartTV":false,"isUC":false,"isFacebook":false,"isAlamoFire":false,"isElectron":false,"silkAccelerated":false,"browser":"Chrome","version":"128.0.0.0","os":"unknown","platform":"unknown","geoIp":{},"source":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PageSourceSearchBot/1.0; +https://pagesourcesearch.com/bot) Chrome/128.0.0.0 Safari/537.36","isWechat":false},"acpLang":"undefined","topicSearchEnabled":false,"composer-default":{},"markdown":{"highlight":1,"highlightLinesLanguageList":[],"theme":"default.css","defaultHighlightLanguage":""},"hideSubCategories":false,"hideCategoryLastPost":false,"enableQuickReply":false}');
50		var app = {
51			user: JSON.parse('{"uid":0,"username":"游客","displayname":"游客","userslug":"","fullname":"游客","email":"","icon:text":"?","icon:bgColor":"#aaa","groupTitle":"","groupTitleArray":[],"status":"offline","reputation":0,"email:confirmed":false,"unreadData":{"":{},"new":{},"watched":{},"unreplied":{}},"isAdmin":false,"isGlobalMod":false,"isMod":false,"privileges":{"chat":false,"upload:post:image":false,"upload:post:file":false,"signature":false,"invite":false,"group:create":false,"search:content":false,"search:users":false,"search:tags":false,"view:users":true,"view:tags":true,"view:groups":true,"local:login":false,"ban":false,"mute":false,"view:users:info":false},"timeagoCode":"zh-CN","offline":true,"isEmailConfirmSent":false}')
52		};
53		document.documentElement.style.setProperty('--panel-offset', `${localStorage.getItem('panelOffset') || 0}px`);
54	</script>
54
55
56	
57	
58</head>
59
60<body class="page-categories page-status-200 theme-persona user-guest skin-noskin">
61	<nav id="menu" class="slideout-menu hidden">
62		<section class="menu-section" data-section="navigation">
63	<ul class="menu-section-list"></ul>
64</section>
65
66
67	</nav>
68	<nav id="chats-menu" class="slideout-menu hidden">
69		
70	</nav>
71
72	<main id="panel" class="slideout-panel">
73		<nav class="navbar navbar-default navbar-fixed-top header" id="header-menu" component="navbar">
74			<div class="container">
75							<div class="navbar-header">
76				<button type="button" class="navbar-toggle pull-left" id="mobile-menu">
77					<i class="fa fa-lg fa-fw fa-bars unread-count" data-content="0" data-unread-url="/unread"></i>
78				</button>
79				
80
81				
82				<div class="navbar-search visible-xs pull-right">
83					<form action="/search" method="GET">
84						<button type="button" class="btn btn-link"><i class="fa fa-lg fa-fw fa-search" title="搜索"></i></button>
85						<input autocomplete="off" type="text" class="form-control hidden" name="term" placeholder="搜索"/>
86						<button class="btn btn-primary hidden" type="submit"></button>
87						<input type="text" class="hidden" name="in" value="titles" />
88					</form>
89					<div class="quick-search-container hidden">
90						<div class="quick-search-results-container"></div>
91					</div>
92				</div>
93				
94
95				
96				
97				<a href="/">
98					<h1 class="navbar-brand forum-title">Design Hub</h1>
99				</a>
100				
101
102				<div component="navbar/title" class="visible-xs hidden">
103					<span></span>
104				</div>
105			</div>
106
107			<div id="nav-dropdown" class="hidden-xs">
108				
109				
110				<ul id="logged-out-menu" class="nav navbar-nav navbar-right">
111					
112					<li>
113						<a href="/register">
114							<i class="fa fa-pencil fa-fw hidden-sm hidden-md hidden-lg"></i>
115							<span>注册</span>
116						</a>
117					</li>
118					
119					<li>
120						<a href="/login">
121							<i class="fa fa-sign-in fa-fw hidden-sm hidden-md hidden-lg"></i>
122							<span>登录</span>
123						</a>
124					</li>
125				</ul>
126				
127				
128				<ul class="nav navbar-nav navbar-right">
129					<li>
130						<form id="search-form" class="navbar-form navbar-right hidden-xs" role="search" method="GET">
131							<button id="search-button" type="button" class="btn btn-link"><i class="fa fa-search fa-fw" title="搜索"></i></button>
132							<div class="hidden" id="search-fields">
133								<div class="form-group">
134									<input autocomplete="off" type="text" class="form-control" placeholder="搜索" name="query" value="">
135									<a href="#"><i class="fa fa-gears fa-fw advanced-search-link"></i></a>
136								</div>
137								<button type="submit" class="btn btn-default hide">搜索</button>
138							</div>
139						</form>
140						<div id="quick-search-container" class="quick-search-container hidden">
141							<div class="checkbox filter-category">
142								<label>
143									<input type="checkbox" checked><span class="name"></span>
144								</label>
145							</div>
146							<div class="text-center loading-indicator"><i class="fa fa-spinner fa-spin"></i></div>
147							<div class="quick-search-results-container"></div>
148						</div>
149					</li>
150					<li class="visible-xs" id="search-menu">
151						<a href="/search">
152							<i class="fa fa-search fa-fw"></i> 搜索
153						</a>
154					</li>
155				</ul>
156				
157
158				<ul class="nav navbar-nav navbar-right hidden-xs">
159					<li>
160						<a href="#" id="reconnect" class="hide" title="与 Design Hub 的连接断开,我们正在尝试重连,请耐心等待">
161							<i class="fa fa-check"></i>
162						</a>
163					</li>
164				</ul>
165
166				<ul id="main-nav" class="nav navbar-nav">
167					
168					
169					<li class="">
170						<a title="版块" class="navigation-link "
171						 href="&#x2F;categories" >
172							
173							<i class="fa fa-fw fa-list" data-content=""></i>
174							
175							
176							<span class="visible-xs-inline">版块</span>
177							
178							
179						</a>
180						
181					</li>
182					
183					
184					
185					<li class="">
186						<a title="最新" class="navigation-link "
187						 href="&#x2F;recent" >
188							
189							<i class="fa fa-fw fa-clock-o" data-content=""></i>
190							
191							
192							<span class="visible-xs-inline">最新</span>
193							
194							
195						</a>
196						
197					</li>
198					
199					
200				</ul>
201
202				
203			</div>
204
205			</div>
206		</nav>
207		<div class="container" id="content">
208		<noscript>
209    <div class="alert alert-danger">
210        <p>
211            Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in <strong>read-only mode</strong>.
212        </p>
213        <p>
214            Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
215        </p>
216    </div>
217</noscript>
218		
219
220
221<div data-widget-area="header">
222	
223</div>
224<div class="row">
225	<div class="col-lg-12">
226		
227		<h1 class="categories-title">版块</h1>
228		
229		<ul class="categories" itemscope itemtype="http://www.schema.org/ItemList">
230			
231			<li component="categories/category" data-cid="13" data-numRecentReplies="1" class="row clearfix category-13">
232	<meta itemprop="name" content="相关资讯">
233
234	<div class="content col-xs-12 col-md-7 col-sm-9">
235		<div class="icon pull-left" style="background-color: #A1B56C; color: #ffffff;">
236			<i class="fa fa-fw fa-globe"></i>
237		</div>
238
239		<h2 class="title">
240			
241
242<a href="/category/13/相关资讯" itemprop="url">
243
244相关资讯
245</a>
246
247		</h2>
248		<div>
249			
250			<div class="description">
251				<p dir="auto">已火星</p>
252
253			</div>
254			
255			
256			
257			
258		</div>
259		<span class="visible-xs pull-right">
260			
261			<a class="permalink" href="/post/109">
262				<small class="timeago" title="2024-01-22T01:01:45.824Z"></small>
263			</a>
264			
265		</span>
266	</div>
267
268	
269	<div class="col-md-1 hidden-sm hidden-xs stats">
270		<span class="unread human-readable-number" title="3">3</span><br />
271		<small>主题</small>
272	</div>
273	<div class="col-md-1 hidden-sm hidden-xs stats">
274		<span class="unread human-readable-number" title="8">8</span><br />
275		<small>帖子</small>
276	</div>
277	
278	<div class="col-md-3 col-sm-3 teaser hidden-xs" component="topic/teaser">
279		<div class="card background-link-container" style="border-color: #A1B56C">
280	
281	
282	<div component="category/posts">
283		<a class="background-link" href="/topic/65/现在直播弹幕游戏好像很火/1"></a>
284		<p>
285			<a href="/user/gshion"><img class="avatar  avatar-sm avatar-rounded" alt="GShion" title="GShion" data-uid="4" loading="lazy" component="avatar/picture" src="/assets/uploads/profile/4-profileavatar-1681140500376.png" style="" /></a>
286			<a class="permalink" href="/topic/65/现在直播弹幕游戏好像很火/1">
287				<small class="timeago" title="2024-01-22T01:01:45.824Z"></small>
288			</a>
289		</p>
290		<div class="post-content">
291			<p dir="auto">就是直播中发弹幕来玩游戏的那种。<br />
292……但是,我没懂……我是那种不看直播的人,所以基本可以算完全不了解。</p>
293
294		</div>
295	</div>
296	
297	
298
299	
300</div>
301
302	</div>
303	
304	
305</li>
306
307			
308			<li component="categories/category" data-cid="2" data-numRecentReplies="1" class="row clearfix category-2">
309	<meta itemprop="name" content="综合讨论">
310
311	<div class="content col-xs-12 col-md-7 col-sm-9">
312		<div class="icon pull-left" style="background-color: #59b3d0; color: #ffffff;">
313			<i class="fa fa-fw fa-comments-o"></i>
314		</div>
315
316		<h2 class="title">
317			
318
319<a href="/category/2/综合讨论" itemprop="url">
320
321综合讨论
322</a>
323
324		</h2>
325		<div>
326			
327			<div class="description">
328				<p dir="auto">没事可以多灌水,水对身体好</p>
329
330			</div>
331			
332			
333			<span class="category-children"><span class="category-children-item pull-left"><div role="presentation" class="icon pull-left" style="background-color: #8d528e; color: #ffffff;"><i class="fa fa-fw fa-question"></i></div><a href="/category/14/奇思妙想"><small>奇思妙想</small></a></span></span>
334			
335		</div>
336		<span class="visible-xs pull-right">
337			
338			<a class="permalink" href="/post/143">
339				<small class="timeago" title="2026-07-16T07:50:05.238Z"></small>
340			</a>
341			
342		</span>
343	</div>
344
345	
346	<div class="col-md-1 hidden-sm hidden-xs stats">
347		<span class="unread human-readable-number" title="21">21</span><br />
348		<small>主题</small>
349	</div>
350	<div class="col-md-1 hidden-sm hidden-xs stats">
351		<span class="unread human-readable-number" title="38">38</span><br />
352		<small>帖子</small>
353	</div>
354	
355	<div class="col-md-3 col-sm-3 teaser hidden-xs" component="topic/teaser">
356		<div class="card background-link-container" style="border-color: #59b3d0">
357	
358	
359	<div component="category/posts">
360		<a class="background-link" href="/topic/77/灌水咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟/1"></a>
361		<p>
362			<a href="/user/金桔柠檬茶"><img class="avatar  avatar-sm avatar-rounded" alt="金桔柠檬茶" title="金桔柠檬茶" data-uid="2" loading="lazy" component="avatar/picture" src="/assets/uploads/profile/2-profileavatar-1712059082412.jpeg" style="" /></a>
363			<a class="permalink" href="/topic/77/灌水咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟/1">
364				<small class="timeago" title="2026-07-16T07:50:05.238Z"></small>
365			</a>
366		</p>
367		<div class="post-content">
368			<p dir="auto">耶</p>
369<p dir="auto">复<br />
370æ´»<br />
371了</p>
372
373		</div>
374	</div>
375	
376	
377
378	
379</div>
380
381	</div>
382	
383	
384</li>
385
386			
387			<li component="categories/category" data-cid="7" data-numRecentReplies="1" class="row clearfix category-7">
388	<meta itemprop="name" content="游戏设计">
389
390	<div class="content col-xs-12 col-md-7 col-sm-9">
391		<div class="icon pull-left" style="background-color: #7bc1c0; color: #333333;">
392			<i class="fa fa-fw fa-gamepad"></i>
393		</div>
394
395		<h2 class="title">
396			
397
398<a href="/category/7/游戏设计" itemprop="url">
399
400游戏设计
401</a>
402
403		</h2>
404		<div>
405			
406			<div class="description">
407				<p dir="auto">万事俱备,就差一个程序美术测试运营服务器和投资人啦</p>
408
409			</div>
410			
411			
412			
413			
414		</div>
415		<span class="visible-xs pull-right">
416			
417			<a class="permalink" href="/post/107">
418				<small class="timeago" title="2024-01-22T00:52:54.633Z"></small>
419			</a>
420			
421		</span>
422	</div>
423
424	
425	<div class="col-md-1 hidden-sm hidden-xs stats">
426		<span class="unread human-readable-number" title="18">18</span><br />
427		<small>主题</small>
428	</div>
429	<div class="col-md-1 hidden-sm hidden-xs stats">
430		<span class="unread human-readable-number" title="20">20</span><br />
431		<small>帖子</small>
432	</div>
433	
434	<div class="col-md-3 col-sm-3 teaser hidden-xs" component="topic/teaser">
435		<div class="card background-link-container" style="border-color: #7bc1c0">
436	
437	
438	<div component="category/posts">
439		<a class="background-link" href="/topic/64/行业知识-策划的发展路径/1"></a>
440		<p>
441			<a href="/user/gshion"><img class="avatar  avatar-sm avatar-rounded" alt="GShion" title="GShion" data-uid="4" loading="lazy" component="avatar/picture" src="/assets/uploads/profile/4-profileavatar-1681140500376.png" style="" /></a>
442			<a class="permalink" href="/topic/64/行业知识-策划的发展路径/1">
443				<small class="timeago" title="2024-01-22T00:52:54.633Z"></small>
444			</a>
445		</p>
446		<div class="post-content">
447			前言
448<p dir="auto">游戏策划是设计游戏的人,所以并不是“喜欢玩游戏”就适合成为游戏策划的。只有喜欢玩游戏,喜欢思考游戏为什么要这么做,同时还抱有想要创作游戏给其他人玩的心态的人才适合做游戏策划。</p>
449<p dir="auto">游戏策划关注点相对于玩游戏本身,更在于游戏设计得好不好,也就是“要达成什么目的”,“采用什么方法”,“这些方法有什么优缺点”。即使一个策划干的都是非常事务性的工作,也不能放弃对设计的思考。不管是什么策划,都一定要清楚自己在做什么以及为什么这么做。</p>
450游戏策划的基本素质
451<p dir="auto">严格来说,这些基本素质并不是判断一个人是否算是一个好策划的条件——而是判断一个人能不能够做策划的条件。只要算得上是一个策划,那么必然不能缺少以下素质中的任何一个。</p>
452
453
454<p dir="auto">职业素养</p>
455<p dir="auto">自从决定从事这个职业开始,你对自己的定位就不能是“游戏爱好者”,而必须是“职业的游戏设计者”。能力暂且不论,职业二字意味着你不能再随着自己的喜好来对待工作。也许有时候你会觉得派给你的工作很傻,很没意思,不想做,但你至少要把这件事给做到合格。如果上司给了你修改意见,即使你觉得这样做很蠢,那仍然也要做到合格。如果觉得公司不适应或者工作不适应没法待,可以随时离职——但在离职之前,你要对你手上的所有工作负最基本的责任,即尽自己最大努力让它们合格。</p>
456
457
458<p dir="auto">思考设计背后的逻辑</p>
459<p dir="auto">无论是在工作中还是自己玩游戏的时候,都要思考游戏为什么要这么设计,有什么优缺点,可以怎么修改。这也是游戏策划和一般玩家最大的不同。玩家知道他喜欢玩哪些游戏,但当他描述游戏好玩在哪里的时候,大多数玩家都仅仅会关注体验层,也就是“我玩的爽的时候,我的感受是什么”。游戏策划则应当想得更深,也就是“游戏做了什么让我有这种感受”。思考“为什么要这样做”是学习游戏设计最快的方法,也是游戏策划不可缺少的素质。</p>
460
461
462<p dir="auto">兼收并蓄,求同存异</p>
463<p dir="auto">创作者如果对自己的作品没有自信,那他就不可能成为创作者。但在工作中,一个一意孤行的人不仅处理不好与同事的关系,也有可能导致很严重的后果,甚至导致项目整体停摆(现成的例子,少女前线2……)</p>
464<p dir="auto">游戏策划更应如此。不懂得听其他人意见的人,只会做出只有自己喜欢玩的游戏。</p>
465<p dir="auto">
465在工作中,要积极表达意见,但也要包容别人的意见,仔细思考做出取舍,和其他人充分沟通,讨论完成后,听从最应该对此事负责的人(也许是你自己!)的意见行动。</p>
466
467
468游戏策划的工作内容
469<p dir="auto">很多人对游戏策划这个职业有一种常见的理解:游戏策划就是满脑子想一些有的没的,大致描述一下,写成文档之后叫程序做,完事!</p>
470<p dir="auto">但实际上,策划打交道最多的东西反而不是策划案,而是表格。</p>
471<p dir="auto">注意,游戏是由一系列数据构成的。如果没有数据源,那么游戏就没办法称之为游戏。在写完策划案之后,更多的时间将会被用来完善体验与验收游戏表现,很多策划戏称自己为填表工具人就是因此。所以策划应当熟练使用Excel。</p>
472<p dir="auto">另外,同样常做的事则是跟进,也就是你需求提完发给程序后,确认并保证程序按时按质做完的整个行为。这也是主催为什么叫主催,是因为真的很能催……</p>
473<p dir="auto">整体来说,策划的工作内容就是写策划案,维护表格,以及跟进和汇报进度。</p>
474
475
476<p dir="auto">策划案</p>
477<p dir="auto">说一下最容易出现的误解。策划案实际上是给程序、美术等需求下游人员看的,而不是给策划自己看的。因此,你的策划案至少需要具有可执行性,而不是仅仅你的思路文档。这也是我建议策划都应该学一点程序的原因。你得知道你写成什么样,程序才能知道该怎么做,不过于简略也不过于详细。</p>
478<p dir="auto">你写的策划案,其实是程序的工作任务说明书。一定要认真对待它们。</p>
479
480
481<p dir="auto">维护表格</p>
482<p dir="auto">合格的策划可以单从表格设计上就看出很多东西,不过作为萌新,只要知道Excel的基本操作、公式以及数据类型就可以了。</p>
483<p dir="auto">注意,维护表格的时候千万记得写字段注释,否则的话这表格离了负责人没人能接手得了,或是要花费大量时间和程序对清楚了才能交接。</p>
484<p dir="auto">可以把“维护表格”的行为理解为“面向Excel编程”,哈哈。</p>
485
486
487<p dir="auto">跟进以及汇报进度</p>
488<p dir="auto">是很多人容易忽略的一点,但其实是策划最核心的技能了。如果你不会跟进,不好好跟进,那你就必然没有任何产出,因为你把是否能产出合格的成品这件事完全赌在了程序一个人身上。程序只有跟你有足够的默契,给你排足够的时间,并且对你的需求有足够的职业素养的情况下才能按时做好功能,就这还不能保证有没有bug。</p>
489<p dir="auto">因此,一定要常常跟进进度和汇报进度。</p>
490
491
492
493		</div>
494	</div>
495	
496	
497
498	
499</div>
500
501	</div>
502	
503	
504</li>
505
506			
507			<li component="categories/category" data-cid="15" data-numRecentReplies="1" class="row clearfix category-15">
508	<meta itemprop="name" content="游戏文案">
509
510	<div class="content col-xs-12 col-md-7 col-sm-9">
511		<div class="icon pull-left" style="background-color: #F7CA88; color: #333333;">
512			<i class="fa fa-fw fa-book"></i>
513		</div>
514
515		<h2 class="title">
516			
517
518<a href="/category/15/游戏文案" itemprop="url">
519
520游戏文案
521</a>
522
523		</h2>
524		<div>
525			
526			<div class="description">
527				<p dir="auto">背景设定十万字,游戏对话一百句</p>
528
529			</div>
530			
531			
532			
533			
534		</div>
535		<span class="visible-xs pull-right">
536			
537			<a class="permalink" href="/post/110">
538				<small class="timeago" title="2024-01-22T01:23:46.896Z"></small>
539			</a>
540			
541		</span>
542	</div>
543
544	
545	<div class="col-md-1 hidden-sm hidden-xs stats">
546		<span class="unread human-readable-number" title="1">1</span><br />
547		<small>主题</small>
548	</div>
549	<div class="col-md-1 hidden-sm hidden-xs stats">
550		<span class="unread human-readable-number" title="1">1</span><br />
551		<small>帖子</small>
552	</div>
553	
554	<div class="col-md-3 col-sm-3 teaser hidden-xs" component="topic/teaser">
555		<div class="card background-link-container" style="border-color: #F7CA88">
556	
557	
558	<div component="category/posts">
559		<a class="background-link" href="/topic/66/文案基础-总而言之-勇士最å
559Žå‡»è´¥äº†é­”王/1"></a>
560		<p>
561			<a href="/user/gshion"><img class="avatar  avatar-sm avatar-rounded" alt="GShion" title="GShion" data-uid="4" loading="lazy" component="avatar/picture" src="/assets/uploads/profile/4-profileavatar-1681140500376.png" style="" /></a>
562			<a class="permalink" href="/topic/66/文案基础-总而言之-勇士最后击败了魔王/1">
563				<small class="timeago" title="2024-01-22T01:23:46.896Z"></small>
564			</a>
565		</p>
566		<div class="post-content">
567			<p dir="auto"><a href="/assets/uploads/files/1705886596400-%E6%80%BB%E8%80%8C%E8%A8%80%E4%B9%8B-%E5%8B%87%E5%A3%AB%E6%9C%80%E5%90%8E%E5%87%BB%E8%B4%A5%E4%BA%86%E9%AD%94%E7%8E%8B-by-shion.zip">总而言之、勇士最后击败了魔王 by Shion.zip</a><br />
5684d294811-83b8-441c-825f-a420e78f0f6f-image.png</p>
569
570		</div>
571	</div>
572	
573	
574
575	
576</div>
577
578	</div>
579	
580	
581</li>
582
583			
584			<li component="categories/category" data-cid="8" data-numRecentReplies="1" class="row clearfix category-8">
585	<meta itemprop="name" content="游戏开发">
586
587	<div class="content col-xs-12 col-md-7 col-sm-9">
588		<div class="icon pull-left" style="background-color: #333538; color: #ffffff;">
589			<i class="fa fa-fw fa-laptop"></i>
590		</div>
591
592		<h2 class="title">
593			
594
595<a href="/category/8/游戏开发" itemprop="url">
596
597游戏开发
598</a>
599
600		</h2>
601		<div>
602			
603			<div class="description">
604				<p dir="auto">你说的这个东西它是不是不改,你得立字据</p>
605
606			</div>
607			
608			
609			
610			
611		</div>
612		<span class="visible-xs pull-right">
613			
614			<a class="permalink" href="/post/142">
615				<small class="timeago" title="2025-05-30T02:46:14.584Z"></small>
616			</a>
617			
618		</span>
619	</div>
620
621	
622	<div class="col-md-1 hidden-sm hidden-xs stats">
623		<span class="unread human-readable-number" title="21">21</span><br />
624		<small>主题</small>
625	</div>
626	<div class="col-md-1 hidden-sm hidden-xs stats">
627		<span class="unread human-readable-number" title="57">57</span><br />
628		<small>帖子</small>
629	</div>
630	
631	<div class="col-md-3 col-sm-3 teaser hidden-xs" component="topic/teaser">
632		<div class="card background-link-container" style="border-color: #333538">
633	
634	
635	<div component="category/posts">
636		<a class="background-link" href="/topic/76/godot-2d光照-物体自身阴影遮挡设置/1"></a>
637		<p>
638			<a href="/user/pamisu"><img class="avatar  avatar-sm avatar-rounded" alt="Pamisu" title="Pamisu" data-uid="5" loading="lazy" component="avatar/picture" src="/assets/uploads/profile/5-profileavatar-1691203621881.png" style="" /></a>
639			<a class="permalink" href="/topic/76/godot-2d光照-物体自身阴影遮挡设置/1">
640				<small class="timeago" title="2025-05-30T02:46:14.584Z"></small>
641			</a>
642		</p>
643		<div class="post-content">
644			<p dir="auto">记录一些在Godot中使用2D光照时遇到的问题和解决方法,本篇笔记包含以下内容:</p>
645
646控制物体是否受自身阴影影响的不同设置方法
647理解光照相关的图层和各种Mask的作用
648
649<p dir="auto">在Unity中,用来投射阴影的<a href="https://docs.unity3d.com/Packages/[email protected]/manual/2DShadows.html" rel="nofollow ugc">Shadow Caster 2D组件</a>有一个Self Shadows属性用来控制阴影是否影响物体自身。</p>
650<p dir="auto">Pasted image 20250504183337.png</p>
651<p dir="auto">Godot的光照遮挡器LightOccluder2D节点和TileSet里都没有类似的选项,默认都是影响自身。例如下图中方块物体和黑色墙体都被自身投射出的阴影遮挡了。</p>
652<p dir="auto">Pasted image 20250504220112.png</p>
653<p dir="auto">关于这个问题<a href="https://docs.godotengine.org/en/stable/tutorials/2d/2d_lights_and_shadows.html#occluder-draw-order" rel="nofollow ugc">官方文档</a>有这样一段说明:</p>
654<blockquote>
655<p dir="auto"><strong>LightOccluder2D 遵循常规的 2D 绘图顺序</strong>。这对于 2D 灯光而言非常重要,因为可以用来控制遮挡器是否应该遮挡精灵本身。</p>
656<p dir="auto">如果 LightOccluder2D 节点是精灵的同级节点,并且场景树中的遮挡器被放在精灵的下方,会遮挡住精灵本身。</p>
657<p dir="auto">
657如果 LightOccluder2D 节点是一个精灵的子节点,如果在 LightOccluder2D 节点中禁用了 <strong>Show Behind Parent</strong>(显示在父级之后)这个遮挡器将遮挡住精灵本身(该选项默认禁用)。</p>
658</blockquote>
659<p dir="auto">真的有用吗?以下是在4.4版本中测试的情况,分别是遮挡器位于精灵下方、上方、作为精灵的子节点并启用Show Behind Parent。</p>
660<p dir="auto">Pasted image 20250520085233.png</p>
661<p dir="auto">不难发现完全没有效果,就算有用这个方法也没法用于TileSet。</p>
662<p dir="auto">所以这里总结一些比较普遍的解决方法,顺便介绍2D光照中各种Mask的作用与对应关系。前两种方法来自Catlike Coding的<a href="https://catlikecoding.com/godot/true-top-down-2d/4-light-and-shadow/" rel="nofollow ugc">教程</a>,不同的方法各有优缺点,在效果细节上也有差别。</p>
663方法一 设置Cull Mode
664<p dir="auto">可以实现“物体不被自身阴影遮挡,可被其他物体的阴影遮挡”的效果。</p>
665<p dir="auto">将LightOccluder2D节点的Cull Mode属性值设置为ClockWise或CounterClockWise,取决于顶点顺序,可以两个都试一下看哪个有效果。规律是如果顶点按逆时针排列则设置ClockWise,反之CounterClockWise,正好跟顶点顺序反过来。这个设置控制了遮挡形状是从内部还是外部投射阴影。</p>
666<p dir="auto">Pasted image 20250504180335.png</p>
667<p dir="auto">如果编辑器中Sprite被遮挡,可以调整Sprite2D和LightOccluder2D在场景树中的顺序,实际运行是没有区别的。</p>
668<p dir="auto">Pasted image 20250504175706.png</p>
669<p dir="auto">这样就做到了物体不被自身阴影遮挡,会被其他物体和墙体的阴影遮挡。</p>
670<p dir="auto">Pasted image 20250504180238.png</p>
671<p dir="auto">TileSet同样可以这样设置,选择TileMapLayer节点并打开编辑器底部的TileSet面板,按图中步骤操作即可。可以发现TileSet使用了类似的逻辑实现。</p>
672<p dir="auto">Pasted image 20250504181841.png</p>
673<p dir="auto">设置后墙体会变得和物体一样,不受自身投射出阴影的影响,会被其他墙体和物体的阴影遮挡。</p>
674<p dir="auto">Pasted image 20250504182412.png</p>
675<p dir="auto">但效果并不理想,视觉上墙体应该是一个整体,而实际上每一块墙体都是单独的遮挡器,互相之间会遮挡,导致看起来很奇怪,而且数量较多的情况下对性能也会有影响。</p>
676<p dir="auto">教程里的目标效果是墙体不需要被照亮,即默认被自身阴影遮挡,但如果墙体需要照亮,这样设置满足不了要求,必须将墙体的遮挡器合并,类似这样:</p>
677<p dir="auto">Pasted image 20250520113037.png</p>
678<p dir="auto">很可惜目前Godot没有提供直接合并遮挡器的功能,上面是手动创建的,不适合大型复杂场景或者需要动态修改的情况,在<a href="https://github.com/godotengine/godot-proposals/discussions/7934" rel="nofollow ugc">这个提案</a>里有提到可以使用2D导航/碰撞烘焙来实现,之后尝试如果可行再来补充。</p>
679方法二 使用两个光源
680<p dir="auto">可以实现“物体不被自身阴影遮挡,不被其他物体的阴影遮挡,会被墙体的阴影遮挡,墙体被自身阴影遮挡”的效果。</p>
681<p dir="auto">回退方法一中的所有修改,回到初始状态。把场景中的光源复制一份。</p>
682<p dir="auto">Pasted image 20250504221607.png</p>
683<p dir="auto">将光源2的Range Item Cull Mask属性改为2,同时把Shadow Item Cull Mask属性也改为2。</p>
684<p dir="auto">Pasted image 20250504222054.png</p>
685<p dir="auto">这一步意味着这个光源专门用来照亮Light Mask属性为2的物体,同时只会对Occluder Light Mask属性为2的物体投射出阴影。</p>
686<p dir="auto">这一堆Mask看着有些头痛,总之先按步骤操作,之后会详细介绍每个Mask的作用和它们之间的关系,为什么这样设置就能有效果。</p>
687<p dir="auto">然后将物体Sprite的Light Mask属性设置为2,LightOccluder2D节点保持原样不需要调整。</p>
688<p dir="auto">Pasted image 20250504220330.png</p>
689<p dir="auto">这一步让物体的Sprite将只会受到光源2的影响,呈现出的效果是物体不再被自身阴影遮挡,也不会被其他物体的阴影遮挡。</p>
690<p dir="auto">Pasted image 20250504223727.png</p>
691<p dir="auto">可以发现此时物体也不会被墙体投射出的阴影遮挡,如果需要则再做一项设置,在墙体TileMapLayer使用的TileSet中,将Rendering -&gt; Occlusion Layers下墙体Tile使用的遮挡图层的Light Mask改为1与2同时点亮。</p>
692<p dir="auto">Pasted image 20250504224117.png</p>
693<p dir="auto">这一步让墙体在接受到光源1、光源2的光照时都投射出阴影,通过光源2投射出的阴影将会覆盖在物体上。</p>
694<p dir="auto">Pasted image 20250504225120.png</p>
695<p dir="auto">这种方法缺点很明显,需要双倍数量的光源,对性能有影响,适合低分辨率的像素游戏和光源较少的情况。</p>
696<p dir="auto">如果只需要控制物体阴影自身遮挡,对物体和墙体之间的阴影遮挡没有要求,又不想使用两个光源,这种情况可以通过设置Mask来实现。</p>
697理解各种Mask的作用
698<p dir="auto">官方文档中有时将Mask翻译为“遮罩”,有时不翻译。个人觉得“掩码”更贴切一些,类似计算机网络里的“子网掩码(Subnet Mask)”,都是用来做位运算。</p>
699<p dir="auto">2D节点和UI控件节点都继承自CanvasItem节点,在CanvasItem中有Light Mask和Visibility Layer两个属性。</p>
700<p dir="auto">Pasted image 20250513104628.png</p>
701<p dir="auto">它们对应项目设置里2D Render的图层,共有20个,对应Mask中的20位。</p>
702<p dir="auto">Pasted image 20250513104945.png</p>
703是否渲染:Visibility Layer 与 Canvas Cull Mask
704<p dir="auto">Visibility Layer决定了物体位于哪个/哪些渲染图层,在视口Viewport中有一个与之对应的属性Canvas Cull Mask,用来控制这个视口渲染哪些图层,默认全部点亮,即渲染所有图层。</p>
705<p dir="auto">Pasted image 20250513105709.png</p>
706<p dir="auto">在运行时我们的场景会被放在一个名为root的窗口Window节点下,而Window正是继承自Viewport,也就是说默认有一个渲染所有图层的视口。</p>
707<p dir="auto">Pasted image 20250513110220.png</p>
708<p dir="auto">例如物体A的Visibility Layer点亮图层1,物体B的Visibility Layer点亮图层2、3、5,视口的Canvas Cull Mask点亮图层3、6。</p>
709<p dir="auto">用视口的Canvas Cull Mask值分别与物体的Visibility Layer做与运算,结果不为0时表示需要渲染:</p>
710<p dir="auto">物体A是否渲染 = 0000 0000 0000 0000 0001 &amp; 0000 0000 0000 0010 0100 = 0000 0000 0000 0000 0000 = 不渲染</p>
711<p dir="auto">物体B是否渲染 = 0000 0000 0000 0001 0110 &amp; 0000 0000 0000 0010 0100 = 0000 0000 0000 0000 0100 = 渲染</p>
712<blockquote>
713<p dir="auto">注意物体是否渲染还会受到其父物体的影响,如果父物体不渲染,子物体也不会渲染,但可以勾选CanvasItem的Top Level属性来取消这个限制。</p>
714</blockquote>
715<blockquote>
716<p dir="auto">Godot原生支持多窗口,有基于这个特性开发独特玩法的游戏,例如《Windowkill》,这点是Unity做不到的。</p>
717</blockquote>
718是否计算光照:Light Mask 与 Range Item Cull Mask
719<p dir="auto">
719类似地,CanvasItem中的Light Mask属性用来设置物体属于哪个/哪些光照图层,在2D光源Light2D中的Range组下有一个Item Cull Mask与之对应,用来控制这个光源在哪些图层上计算光照。</p>
720<p dir="auto">Pasted image 20250513154420.png</p>
721<p dir="auto">例如物体A、B都在光源范围内,物体A的Light Mask点亮图层1,物体B的Light Mask点亮图层2、3、5,光源的Range Item Cull Mask点亮图层3、6,那么只有物体B会被照亮。</p>
722是否计算阴影:Occluder Light Mask 与 Light Mask 与 Shadow Item Cull Mask
723<p dir="auto">阴影有一些不同,它有三个属性参与控制,其实也很好理解,因为有投射出阴影的物体和接收阴影的物体,加上光源就是三个。</p>
724<p dir="auto">对于投射阴影的物体,LightOccluder2D的Occluder Light Mask属性用来设置遮挡器属于哪个/哪些阴影图层;TileSet则是Rendering -&gt; Occlusion Layers里图层项的Light Mask属性。</p>
725<p dir="auto">Pasted image 20250513155829.png</p>
726<p dir="auto">Pasted image 20250513160009.png</p>
727<p dir="auto">对于接收阴影的物体,还是CanvasItem中的Light Mask属性,也就是说它既决定了物体的光照图层,也决定了阴影图层。</p>
728<p dir="auto">在2D光源Light2D中的Shadow组下的Item Cull Mask与它们对应,用来控制这个光源在哪些图层上计算阴影。</p>
729<p dir="auto">Pasted image 20250513160656.png</p>
730<p dir="auto">例如物体A的Light Mask为1,物体B的Light Mask为2,遮挡器的Occluder Light Mask为3,光源的Range Item Cull Mask为1、2,Shadow Item Cull Mask为1、3,那么物体A、B会被照亮,遮挡器投射出的阴影会影响物体A,不影响物体B。</p>
731方法三 划分图层
732<p dir="auto">可以实现“单独控制某个图层的物体是否被同图层物体的阴影遮挡”的效果,但对于不同图层物体之间的阴影遮挡不好控制。</p>
733<p dir="auto">将场景中的物体和遮挡器划分到不同的图层,例如地板、墙体、墙体遮挡器、物体、物体遮挡器,可以在项目设置中给图层命名。</p>
734<p dir="auto">Pasted image 20250513161405.png</p>
735<p dir="auto">接着将各个物体的Light Mask属性都设置到对应的图层,遮挡器的Occluder Light Mask也一样。</p>
736<p dir="auto">假设要实现物体和墙体都不被自身阴影遮挡,那么地板、墙体、物体图层都可以被照亮,即光源的Range Item Cull Mask点亮1、2、4图层;地板需要接收阴影,墙体、物体不需要接收阴影,墙体遮挡器、物体遮挡器需要投射阴影,即光源的Shadow Item Cull Mask点亮1、3、5图层。</p>
737<p dir="auto">Pasted image 20250513162023.png</p>
738<p dir="auto">Pasted image 20250513164014.png</p>
739<p dir="auto">在此基础上,如果要做到方法二的最终效果,物体被墙体的阴影遮挡,这种情况还是得使用两个光源。</p>
740<p dir="auto">将光源复制一份,光源1不照亮物体物体,阴影和之前一样;光源2只需要照亮物体,墙体遮挡器投射阴影,物体接收阴影。</p>
741<p dir="auto">Pasted image 20250513165735.png</p>
742<p dir="auto">Pasted image 20250513165910.png</p>
743<blockquote>
744<p dir="auto">参考与素材来源:<a href="https://catlikecoding.com/godot/true-top-down-2d/" rel="nofollow ugc">True Top-Down 2D</a> by <a href="%5Bcatlikecoding.com%5D(https://catlikecoding.com/)">Catlike Coding</a></p>
745</blockquote>
746
747		</div>
748	</div>
749	
750	
751
752	
753</div>
754
755	</div>
756	
757	
758</li>
759
760			
761			<li component="categories/category" data-cid="9" data-numRecentReplies="1" class="row clearfix category-9">
762	<meta itemprop="name" content="游戏美术">
763
764	<div class="content col-xs-12 col-md-7 col-sm-9">
765		<div class="icon pull-left" style="background-color: #ffc157; color: #ffffff;">
766			<i class="fa fa-fw fa-paint-brush"></i>
767		</div>
768
769		<h2 class="title">
770			
771
772<a href="/category/9/游戏美术" itemprop="url">
773
774游戏美术
775</a>
776
777		</h2>
778		<div>
779			
780			<div class="description">
781				<p dir="auto">需求都没描述清楚叫我怎么画</p>
782
783			</div>
784			
785			
786			
787			
788		</div>
789		<span class="visible-xs pull-right">
790			
791		</span>
792	</div>
793
794	
795	<div class="col-md-1 hidden-sm hidden-xs stats">
796		<span class=" human-readable-number" title="0">0</span><br />
797		<small>主题</small>
798	</div>
799	<div class="col-md-1 hidden-sm hidden-xs stats">
800		<span class=" human-readable-number" title="0">0</span><br />
801		<small>帖子</small>
802	</div>
803	
804	<div class="col-md-3 col-sm-3 teaser hidden-xs" component="topic/teaser">
805		<div class="card background-link-container" style="border-color: #ffc157">
806	
807
808	
809	<div component="category/posts">
810		<div class="post-content">
811			没有新主题
812		</div>
813	</div>
814	
815</div>
816
817	</div>
818	
819	
820</li>
821
822			
823			<li component="categories/category" data-cid="10" data-numRecentReplies="1" class="row clearfix category-10">
824	<meta itemprop="name" content="游戏测试">
825
826	<div class="content col-xs-12 col-md-7 col-sm-9">
827		<div class="icon pull-left" style="background-color: #AB4642; color: #ffffff;">
828			<i class="fa fa-fw fa-key"></i>
829		</div>
830
831		<h2 class="title">
832			
833
834<a href="/category/10/游戏测试" itemprop="url">
835
836游戏测试
837</a>
838
839		</h2>
840		<div>
841			
842			<div class="description">
843				<p dir="auto">可能是最被外行忽视的职业之一</p>
844
845			</div>
846			
847			
848			
849			
850		</div>
851		<span class="visible-xs pull-right">
852			
853		</span>
854	</div>
855
856	
857	<div class="col-md-1 hidden-sm hidden-xs stats">
858		<span class=" human-readable-number" title="0">0</span><br />
859		<small>主题</small>
860	</div>
861	<div class="col-md-1 hidden-sm hidden-xs stats">
862		<span class=" human-readable-number" title="0">0</span><br />
863		<small>帖子</small>
864	</div>
865	
866	<div class="col-md-3 col-sm-3 teaser hidden-xs" component="topic/teaser">
867		<div class="card background-link-container" style="border-color: #AB4642">
868	
869
870	
871	<div component="category/posts">
872		<div class="post-content">
873			没有新主题
874		</div>
875	</div>
876	
877</div>
878
879	</div>
880	
881	
882</li>
883
884			
885			<li component="categories/category" data-cid="11" data-numRecentReplies="1" class="row clearfix category-11">
886	<meta itemprop="name" content="游戏运营">
887
888	<div class="content col-xs-12 col-md-7 col-sm-9">
889		<div class="icon pull-left" style="background-color: #2c7231; color: #ffffff;">
890			<i class="fa fa-fw fa-dollar"></i>
891		</div>
892
893		<h2 class="title">
894			
895
896<a href="/category/11/游戏运营" itemprop="url">
897
898游戏运营
899</a>
900
901		</h2>
902		<div>
903			
904			<div class="description">
905				<p dir="auto">一切都是为了好玩(划掉)钱</p>
906
907			</div>
908			
909			
910			
911			
912		</div>
913		<span class="visible-xs pull-right">
914			
915		</span>
916	</div>
917
918	
919	<div class="col-md-1 hidden-sm hidden-xs stats">
920		<span class=" human-readable-number" title="0">0</span><br />
921		<small>主题</small>
922	</div>
923	<div class="col-md-1 hidden-sm hidden-xs stats">
924		<span class=" human-readable-number" title="0">0</span><br />
925		<small>帖子</small>
926	</div>
927	
928	<div class="col-md-3 col-sm-3 teaser hidden-xs" component="topic/teaser">
929		<div class="card background-link-container" style="border-color: #2c7231">
930	
931
932	
933	<div component="category/posts">
934		<div class="post-content">
935			没有新主题
936		</div>
937	</div>
938	
939</div>
940
941	</div>
942	
943	
944</li>
945
946			
947			<li component="categories/category" data-cid="12" data-numRecentReplies="1" class="row clearfix category-12">
948	<meta itemprop="name" content="资源仓库">
949
950	<div class="content col-xs-12 col-md-7 col-sm-9">
951		<div class="icon pull-left" style="background-color: #3c34ad; color: #ffffff;">
952			<i class="fa fa-fw fa-server"></i>
953		</div>
954
955		<h2 class="title">
956			
957
958<a href="/category/12/资源仓库" itemprop="url">
959
960资源仓库
961</a>
962
963		</h2>
964		<div>
965			
966			<div class="description">
967				<p dir="auto">一些资源的推荐或者产出啦,可以用就行,或者创作方式也行</p>
968
969			</div>
970			
971			
972			
973			
974		</div>
975		<span class="visible-xs pull-right">
976			
977			<a class="permalink" href="/post/89">
978				<small class="timeago" title="2023-09-19T14:16:50.857Z"></small>
979			</a>
980			
981		</span>
982	</div>
983
984	
985	<div class="col-md-1 hidden-sm hidden-xs stats">
986		<span class="unread human-readable-number" title="5">5</span><br />
987		<small>主题</small>
988	</div>
989	<div class="col-md-1 hidden-sm hidden-xs stats">
990		<span class="unread human-readable-number" title="6">6</span><br />
991		<small>帖子</small>
992	</div>
993	
994	<div class="col-md-3 col-sm-3 teaser hidden-xs" component="topic/teaser">
995		<div class="card background-link-container" style="border-color: #3c34ad">
996	
997	
998	<div component="category/posts">
999		<a class="background-link" href="/topic/9/自制的使用excel的文件批处理小工具/2"></a>
1000		<p>
1001			<a href="/user/gshion"><img class="avatar  avatar-sm avatar-rounded" alt="GShion" title="GShion" data-uid="4" loading="lazy" component="avatar/picture" src="/assets/uploads/profile/4-profileavatar-1681140500376.png" style="" /></a>
1002			<a class="permalink" href="/topic/9/自制的使用excel的文件批处理小工具/2">
1003				<small class="timeago" title="2023-09-19T14:16:50.857Z"></small>
1004			</a>
1005		</p>
1006		<div class="post-content">
1007			<p dir="auto"><a href="/assets/uploads/files/1695132994990-excel%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C%E5%B7%A5%E5%85%B7v1.2.zip">excel文件操作工具v1.2.zip</a></p>
1008<p dir="auto">更新了一点,重写了帮助文档</p>
1009
1010		</div>
1011	</div>
1012	
1013	
1014
1015	
1016</div>
1017
1018	</div>
1019	
1020	
1021</li>
1022
1023			
1024		</ul>
1025		<div component="pagination" class="text-center pagination-container hidden">
1026	<ul class="pagination hidden-xs">
1027		<li class="previous pull-left disabled">
1028			<a href="?" data-page="1"><i class="fa fa-chevron-left"></i> </a>
1029		</li>
1030
1031		
1032
1033		<li class="next pull-right disabled">
1034			<a href="?" data-page="1"> <i class="fa fa-chevron-right"></i></a>
1035		</li>
1036	</ul>
1037
1038	<ul class="pagination hidden-sm hidden-md hidden-lg">
1039		<li class="first disabled">
1040			<a href="?" data-page="1"><i class="fa fa-fast-backward"></i> </a>
1041		</li>
1042
1043		<li class="previous disabled">
1044			<a href="?" data-page="1"><i class="fa fa-chevron-left"></i> </a>
1045		</li>
1046
1047		<li component="pagination/select-page" class="page select-page">
1048			<a href="#">1 / 1</a>
1049		</li>
1050
1051		<li class="next disabled">
1052			<a href="?" data-page="1"> <i class="fa fa-chevron-right"></i></a>
1053		</li>
1054
1055		<li class="last disabled">
1056			<a href="?" data-page="1"><i class="fa fa-fast-forward"></i> </a>
1057		</li>
1058	</ul>
1059</div>
1060	</div>
1061	<div data-widget-area="sidebar" class="col-lg-3 col-sm-12 hidden">
1062		
1063	</div>
1064</div>
1065<div data-widget-area="footer">
1066	
1067	<footer id="footer" class="container footer">
1068	<div>
1069<span>版权所有 ©2023 Design Hub 保留所有权利</span><br>
1070		<a target="_blank" href="https://beian.miit.gov.cn/">鄂ICP备2021004164号-2</a>
1071	</div>
1072</footer>
1073	
1074</div>
1075<script id="ajaxify-data" type="application/json">{"title":"[[pages:home]]","selectCategoryLabel":"[[pages:categories]]","categories":[{"bgColor":"#A1B56C","cid":13,"class":"col-md-3 col-xs-6","color":"#ffffff","description":"已火星","descriptionParsed":"<p dir=\"auto\">已火星<\/p>\n","disabled":0,"icon":"fa-globe","imageClass":"cover","isSection":0,"link":"","name":"相关资讯","numRecentReplies":1,"order":1,"parentCid":0,"post_count":8,"slug":"13/相关资讯","subCategoriesPerPage":10,"topic_count":3,"minTags":0,"maxTags":5,"postQueue":0,"totalPostCount":8,"totalTopicCount":3,"tagWhitelist":[],"unread-class":"unread","children":[],"posts":[{"pid":109,"timestamp":1705885305824,"content":"<p dir=\"auto\">就是直播中发弹幕来玩游戏的那种。<br />\n……但是,我没懂……我是那种不看直播的人,所以基本可以算完全不了解。<\/p>\n","timestampISO":"2024-01-22T01:01:45.824Z","user":{"uid":4,"username":"GShion","userslug":"gshion","picture":"/assets/uploads/profile/4-profileavatar-1681140500376.png","displayname":"GShion","icon:text":"G","icon:bgColor":"#e65100"},"index":1,"cid":13,"topic":{"slug":"65/现在直播弹幕游戏好像很火","title":"现在直播弹幕游戏好像很火"}}],"teaser":{"url":"/post/109","timestampISO":"2024-01-22T01:01:45.824Z","pid":109,"topic":{"slug":"65/现在直播弹幕游戏好像很火","title":"现在直播弹幕游戏好像很火"}}},{"bgColor":"#59b3d0","cid":2,"class":"col-md-3 col-xs-6","color":"#ffffff","description":"没事可以多灌水,水对身体好","descriptionParsed":"<p dir=\"auto\">没事可以多灌水,水对身体好<\/p>\n","disabled":0,"icon":"fa-comments-o","imageClass":"cover","isSection":0,"link":"","name":"综合讨论","numRecentReplies":1,"order":2,"parentCid":0,"post_count":37,"slug":"2/综合讨论","subCategoriesPerPage":10,"topic_count":20,"minTags":0,"maxTags":5,"postQueue":0,"totalPostCount":38,"totalTopicCount":21,"tagWhitelist":[],"unread-class":"unread","children":[{"bgColor":"#8d528e","cid":14,"class":"col-md-3 col-xs-6","color":"#ffffff","description":"I have a plan","descriptionParsed":"<p dir=\"auto\">I have a plan<\/p>\n","disabled":0,"icon":"fa-question","imageClass":"cover","isSection":0,"link":"","name":"奇思妙想","numRecentReplies":1,"order":1,"parentCid":2,"post_count":1,"slug":"14/奇思妙想","subCategoriesPerPage":10,"topic_count":1,"minTags":0,"maxTags":5,"postQueue":0,"totalPostCount":1,"totalTopicCount":1,"tagWhitelist":[],"unread-class":"unread","parent":{"bgColor":"#59b3d0","cid":2,"class":"col-md-3 col-xs-6","color":"#ffffff","description":"没事可以多灌水,水对身体好","descriptionParsed":"<p dir=\"auto\">没事可以多灌水,水对身体好<\/p>\n","disabled":0,"icon":"fa-comments-o","imageClass":"cover","isSection":0,"link":"","name":"综合讨论","numRecentReplies":1,"order":2,"parentCid":0,"post_count":37,"slug":"2/综合讨论","subCategoriesPerPage":10,"topic_count":20,"minTags":0,"maxTags":5,"postQueue":0,"totalPostCount":37,"totalTopicCount":20,"tagWhitelist":[],"unread-class":"unread"},"posts":[{"pid":56,"timestamp":1680716420211,"content":"<p dir=\"auto\">【前言】<\/p>\n<p dir=\"auto\">总而言之,这是一个虚构的故事。虚幻,虚妄,虚无。没有一个地方是真实的。所以只用暂且听听看就好。<\/p>\n<p dir=\"auto\">第一次接触最终幻想14大致是在2019年。当时受到朋友A的邀约,又想起数月前白银乡的朋友B也试图拉我入坑,遂选择了二区白银乡。<\/p>\n<p dir=\"auto\">说真的,5.0开场真的是燃破天际,尤其是最后暗骑一剑开天的样子,简直让我这个中二少年燃到炸裂。<\/p>\n<p dir=\"auto\">也因此,我成功地被A所劝诱,在刚进入游戏的时候就直升了一个70级黑骑,而A也跟随我,直升了一个70级武僧。<\/p>\n<p dir=\"auto\">于是,我们两个人在一个主线都没做的情况下,成功地与所有的招待奖励擦肩而过。<\/p>\n<p dir=\"auto\">我在艾欧泽亚的故事,也在这一刻,随之开始。<\/p>\n<p dir=\"auto\">【1】<\/p>\n<p dir=\"auto\">
1075A是一个老玩家。他很久以前就开始玩FF14,也拥有了许多绝版特典道具,不过某些道具在服务器合并的时候数据丢失了。当然,以他的说法是因为第七灵灾。<\/p>\n<p dir=\"auto\">虽然我们最后去了白银乡,但A其实非常想让我进红玉海。所以当他得知鸟区由于服务器压力过大,已经完全拒绝新角色创建的时候,很是用些“文明用语”抱怨了一番SD的辣鸡服务器。<\/p>\n<p dir=\"auto\">我们出生在森都格里达尼亚。我幻术,他枪术。在游戏的前十分钟内,就算我们都在忙着打怪,也能一直听到他对自己鸟区的69级角色发表惋惜与不舍。<\/p>\n<p dir=\"auto\">十分钟后,抱怨的声音突然停止了。他看着突兀出现在右下角的100万金币,陷入了长久的沉默。<\/p>\n<p dir=\"auto\">他就站在那里。许久之后,我听到了他一字一顿地吐出两个字。<\/p>\n<p dir=\"auto\">“真香。”<\/p>\n<p dir=\"auto\">【2】<\/p>\n<p dir=\"auto\">为了不浪费主线经验,也因为他说推荐我做一下2.0任务,我们都没有用70级的角色,而是重新练了一个1级小号。<\/p>\n<p dir=\"auto\">我其实喜欢玩法师职业。站在远远的地方扔高伤害技能一直是我的最爱。<\/p>\n<p dir=\"auto\">那时也不知道为什么我会觉得“通过感受自身万物,可以发现土,风,水等自然属性”是输出职业的特色。<\/p>\n<p dir=\"auto\">所以当我发现我学会的不是更加强大的岩石而是治疗时我的内心是非常崩溃的。<\/p>\n<p dir=\"auto\">【3】<\/p>\n<p dir=\"auto\">A告诉我这是游戏里最强力的治疗职业,并且反复以占星对比白魔是多么的强大。<\/p>\n<p dir=\"auto\">这些话给了我勇气。于是我孤身一人进入沃连牢狱,试图将小魔鬼阿路修斩于脚下。<\/p>\n<p dir=\"auto\">那时我15级,阿路修9级。<\/p>\n<p dir=\"auto\">我感觉我优势很大,像是十步杀一人,千里不留行的古代任侠。<\/p>\n<p dir=\"auto\">【4】<\/p>\n<p dir=\"auto\">随后我就深刻领悟到了武功再高也怕菜刀的道理。<\/p>\n<p dir=\"auto\">【5】<\/p>\n<p dir=\"auto\">不久我主线就到了弯枝牧场。<\/p>\n<p dir=\"auto\">我看着大家四处乱跑的走地鸡非常羡慕,整天和A发消息说陆行鸟怎么这么可爱。但我刚眼馋没多久,就看到A骑着陆行鸟从我身边飘过。<\/p>\n<p dir=\"auto\">我大惊,连忙问他到底是怎么这么快拿到的陆行鸟。<\/p>\n<p dir=\"auto\">“也许只是因为我比较帅吧。”他说。<\/p>\n<p dir=\"auto\">他的主线进度让我产生了严重的危机感,我心想,他都已经把我甩下这么多了?<\/p>\n<p dir=\"auto\">后来我连续推了几天的主线。我一定要在下次见面的时候好好让他惊讶一把,让他见识一下什么才是真正的肝帝。<\/p>\n<p dir=\"auto\">然后他告诉我他实际上是用了苍穹冒险录把3.0的剧情全都跳过了。<\/p>\n<p dir=\"auto\">【6】<\/p>\n<p dir=\"auto\">其实在此之前我大多数时候都是玩的单机,同时面对的其他人基本不会超过四个。<\/p>\n<p dir=\"auto\">所以当我离开角色界面,踏入格里达尼亚的时候,我第一次感受到了如此多的生气。<\/p>\n<p dir=\"auto\">许多顶着不同图标,不同称号,不同名字的人聚集于一点,又消散于各处。<\/p>\n<p dir=\"auto\">左下角不停跳出其他人聊天的对话。它们非常有趣,友好且安稳,虽然都和我无关就是了。<\/p>\n<p dir=\"auto\">这一切让我感到异样的温暖与恐惧。<\/p>\n<p dir=\"auto\">我感觉这个世界总会有许多人。<\/p>\n<p dir=\"auto\">又感觉这个世界只有我一个人。<\/p>\n<p dir=\"auto\">【6】<\/p>\n<p dir=\"auto\">当然也不是说面对人多时就一定是这种感觉,有时也会出现意外情况。<\/p>\n<p dir=\"auto\">比如麦克雷绕后至今未归。<\/p>\n<p dir=\"auto\">【7】<\/p>\n<p dir=\"auto\">A其实不是特别喜欢玩FF14,相反他经常会拉着我玩守望先锋。<\/p>\n<p dir=\"auto\">对我这种菜鸡来说,他是我仰望的大神的程度。<\/p>\n<p dir=\"auto\">我看过他的战绩。他肯肝的话,打到3000分还是没有问题的。<\/p>\n<p dir=\"auto\">
1075然后他特别自豪的准备带我上分。<\/p>\n<p dir=\"auto\">结果连输五场。<\/p>\n<p dir=\"auto\">【8】<\/p>\n<p dir=\"auto\">总而言之,我的奶兵76输出垫底还一直在死,整场下来基本会被很多人骂。<\/p>\n<p dir=\"auto\">不过A没有说什么,只是安慰我几句,然后和我一起默默打完。<\/p>\n<p dir=\"auto\">“没关系,总能练起来的。”A对我说。<\/p>\n<p dir=\"auto\">【9】<\/p>\n<p dir=\"auto\">但我看他的眼神,很明显的是在说另一句话。<\/p>\n<p dir=\"auto\">“砍掉重练吧。”<\/p>\n<p dir=\"auto\">【10】<\/p>\n<p dir=\"auto\">我的初始角色是一只兔子,成熟高冷御姐风格,还是性感的深棕色皮肤。<\/p>\n<p dir=\"auto\">我问A:“我这个角色是不是很有性感美女的感觉!”<\/p>\n<p dir=\"auto\">A没有说什么,只是要我快点打怪升级去。<\/p>\n<p dir=\"auto\">当时我其实还有点小不满。<\/p>\n<p dir=\"auto\">不过后来想想,跟着一个不认识的拉拉肥绕着大水晶跳来跳去至少五分钟的兔子,可能留给别人的印象就只剩下傻了。<\/p>\n<p dir=\"auto\">【11】<\/p>\n<p dir=\"auto\">可我还是非常喜欢她。我一直喜欢拥有这种气质的女生,尤其是这个女生还是个兽娘的时候。<\/p>\n<p dir=\"auto\">所以我拉住邻座的A,对他说:“你看!这是我老婆!我超爱她!”<\/p>\n<p dir=\"auto\">“得了吧,和智障结婚是犯法的。”A说。<\/p>\n<p dir=\"auto\">【12】<\/p>\n<p dir=\"auto\">仔细想想的话,虽然我们的确是在一起玩,但实际上并没有一起下过任何一个副本。<\/p>\n<p dir=\"auto\">没有打过同一个fate。<\/p>\n<p dir=\"auto\">甚至没有一起去过金碟。<\/p>\n<p dir=\"auto\">【13】<\/p>\n<p dir=\"auto\">不过,我们其实每晚都有一起语音。虽然各自玩各自的,但激情吐槽从来没少过。<\/p>\n<p dir=\"auto\">我们大多数时间都是在吐槽剧情。比如跑腿的光之工具人啦,动画城为什么叫动画城啦,盖乌斯是个好人啦,拂晓其实对光呆很差啦云云。<\/p>\n<p dir=\"auto\">不过2.0嘛,大家都懂的。所以到后来我们基本都只讨论一件事了。<\/p>\n<p dir=\"auto\">“来一趟沙之家。”<\/p>\n<p dir=\"auto\">【14】<\/p>\n<p dir=\"auto\">“冒险者,请来一趟沙之家。”<\/p>\n<p dir=\"auto\">有些事情让我回来我还是挺能理解的。虽然地平关离沙之家山高路远,进入沙之家又需要两次长é•
1075¿çš„读条。<\/p>\n<p dir=\"auto\">毕竟讨伐伊芙利特的时候出了这么大的问题,叫我报告也无可厚非。<\/p>\n<p dir=\"auto\">但你连听个公众演讲也要我去听完做报告回来,我就不能理解了。<\/p>\n<p dir=\"auto\">求您了,用好您手里的通讯贝吧。<\/p>\n<p dir=\"auto\">光呆的两条腿都要跑断了。<\/p>\n<p dir=\"auto\">救救孩子吧。<\/p>\n<p dir=\"auto\">【15】<\/p>\n<p dir=\"auto\">有时候看剧情会很生气。明明光呆为了这些人的命运赴汤蹈火,而他们大多数时候却只都是站在安全的大后方指挥,然后心安理得地享受着光呆的成果。<\/p>\n<p dir=\"auto\">甚至英雄还要负担传话,做吃的,找东西甚至激励士兵等一系列极其繁杂琐碎的莫名其妙任务。<\/p>\n<p dir=\"auto\">所以我觉得这得加钱。<\/p>\n<p dir=\"auto\">【16】<\/p>\n<p dir=\"auto\">其实我一开始并不知道玩治疗也是要输出的。<\/p>\n<p dir=\"auto\">于是每当我没有治疗压力的时候,我就喜欢在怪物头上蹦迪。<\/p>\n<p dir=\"auto\">然后被T骂了个狗血淋头。<\/p>\n<p dir=\"auto\">【17】<\/p>\n<p dir=\"auto\">在推完2.0之后,我想练习生产。<\/p>\n<p dir=\"auto\">听A说好看的衣服裙子,还有厉害武器都是生产做的,我想帮他的忙,不过主要是我想听他夸我。<\/p>\n<p dir=\"auto\">受到这种情感的驱动,我在一天之内就花掉了身上的全部金币购买素材。<\/p>\n<p dir=\"auto\">我把150万全都花到了各种水晶上。<\/p>\n<p dir=\"auto\">用了两个月都没用完。<\/p>\n<p dir=\"auto\">【18】<\/p>\n<p dir=\"auto\">之后非常穷困潦倒。由于没有练采集,材料又大多数比较贵,所以很多时候都挺困难的。<\/p>\n<p dir=\"auto\">当时我的目标是再挣100万。我思考我还有什么办法可以赚钱,最后望着唯一收入来源——随机副本中,报酬奖励里面大大的“治疗职业”四个大字,灵机一动。<\/p>\n<p dir=\"auto\">又可以练级,又可以拿钱,每天多刷一下,一百万不是轻轻松松吗!<\/p>\n<p dir=\"auto\">我可真是个小机灵鬼。<\/p>\n<p dir=\"auto\">【19】<\/p>\n<p dir=\"auto\">后来我就理解了为啥奶妈里面有那么多的嘴臭怪。<\/p>\n<p dir=\"auto\">【20】<\/p>\n<p dir=\"auto\">在全生产职业被我简易硬是堆到50级后,我放弃了,决定好好休息。<\/p>\n<p dir=\"auto\">那时候我的乐趣就是在森都听别人弹琴。<\/p>\n<p dir=\"auto\">我小时候学过一段时间的琴。所以当A跟我说诗人可以弹琴的时候,我立马就选择了直升一个60级的诗人。<\/p>\n<p dir=\"auto\">【21】<\/p>\n<p dir=\"auto\">我在森都水车弹天空之城。我弹,他听。<\/p>\n<p dir=\"auto\">我在弯枝牧场弹陆行鸟之歌。我弹,他听。<\/p>\n<p dir=\"auto\">我在翠泪择伐区弹献给爱丽丝。我弹,他听。<\/p>\n<p dir=\"auto\">我们都觉得这样很好。<\/p>\n<p dir=\"auto\">【22】<\/p>\n<p dir=\"auto\">就在这样悠闲的日子里,我的主线慢慢推到了2.x。<\/p>\n<p dir=\"auto\">若定要一言以蔽之的话,整个2.x的故事就是世界各地又重新出现被召唤出来的蛮神,而我的任务就是负责将他们再次打回去……当然过程更加赏心悦目了一点。<\/p>\n<p dir=\"auto\">我本来以为事情不会有多大变化,直到我遇到了伊塞勒,接触到了人与龙之间的千年斗争。<\/p>\n<p dir=\"auto\">然后被冰神姐姐一脚踩醒。<\/p>\n<p dir=\"auto\">那一夜,萌新又回忆起了怎么都走不出九连环aoe的恐怖,和被小姐姐支配的屈辱。<\/p>\n<p dir=\"auto\">【23】<\/p>\n<p dir=\"auto\">后来我学会开始用骑士来练习机制。每次当九连环aoe出现时,我就开始用无敌,并且试图疯狂走位躲避九连环。<\/p>\n<p dir=\"auto\">一圈下来,九连环aoe,每次一层易伤,我吃了八层。<\/p>\n<p dir=\"auto\">从此顿悟,选择了放弃走位硬吃一层易伤的打法。<\/p>\n<p dir=\"auto\">【24】<\/p>\n<p dir=\"auto\">森都常常能遇到可爱的拉拉肥,尤其当拉拉肥正在努力练习弹琴的时候就更可爱了。<\/p>\n<p dir=\"auto\">
1075所以有时候就会特别想要一个拉拉菲尔族的好友。<\/p>\n<p dir=\"auto\">这样的话,当朋友看着可爱的拉拉肥好奇的问这是什么东西的时候,我就可以自豪的告诉他,这是我的宠物。<\/p>\n<p dir=\"auto\">【25】<\/p>\n<p dir=\"auto\">说回冰神。冰神的机制大致有三种:剑,杖,弓。九连环等技能会穿插在姿态中使用。<\/p>\n<p dir=\"auto\">在剑姿态下,冰神希瓦会释放高伤害范围aoe“冰印剑”,需要t使用减伤吃下这个技能。<\/p>\n<p dir=\"auto\">在杖姿态下,希瓦会点名数个玩家释放以他们为中心的aoe,需要分散处理。<\/p>\n<p dir=\"auto\">在弓姿态下,希瓦会使用前方270度的大范围aoe,在看到冰神切换姿态时到背后躲避即可。<\/p>\n<p dir=\"auto\">我为什么要说这么详细呢?一方面当然是因为冰神希瓦的机制我已经烂熟于心……而另一方面,则是普通难度副本里,原本是背对人群,t独自用减伤吃下的技能“冰印剑”,在高难度副本“希瓦歼殛战”中,不仅减伤无效化,而且变成了分摊。<\/p>\n<p dir=\"auto\">变成了分摊。<\/p>\n<p dir=\"auto\">于是乎,一个刚一万血出头的萌新,在以为接下来是大伤害顺劈(对t释放的aoe技能)时,独自吃下了完整的一万八伤害。<\/p>\n<p dir=\"auto\">试求萌新的心理阴影面积。<\/p>\n<p dir=\"auto\">【26】<\/p>\n<p dir=\"auto\">当然,高难毕竟是高难,不可能随随便便就攻克掉。尤其是队友大多数都是萌新的情况下。<\/p>\n<p dir=\"auto\">我们自然不停的灭,慢慢熟练,慢慢磨合,慢慢推进。终于在最后一刻,伴随着冲天而上的一道龙炎,冰神希瓦倒下了。<\/p>\n<p dir=\"auto\">也许是我一直在总结机制,而且耐心地陪着他们训练,在成功击杀希瓦之后我得到了三个赞。<\/p>\n<p dir=\"auto\">当时真的非常自豪。<\/p>\n<p dir=\"auto\">第一个如此困难的boss被我攻克了。我激动得双手颤抖。<\/p>\n<p dir=\"auto\">【27】<\/p>\n<p dir=\"auto\">然后就碰到了我在游戏中认识的第一个人。他的名字叫做双鱼。<\/p>\n<p dir=\"auto\">我看到他在磕磕绊绊地练习弹琴,于是我和他一起弹,并且偶尔提示一下他弹奏的音符。<\/p>\n<p dir=\"auto\">双鱼随后说想以后请教我弹琴,所以他就加了我好友。<\/p>\n<p dir=\"auto\">当我点下确认按钮,看着双鱼的名字由淡蓝瞬间变为橙黄色的时候,我突然有一种特殊的感觉,仿佛我开始与这个世界产生了第一缕联系。<\/p>\n<p dir=\"auto\">一个游荡在艾欧泽亚的幻影消失了。<\/p>\n<p dir=\"auto\">取而代之的是焰,一位棕黑皮肤的维埃拉族白魔法师。<\/p>\n<p dir=\"auto\">他的好友是双鱼,一位身材娇小的可爱拉拉菲尔族少女。<\/p>\n<p dir=\"auto\">【28】<\/p>\n<p dir=\"auto\">我很开心地和双鱼分享了攻略极冰神的详细细节,结果他顿了半晌,对我说:“极冰我们这一般都叫做没有机制的本啊?”<\/p>\n<p dir=\"auto\">但我几分钟前还在灭成狗,怎么一到你这就成了没机制了?<\/p>\n<p dir=\"auto\">我刚准备生气,可我还没来得及说话就被拉到了无尽轮回剧场,看着冰神希瓦重新出现在我面前。<\/p>\n<p dir=\"auto\">然后在我愣神怎么只有两个人就能进本的时候希瓦就消失了。<\/p>\n<p dir=\"auto\">所以我发愣的时间延长了一倍。<\/p>\n<p dir=\"auto\">【29】<\/p>\n<p dir=\"auto\">冰神钻石弓。双鱼向我展示了他的冰神武器,并且和我说冰神是2.0少数直接有发光武器的蛮神之一。<\/p>\n<p dir=\"auto\">我看着手里由寒冰构成的,闪烁着微光的弓箭,突然觉得自己变得高大上了一点。<\/p>\n<p dir=\"auto\">说不定寒冰可能也没有那么冷。<\/p>\n<p dir=\"auto\">【30】<\/p>\n<p dir=\"auto\">是大佬啊!我激动地想。我要好好问问他怎么样才能达到单刷的程度。我也想成为大佬。<\/p>\n<p dir=\"auto\">“白魔要什么时候才能单刷冰神呀!”我问。<\/p>\n<p dir=\"auto\">然后看到他换出了74级的白魔。<\/p>\n<p dir=\"auto\">【31】<\/p>\n<p dir=\"auto\">相对于近战,白魔刷冰神的速度其实是慢了很多的。<\/p>\n<p dir=\"auto\">
1075于是我就吃到了好多机制。<\/p>\n<p dir=\"auto\">于是我就死了。<\/p>\n<p dir=\"auto\">于是我看着我等级76的白魔和他等级74的白魔发呆。<\/p>\n<p dir=\"auto\">【32】<\/p>\n<p dir=\"auto\">双鱼告诉我是因为装备等级,而且跟我说390装等就可以单刷冰神了。<\/p>\n<p dir=\"auto\">我第一次知道了装备等级是多么重要。<\/p>\n<p dir=\"auto\">也第一次知道这个游戏的坐骑原来可以刷出来。<\/p>\n<p dir=\"auto\">【33】<\/p>\n<p dir=\"auto\">洁白无暇的身躯,闪烁着晶蓝亮光的鬃毛,以及身旁飘荡的雪花,无一不抓住了我的痛点。<\/p>\n<p dir=\"auto\">双鱼在出冰妖马之后就下线消失了。而我则去了库尔札斯。<\/p>\n<p dir=\"auto\">在漫天风雪里绕了一圈又一圈。<\/p>\n<p dir=\"auto\">【34】<\/p>\n<p dir=\"auto\">这就是我喜欢帮从来没见过妖马的人刷冰妖马的原因。<\/p>\n<p dir=\"auto\">它洁白。冰冷。高贵。美丽。<\/p>\n<p dir=\"auto\">但最主要的,也许还是因为它是我第一个素昧平生的朋友,送给我的第一个礼物。<\/p>\n<p dir=\"auto\">我很开心。<\/p>\n<p dir=\"auto\">我很开心。<\/p>\n<p dir=\"auto\">因此我希望你们也能和我一样开心。<\/p>\n<p dir=\"auto\">【35】<\/p>\n<p dir=\"auto\">但很可惜,在我获得冰马的时候,A已经AFK了。<\/p>\n<p dir=\"auto\">于是我并没有能够分享的朋友。<\/p>\n<p dir=\"auto\">【36】<\/p>\n<p dir=\"auto\">所以,冰雪天生适合孤独。<\/p>\n<p dir=\"auto\">【37】<\/p>\n<p dir=\"auto\">我在前面说过,A其实不是很喜欢玩FF14,他喜欢对抗更激烈的游戏,比如守望先锋。<\/p>\n<p dir=\"auto\">所以有一段时间常常能听到他破口大骂。<\/p>\n<p dir=\"auto\">骂的都是某位不给他奶的萌新莫伊拉。<\/p>\n<p dir=\"auto\">【38】<\/p>\n<p dir=\"auto\">在很久以前,我第一次接触游戏开始,我就一直喜欢玩治疗职业。<\/p>\n<p dir=\"auto\">在很久远的设计中,治疗只能专职加血,也就是治疗师除了治疗,对其他的事情几乎完全没有办法。<\/p>\n<p dir=\"auto\">如果游戏里的所有挑战都只能自己面对,输出和防护职业仍然显得很有能力。<\/p>\n<p dir=\"auto\">但治疗师就没有用了。没有输出手段的治疗师,唯一能做的就只有极大地延缓自己死亡的时间而已。<\/p>\n<p dir=\"auto\">当一个治疗师只剩下自己,他的存在意义就消失了。<\/p>\n<p dir=\"auto\">【39】<\/p>\n<p dir=\"auto\">但好在FF14里面并不是这样。<\/p>\n<p dir=\"auto\">但好在我早已习惯只剩下自己。<\/p>\n<p dir=\"auto\">【40】<\/p>\n<p dir=\"auto\">一个人的日子还是比较无聊,2.x的主线其实也不怎么想推,于是每天就打打本砍砍树什么的。<\/p>\n<p dir=\"auto\">大家都知道,采集职业有个技能叫做潜行,可以让一定等级的怪物看不见你。<\/p>\n<p dir=\"auto\">然后有个著名的恬静路营地,每天因为搬蛋任务而死的冒险者能绕艾欧泽亚一圈。<\/p>\n<p dir=\"auto\">所以我砍树之余的娱乐就是坐在旁边看着其他冒险者被各种花式打死。<\/p>\n<p dir=\"auto\">非常安逸。<\/p>\n<p dir=\"auto\">【41】<\/p>\n<p dir=\"auto\">但今天似乎不一样,天很黑,视野里全是紫色的雾。<\/p>\n<p dir=\"auto\">我一边吃着土豆饼,一边好奇着究竟发生了什么事情。<\/p>\n<p dir=\"auto\">然后左下角突然冒出了一堆1111的喊话,好像是要打什么叫奥丁的怪物。<\/p>\n<p dir=\"auto\">我换上战斗职业,跟着喊话频道中偶尔闪过的坐标一起走,突然听到一阵激昂的音乐。<\/p>\n<p dir=\"auto\">我向前看。一只怪物黑甲长刀,骑着一匹散发着不详紫黑气息的战马,缓缓向我走来。<\/p>\n<p dir=\"auto\">【42】<\/p>\n<p dir=\"auto\">大家都知道在如果等级与怪物相差过大,又恰好在怪物的视野里面会发生什么事情吧?<\/p>\n<p dir=\"auto\">没错。我还没看清楚奥丁的样子,就吃了一个顺劈。<\/p>\n<p dir=\"auto\">
1075这一情景吓到了尚在安全区的大多数人,场面瞬间混乱成一团。<\/p>\n<p dir=\"auto\">【43】<\/p>\n<p dir=\"auto\">“不要继续打了!脱离仇恨脱离仇恨!”这是希望其他人一起吃奖励的。<\/p>\n<p dir=\"auto\">“唧唧歪歪的,你家的怪?”这是拱火的。<\/p>\n<p dir=\"auto\">“没时间了!再不开来不及了!”这是担心打不完的。<\/p>\n<p dir=\"auto\">“奥丁刷了?在哪?”这是蒙在鼓里的。<\/p>\n<p dir=\"auto\">“一个奥丁而已随便怎样都可以吧?”这是漠不关心的。<\/p>\n<p dir=\"auto\">“爹!爹!救命啊!”这是我。<\/p>\n<p dir=\"auto\">【44】<\/p>\n<p dir=\"auto\">后来我才知道这是一个特殊危命,类似于限时世界怪物,是需要一定等级和装备才可以参与的。<\/p>\n<p dir=\"auto\">不过当时看着一堆玩家对着怪物左冲右突,人数甚至超过了玩家显示极限,而我一点也帮不上忙的时候,我的内心非常羡慕。<\/p>\n<p dir=\"auto\">并不是因为我不知道怎么打奥丁。<\/p>\n<p dir=\"auto\">也不是我的等级不够,毕竟我也有一个高级白魔。<\/p>\n<p dir=\"auto\">只是因为我一直在地上躺着而已。<\/p>\n<p dir=\"auto\">【45】<\/p>\n<p dir=\"auto\">也许是我的疯狂呼喊起了作用,又也许是终于有人注意到了躺在地上的我,有一位好心奶妈给我发了一个复活。<\/p>\n<p dir=\"auto\">“终于到我表演的时刻了!”我这么想着,毕竟靠奶妈随机赚了一百万之后我的心得还是很多的。<\/p>\n<p dir=\"auto\">我立刻点下复活,看着正准备向我劈出一刀的奥丁,我心里冷笑。毕竟复活的时候有无敌,我是一点伤害也不可能受……<\/p>\n<p dir=\"auto\">没错,我确实一点伤害也没受。在奥丁挥出一刀时,由于特效实在太多,我的电脑终于负担不住……卡退了。<\/p>\n<p dir=\"auto\">寄。<\/p>\n","timestampISO":"2023-04-05T17:40:20.211Z","user":{"uid":4,"username":"GShion","userslug":"gshion","picture":"/assets/uploads/profile/4-profileavatar-1681140500376.png","displayname":"GShion","icon:text":"G","icon:bgColor":"#e65100"},"index":1,"cid":14,"topic":{"slug":"41/ff14-虚构者-1","title":"FF14-虚构者-1"}}]}],"posts":[{"pid":143,"timestamp":1784188205238,"content":"<p dir=\"auto\">耶<\/p>\n<p dir=\"auto\">复<br />\næ´»<br />\n了<\/p>\n","timestampISO":"2026-07-16T07:50:05.238Z","user":{"uid":2,"username":"金桔柠檬茶","userslug":"金桔柠檬茶","picture":"/assets/uploads/profile/2-profileavatar-1712059082412.jpeg","displayname":"金桔柠檬茶","icon:text":"金","icon:bgColor":"#2196f3"},"index":1,"cid":2,"topic":{"slug":"77/灌水咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟","title":"灌水咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟"}}],"teaser":{"url":"/post/143","timestampISO":"2026-07-16T07:50:05.238Z","pid":143,"topic":{"slug":"77/灌水咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟","title":"灌水咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟咕嘟"}}},{"bgColor":"#7bc1c0","cid":7,"class":"col-md-3 col-xs-6","color":"#333333","description":"万事俱备,就差一个程序美术测试运营服务器和投资人啦","descriptionParsed":"<p dir=\"auto\">万事俱备,就差一个程序美术测试运营服务器和投资人啦<\/p>\n","disabled":0,"icon":"fa-gamepad","imageClass":"cover","isSection":0,"link":"","name":"游戏设计","numRecentReplies":1,"order":3,"parentCid":0,"post_count":20,"slug":"7/游戏设计","subCategoriesPerPage":10,"topic_count":18,"minTags":0,"maxTags":5,"postQueue":0,"totalPostCount":20,"totalTopicCount":18,"tagWhitelist":[],"unread-class":"unread","children":[],"posts":[{"pid":107,"timestamp":1705884774633,"content":"前言\n<p dir=\"auto\">游戏策划是设计游戏的人,所以并不是“喜欢玩游戏”就适合成为游戏策划的。只有喜欢玩游戏,喜欢思考游戏为什么要这么做,同时还抱有想要创作游戏给其他人玩的心态的人才适合做游戏策划。<\/p>\n<p dir=\"auto\">游戏策划关注点相对于玩游戏本身,更在于游戏设计得好不好,也就是“要达成什么目的”,“采用什么方法”,“这些方法有什么优缺点”。即使一个策划干的都是非常事务性的工作,ä¹
1075Ÿä¸èƒ½æ”¾å¼ƒå¯¹è®¾è®¡çš„æ€è€ƒã€‚不管是什么策划,都一定要清楚自己在做什么以及为什么这么做。<\/p>\n游戏策划的基本素质\n<p dir=\"auto\">严格来说,这些基本素质并不是判断一个人是否算是一个好策划的条件——而是判断一个人能不能够做策划的条件。只要算得上是一个策划,那么必然不能缺少以下素质中的任何一个。<\/p>\n\n\n<p dir=\"auto\">职业素养<\/p>\n<p dir=\"auto\">自从决定从事这个职业开始,你对自己的定位就不能是“游戏爱好者”,而必须是“职业的游戏设计者”。能力暂且不论,职业二字意味着你不能再随着自己的喜好来对待工作。也许有时候你会觉得派给你的工作很傻,很没意思,不想做,但你至少要把这件事给做到合格。如果上司给了你修改意见,即使你觉得这样做很蠢,那仍然也要做到合格。如果觉得公司不适应或者工作不适应没法待,可以随时离职——但在离职之前,你要对你手上的所有工作负最基本的责任,即尽自己最大努力让它们合格。<\/p>\n\n\n<p dir=\"auto\">思考设计背后的逻辑<\/p>\n<p dir=\"auto\">无论是在工作中还是自己玩游戏的时候,都要思考游戏为什么要这么设计,有什么优缺点,可以怎么修改。这也是游戏策划和一般玩家最大的不同。玩家知道他喜欢玩哪些游戏,但当他描述游戏好玩在哪里的时候,大多数玩家都仅仅会关注体验层,也就是“我玩的爽的时候,我的感受是什么”。游戏策划则应当想得更深,也就是“游戏做了什么让我有这种感受”。思考“为什么要这样做”是学习游戏设计最快的方法,也是游戏策划不可缺少的素质。<\/p>\n\n\n<p dir=\"auto\">兼收并蓄,求同存异<\/p>\n<p dir=\"auto\">创作者如果对自己的作品没有自信,那他就不可能成为创作者。但在工作中,一个一意孤行的人不仅处理不好与同事的关系,也有可能导致很严重的后果,甚至导致项目整体停摆(现成的例子,少女前线2……)<\/p>\n<p dir=\"auto\">游戏策划更应如此。不懂得听其他人意见的人,只会做出只有自己喜欢玩的游戏。<\/p>\n<p dir=\"auto\">在工作中,要积极表达意见,但也要包容别人的意见,仔细思考做出取舍,和其他人充分沟通,讨论完成后,听从最应该对此事负责的人(也许是你自己!)的意见行动。<\/p>\n\n\n游戏策划的工作内容\n<p dir=\"auto\">很多人对游戏策划这个职业有一种常见的理解:游戏策划就是满脑子想一些有的没的,大致描述一下,写成文档之后叫程序做,完事!<\/p>\n<p dir=\"auto\">但实际上,策划打交道最多的东西反而不是策划案,而是表格。<\/p>\n<p dir=\"auto\">注意,游戏是由一系列数据构成的。如果没有数据源,那么游戏就没办法称之为游戏。在写完策划案之后,更多的时间将会被用来完善体验与验收游戏表现,很多策划戏称自己为填表工具人就是因此。所以策划应当熟练使用Excel。<\/p>\n<p dir=\"auto\">另外,同样常做的事则是跟进,也就是你需求提完发给程序后,确认并保证程序按时按质做完的整个行为。这也是主催为什么叫主催,是因为真的很能催……<\/p>\n<p dir=\"auto\">整体来说,策划的工作内容就是写策划案,维护表格,以及跟进和汇报进度。<\/p>\n\n\n<p dir=\"auto\">策划案<\/p>\n<p dir=\"auto\">说一下最容易出现的误解。策划案实际上是给程序、美术等需求下游人员看的,而不是给策划自己看的。因此,你的策划案至少需要具有可执行性,而不是仅仅你的思路文档。这也是我建议策划都应该学一点程序的原因。你得知道你写成什么样,程序才能知道该怎么做,不过于简略也不过于详细。<\/p>\n<p dir=\"auto\">你写的策划案,其实是程序的工作任务说明书。一定要认真对待它们。<\/p>\n\n\n<p dir=\"auto\">
1075维护表格<\/p>\n<p dir=\"auto\">合格的策划可以单从表格设计上就看出很多东西,不过作为萌新,只要知道Excel的基本操作、公式以及数据类型就可以了。<\/p>\n<p dir=\"auto\">注意,维护表格的时候千万记得写字段注释,否则的话这表格离了负责人没人能接手得了,或是要花费大量时间和程序对清楚了才能交接。<\/p>\n<p dir=\"auto\">可以把“维护表格”的行为理解为“面向Excel编程”,哈哈。<\/p>\n\n\n<p dir=\"auto\">跟进以及汇报进度<\/p>\n<p dir=\"auto\">是很多人容易忽略的一点,但其实是策划最核心的技能了。如果你不会跟进,不好好跟进,那你就必然没有任何产出,因为你把是否能产出合格的成品这件事完全赌在了程序一个人身上。程序只有跟你有足够的默契,给你排足够的时间,并且对你的需求有足够的职业素养的情况下才能按时做好功能,就这还不能保证有没有bug。<\/p>\n<p dir=\"auto\">因此,一定要常常跟进进度和汇报进度。<\/p>\n\n\n","timestampISO":"2024-01-22T00:52:54.633Z","user":{"uid":4,"username":"GShion","userslug":"gshion","picture":"/assets/uploads/profile/4-profileavatar-1681140500376.png","displayname":"GShion","icon:text":"G","icon:bgColor":"#e65100"},"index":1,"cid":7,"topic":{"slug":"64/行业知识-策划的发展路径","title":"【行业知识】策划的发展路径"}}],"teaser":{"url":"/post/107","timestampISO":"2024-01-22T00:52:54.633Z","pid":107,"topic":{"slug":"64/行业知识-策划的发展路径","title":"【行业知识】策划的发展路径"}}},{"bgColor":"#F7CA88","cid":15,"class":"col-md-3 col-xs-6","color":"#333333","description":"背景设定十万字,游戏对话一百句","descriptionParsed":"<p dir=\"auto\">背景设定十万字,游戏对话一百句<\/p>\n","disabled":0,"icon":"fa-book","imageClass":"cover","isSection":0,"link":"","name":"游戏文案","numRecentReplies":1,"order":4,"parentCid":0,"post_count":1,"slug":"15/游戏文案","subCategoriesPerPage":10,"topic_count":1,"minTags":0,"maxTags":5,"postQueue":0,"totalPostCount":1,"totalTopicCount":1,"tagWhitelist":[],"unread-class":"unread","children":[],"posts":[{"pid":110,"timestamp":1705886626896,"content":"<p dir=\"auto\"><a href=\"/assets/uploads/files/1705886596400-%E6%80%BB%E8%80%8C%E8%A8%80%E4%B9%8B-%E5%8B%87%E5%A3%AB%E6%9C%80%E5%90%8E%E5%87%BB%E8%B4%A5%E4%BA%86%E9%AD%94%E7%8E%8B-by-shion.zip\">总而言之、勇士最后击败了魔王 by Shion.zip<\/a><br />\n4d294811-83b8-441c-825f-a420e78f0f6f-image.png<\/p>\n","timestampISO":"2024-01-22T01:23:46.896Z","user":{"uid":4,"username":"GShion","userslug":"gshion","picture":"/assets/uploads/profile/4-profileavatar-1681140500376.png","displayname":"GShion","icon:text":"G","icon:bgColor":"#e65100"},"index":1,"cid":15,"topic":{"slug":"66/文案基础-总而言之-勇士最后击败了魔王","title":"【文案基础】总而言之、勇士最后击败了魔王"}}],"teaser":{"url":"/post/110","timestampISO":"2024-01-22T01:23:46.896Z","pid":110,"topic":{"slug":"66/文案基础-总而言之-勇士最后击败了魔王","title":"【文案基础】总而言之、勇士最后击败了魔王"}}},{"bgColor":"#333538","cid":8,"class":"col-md-3 col-xs-6","color":"#ffffff","description":"你说的这个东西它是不是不改,你得立字据","descriptionParsed":"<p dir=\"auto\">你说的这个东西它是不是不改,你得立字据<\/p>\n","disabled":0,"icon":"fa-laptop","imageClass":"cover","isSection":0,"link":"","name":"游戏开发","numRecentReplies":1,"order":5,"parentCid":0,"post_count":57,"slug":"8/游戏开发","subCategoriesPerPage":10,"topic_count":21,"minTags":0,"maxTags":5,"postQueue":0,"totalPostCount":57,"totalTopicCount":21,"tagWhitelist":[],"unread-class":"unread","children":[],"posts":[{"pid":142,"timestamp":1748573174584,"content":"<p dir=\"auto\">记录一些在Godot中使用2D光照时遇到的问题和解决方法,本篇笔记包含以下内容:<\/p>\n\n控制物体是否受自身阴影影响的不同设置方法\n理解光照相关的图层和各种Mask的作用\n\n<p dir=\"auto\">在Unity中,用来投射阴影的<a href=\"https://docs.unity3d.com/Packages/[email protected]/manual/2DShadows.html\" rel=\"nofollow ugc\">Shadow Caster 2D组件<\/a>有一个Self Shadows属性用来控制阴影是否影响物体自身。<\/p>\n<p dir=\"auto\">Pasted image 20250504183337.png<\/p>\n<p dir=\"auto\">Godot的光照遮挡器LightOccluder2D节点和TileSet里都没有类似的选项,默认都是影响自身。例如下图中方块物体和黑色墙体都被自身投射出的阴影遮挡了。<\/p>\n<p dir=\"auto\">Pasted image 20250504220112.png<\/p>\n<p dir=\"auto\">关于这个问题<a href=\"https://docs.godotengine.org/en/stable/tutorials/2d/2d_lights_and_shadows.html#occluder-draw-order\" rel=\"nofollow ugc\">官方文档<\/a>有这样一段说明:<\/p>\n<blockquote>\n<p dir=\"auto\"><strong>LightOccluder2D 遵循常规的 2D 绘图顺序<\/strong>。这对于 2D 灯光而言非常重要,因为可以用来控制遮挡器是否应该遮挡精灵本身。<\/p>\n<p dir=\"auto\">
1075如果 LightOccluder2D 节点是精灵的同级节点,并且场景树中的遮挡器被放在精灵的下方,会遮挡住精灵本身。<\/p>\n<p dir=\"auto\">如果 LightOccluder2D 节点是一个精灵的子节点,如果在 LightOccluder2D 节点中禁用了 <strong>Show Behind Parent<\/strong>(显示在父级之后)这个遮挡器将遮挡住精灵本身(该选项默认禁用)。<\/p>\n<\/blockquote>\n<p dir=\"auto\">真的有用吗?以下是在4.4版本中测试的情况,分别是遮挡器位于精灵下方、上方、作为精灵的子节点并启用Show Behind Parent。<\/p>\n<p dir=\"auto\">Pasted image 20250520085233.png<\/p>\n<p dir=\"auto\">不难发现完全没有效果,就算有用这个方法也没法用于TileSet。<\/p>\n<p dir=\"auto\">所以这里总结一些比较普遍的解决方法,顺便介绍2D光照中各种Mask的作用与对应关系。前两种方法来自Catlike Coding的<a href=\"https://catlikecoding.com/godot/true-top-down-2d/4-light-and-shadow/\" rel=\"nofollow ugc\">教程<\/a>,不同的方法各有优缺点,在效果细节上也有差别。<\/p>\n方法一 设置Cull Mode\n<p dir=\"auto\">可以实现“物体不被自身阴影遮挡,可被其他物体的阴影遮挡”的效果。<\/p>\n<p dir=\"auto\">将LightOccluder2D节点的Cull Mode属性值设置为ClockWise或CounterClockWise,取决于顶点顺序,可以两个都试一下看哪个有效果。规律是如果顶点按逆时针排列则设置ClockWise,反之CounterClockWise,正好跟顶点顺序反过来。这个设置控制了遮挡形状是从内部还是外部投射阴影。<\/p>\n<p dir=\"auto\">Pasted image 20250504180335.png<\/p>\n<p dir=\"auto\">如果编辑器中Sprite被遮挡,可以调整Sprite2D和LightOccluder2D在场景树中的顺序,实际运行是没有区别的。<\/p>\n<p dir=\"auto\">Pasted image 20250504175706.png<\/p>\n<p dir=\"auto\">这样就做到了物体不被自身阴影遮挡,会被其他物体和墙体的阴影遮挡。<\/p>\n<p dir=\"auto\">Pasted image 20250504180238.png<\/p>\n<p dir=\"auto\">TileSet同样可以这样设置,选择TileMapLayer节点并打开编辑器底部的TileSet面板,按图中步骤操作即可。可以发现TileSet使用了类似的逻辑实现。<\/p>\n<p dir=\"auto\">Pasted image 20250504181841.png<\/p>\n<p dir=\"auto\">设置后墙体会变得和物体一样,不受自身投射出阴影的影响,会被其他墙体和物体的阴影遮挡。<\/p>\n<p dir=\"auto\">Pasted image 20250504182412.png<\/p>\n<p dir=\"auto\">但效果并不理想,视觉上墙体应该是一个整体,而实际上每一块墙体都是单独的遮挡器,互相之间会遮挡,导致看起来很奇怪,而且数量较多的情况下对性能也会有影响。<\/p>\n<p dir=\"auto\">教程里的目标效果是墙体不需要被照亮,即默认被自身阴影遮挡,但如果墙体需要照亮,这样设置满足不了要求,必须将墙体的遮挡器合并,类似这样:<\/p>\n<p dir=\"auto\">Pasted image 20250520113037.png<\/p>\n<p dir=\"auto\">很可惜目前Godot没有提供直接合并遮挡器的功能,上面是手动创建的,不适合大型复杂场景或者需要动态修改的情况,在<a href=\"https://github.com/godotengine/godot-proposals/discussions/7934\" rel=\"nofollow ugc\">这个提案<\/a>里有提到可以使用2D导航/碰撞烘焙来实现,之后尝试如果可行再来补充。<\/p>\n方法二 使用两个光源\n<p dir=\"auto\">可以实现“物体不被自身阴影遮挡,不被其他物体的阴影遮挡,会被墙体的阴影遮挡,墙体被自身阴影遮挡”的效果。<\/p>\n<p dir=\"auto\">回退方法一中的所有修改,回到初始状态。把场景中的光源复制一份。<\/p>\n<p dir=\"auto\">Pasted image 20250504221607.png<\/p>\n<p dir=\"auto\">将光源2的Range Item Cull Mask属性改为2,同时把Shadow Item Cull Mask属性也改为2。<\/p>\n<p dir=\"auto\">Pasted image 20250504222054.png<\/p>\n<p dir=\"auto\">这一步意味着这个光源专门用来照亮Light Mask属性为2的物体,同时只会对Occluder Light Mask属性为2的物体投射出阴影。<\/p>\n<p dir=\"auto\">这一堆Mask看着有些头痛,总之先按步骤操作,之后会详细介绍每个Mask的作用和它们之间的关系,为什么这样设置就能有效果。<\/p>\n<p dir=\"auto\">然后将物体Sprite的Light Mask属性设置为2,LightOccluder2D节点保持原样不需要调整。<\/p>\n<p dir=\"auto\">Pasted image 20250504220330.png<\/p>\n<p dir=\"auto\">这一步让物体的Sprite将只会受到光源2的影响,呈现出的效果是物体不再被自身阴影遮挡,也不会被其他物体的阴影遮挡。<\/p>\n<p dir=\"auto\">Pasted image 20250504223727.png<\/p>\n<p dir=\"auto\">可以发现此时物体也不会被墙体投射出的阴影遮挡,如果需要则再做一项设置,在墙体TileMapLayer使用的TileSet中,将Rendering -&gt; Occlusion Layers下墙体Tile使用的遮挡图层的Light Mask改为1与2同时点亮。<\/p>\n<p dir=\"auto\">Pasted image 20250504224117.png<\/p>\n<p dir=\"auto\">这一步让墙体在接受到光源1、光源2的光照时都投射出阴影,通过光源2投射出的阴影将会覆盖在物体上。<\/p>\n<p dir=\"auto\">Pasted image 20250504225120.png<\/p>\n<p dir=\"auto\">这种方法缺点很明显,需要双倍数量的光源,对性能有影响,适合低分辨率的像素游戏和光源较少的情况。<\/p>\n<p dir=\"auto\">如果只需要控制物体阴影自身遮挡,对物体和墙体之间的阴影遮挡没有要求,又不想使用两个光源,这种情况可以通过设置Mask来实现。<\/p>\n理解各种Mask的作用\n<p dir=\"auto\">官方文档中有时将Mask翻译为“遮罩”,有时不翻译。个人觉得“掩码”更贴切一些,类似计算机网络里的“子网掩码(Subnet Mask)”,都是用来做位运算。<\/p>\n<p dir=\"auto\">2D节点和UI控件节点都继承自CanvasItem节点,在CanvasItem中有Light Mask和Visibility Layer两个属性。<\/p>\n<p dir=\"auto\">Pasted image 20250513104628.png<\/p>\n<p dir=\"auto\">它们对应项目设置里2D Render的图层,共有20个,对应Mask中的20位。<\/p>\n<p dir=\"auto\">Pasted image 20250513104945.png<\/p>\n是否渲染:Visibility Layer 与 Canvas Cull Mask\n<p dir=\"auto\">Visibility Layer决定了物体位于哪个/哪些渲染图层,在视口Viewport中有一个与之对应的属性Canvas Cull Mask,用来控制这个视口渲染哪些图层,默认全部点亮,即渲染所有图层。<\/p>\n<p dir=\"auto\">Pasted image 20250513105709.png<\/p>\n<p dir=\"auto\">在运行时我们的场景会被放在一个名为root的窗口Window节点下,而Window正是继承自Viewport,也就是说默认有一个渲染所有图层的视口。<\/p>\n<p dir=\"auto\">Pasted image 20250513110220.png<\/p>\n<p dir=\"auto\">例如物体A的Visibility Layer点亮图层1,物体B的Visibility Layer点亮图层2、3、5,视口的Canvas Cull Mask点亮图层3、6。<\/p>\n<p dir=\"auto\">用视口的Canvas Cull Mask值分别与物体的Visibility Layer做与运算,结果不为0时表示需要渲染:<\/p>\n<p dir=\"auto\">物体A是否渲染 = 0000 0000 0000 0000 0001 &amp; 0000 0000 0000 0010 0100 = 0000 0000 0000 0000 0000 = 不渲染<\/p>\n<p dir=\"auto\">物体B是否渲染 = 0000 0000 0000 0001 0110 &amp; 0000 0000 0000 0010 0100 = 0000 0000 0000 0000 0100 = 渲染<\/p>\n<blockquote>\n<p dir=\"auto\">注意物体是否渲染还会受到其父物体的影响,如果父物体不渲染,子物体也不会渲染,但可以勾选CanvasItem的Top Level属性来取消这个限制。<\/p>\n<\/blockquote>\n<blockquote>\n<p dir=\"auto\">Godot原生支持多窗口,有基于这个特性开发独特玩法的游戏,例如《Windowkill》,这点是Unity做不到的。<\/p>\n<\/blockquote>\n是否计算光照:Light Mask 与 Range Item Cull Mask\n<p dir=\"auto\">
1075类似地,CanvasItem中的Light Mask属性用来设置物体属于哪个/哪些光照图层,在2D光源Light2D中的Range组下有一个Item Cull Mask与之对应,用来控制这个光源在哪些图层上计算光照。<\/p>\n<p dir=\"auto\">Pasted image 20250513154420.png<\/p>\n<p dir=\"auto\">例如物体A、B都在光源范围内,物体A的Light Mask点亮图层1,物体B的Light Mask点亮图层2、3、5,光源的Range Item Cull Mask点亮图层3、6,那么只有物体B会被照亮。<\/p>\n是否计算阴影:Occluder Light Mask 与 Light Mask 与 Shadow Item Cull Mask\n<p dir=\"auto\">阴影有一些不同,它有三个属性参与控制,其实也很好理解,因为有投射出阴影的物体和接收阴影的物体,加上光源就是三个。<\/p>\n<p dir=\"auto\">对于投射阴影的物体,LightOccluder2D的Occluder Light Mask属性用来设置遮挡器属于哪个/哪些阴影图层;TileSet则是Rendering -&gt; Occlusion Layers里图层项的Light Mask属性。<\/p>\n<p dir=\"auto\">Pasted image 20250513155829.png<\/p>\n<p dir=\"auto\">Pasted image 20250513160009.png<\/p>\n<p dir=\"auto\">对于接收阴影的物体,还是CanvasItem中的Light Mask属性,也就是说它既决定了物体的光照图层,也决定了阴影图层。<\/p>\n<p dir=\"auto\">在2D光源Light2D中的Shadow组下的Item Cull Mask与它们对应,用来控制这个光源在哪些图层上计算阴影。<\/p>\n<p dir=\"auto\">Pasted image 20250513160656.png<\/p>\n<p dir=\"auto\">例如物体A的Light Mask为1,物体B的Light Mask为2,遮挡器的Occluder Light Mask为3,光源的Range Item Cull Mask为1、2,Shadow Item Cull Mask为1、3,那么物体A、B会被照亮,遮挡器投射出的阴影会影响物体A,不影响物体B。<\/p>\n方法三 划分图层\n<p dir=\"auto\">可以实现“单独控制某个图层的物体是否被同图层物体的阴影遮挡”的效果,但对于不同图层物体之间的阴影遮挡不好控制。<\/p>\n<p dir=\"auto\">将场景中的物体和遮挡器划分到不同的图层,例如地板、墙体、墙体遮挡器、物体、物体遮挡器,可以在项目设置中给图层命名。<\/p>\n<p dir=\"auto\">Pasted image 20250513161405.png<\/p>\n<p dir=\"auto\">接着将各个物体的Light Mask属性都设置到对应的图层,遮挡器的Occluder Light Mask也一样。<\/p>\n<p dir=\"auto\">假设要实现物体和墙体都不被自身阴影遮挡,那么地板、墙体、物体图层都可以被照亮,即光源的Range Item Cull Mask点亮1、2、4图层;地板需要接收阴影,墙体、物体不需要接收阴影,墙体遮挡器、物体遮挡器需要投射阴影,即光源的Shadow Item Cull Mask点亮1、3、5图层。<\/p>\n<p dir=\"auto\">Pasted image 20250513162023.png<\/p>\n<p dir=\"auto\">Pasted image 20250513164014.png<\/p>\n<p dir=\"auto\">在此基础上,如果要做到方法二的最终效果,物体被墙体的阴影遮挡,这种情况还是得使用两个光源。<\/p>\n<p dir=\"auto\">将光源复制一份,光源1不照亮物体物体,阴影和之前一样;光源2只需要照亮物体,墙体遮挡器投射阴影,物体接收阴影。<\/p>\n<p dir=\"auto\">Pasted image 20250513165735.png<\/p>\n<p dir=\"auto\">Pasted image 20250513165910.png<\/p>\n<blockquote>\n<p dir=\"auto\">参考与素材来源:<a href=\"https://catlikecoding.com/godot/true-top-down-2d/\" rel=\"nofollow ugc\">True Top-Down 2D<\/a> by <a href=\"%5Bcatlikecoding.com%5D(https://catlikecoding.com/)\">Catlike Coding<\/a><\/p>\n<\/blockquote>\n","timestampISO":"2025-05-30T02:46:14.584Z","user":{"uid":5,"username":"Pamisu","userslug":"pamisu","picture":"/assets/uploads/profile/5-profileavatar-1691203621881.png","displayname":"Pamisu","icon:text":"P","icon:bgColor":"#1b5e20"},"index":1,"cid":8,"topic":{"slug":"76/godot-2d光照-物体自身阴影遮挡设置","title":"Godot 2D光照 - 物体自身阴影遮挡设置"}}],"teaser":{"url":"/post/142","timestampISO":"2025-05-30T02:46:14.584Z","pid":142,"topic":{"slug":"76/godot-2d光照-物体自身阴影遮挡设置","title":"Godot 2D光照 - 物体自身阴影遮挡设置"}}},{"bgColor":"#ffc157","cid":9,"class":"col-md-3 col-xs-6","color":"#ffffff","description":"需求都没描述清楚叫我怎么画","descriptionParsed":"<p dir=\"auto\">需求都没描述清楚叫我怎么画<\/p>\n","disabled":0,"icon":"fa-paint-brush","imageClass":"cover","isSection":0,"link":"","name":"游戏美术","numRecentReplies":1,"order":6,"parentCid":0,"post_count":0,"slug":"9/游戏美术","subCategoriesPerPage":10,"topic_count":0,"minTags":0,"maxTags":5,"postQueue":0,"totalPostCount":0,"totalTopicCount":0,"tagWhitelist":[],"unread-class":"","children":[],"posts":[]},{"bgColor":"#AB4642","cid":10,"class":"col-md-3 col-xs-6","color":"#ffffff","description":"可能是最被外行忽视的职业之一","descriptionParsed":"<p dir=\"auto\">可能是最被外行忽视的职业之一<\/p>\n","disabled":0,"icon":"fa-key","imageClass":"cover","isSection":0,"link":"","name":"游戏测试","numRecentReplies":1,"order":7,"parentCid":0,"post_count":0,"slug":"10/游戏测试","subCategoriesPerPage":10,"topic_count":0,"minTags":0,"maxTags":5,"postQueue":0,"totalPostCount":0,"totalTopicCount":0,"tagWhitelist":[],"unread-class":"","children":[],"posts":[]},{"bgColor":"#2c7231","cid":11,"class":"col-md-3 col-xs-6","color":"#ffffff","description":"一切都是为了好玩(划掉)钱","de
1075scriptionParsed":"<p dir=\"auto\">一切都是为了好玩(划掉)钱<\/p>\n","disabled":0,"icon":"fa-dollar","imageClass":"cover","isSection":0,"link":"","name":"游戏运营","numRecentReplies":1,"order":8,"parentCid":0,"post_count":0,"slug":"11/游戏运营","subCategoriesPerPage":10,"topic_count":0,"minTags":0,"maxTags":5,"postQueue":0,"totalPostCount":0,"totalTopicCount":0,"tagWhitelist":[],"unread-class":"","children":[],"posts":[]},{"bgColor":"#3c34ad","cid":12,"class":"col-md-3 col-xs-6","color":"#ffffff","description":"一些资源的推荐或者产出啦,可以用就行,或者创作方式也行","descriptionParsed":"<p dir=\"auto\">一些资源的推荐或者产出啦,可以用就行,或者创作方式也行<\/p>\n","disabled":0,"icon":"fa-server","imageClass":"cover","isSection":0,"link":"","name":"资源仓库","numRecentReplies":1,"order":9,"parentCid":0,"post_count":6,"slug":"12/资源仓库","subCategoriesPerPage":10,"topic_count":5,"minTags":0,"maxTags":5,"postQueue":0,"totalPostCount":6,"totalTopicCount":5,"tagWhitelist":[],"unread-class":"unread","children":[],"posts":[{"pid":89,"timestamp":1695133010857,"content":"<p dir=\"auto\"><a href=\"/assets/uploads/files/1695132994990-excel%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C%E5%B7%A5%E5%85%B7v1.2.zip\">excel文件操作工具v1.2.zip<\/a><\/p>\n<p dir=\"auto\">更新了一点,重写了帮助文档<\/p>\n","timestampISO":"2023-09-19T14:16:50.857Z","user":{"uid":4,"username":"GShion","userslug":"gshion","picture":"/assets/uploads/profile/4-profileavatar-1681140500376.png","displayname":"GShion","icon:text":"G","icon:bgColor":"#e65100"},"index":2,"cid":12,"topic":{"slug":"9/自制的使用excel的文件批处理小工具","title":"自制的使用Excel的文件批处理小工具"}}],"teaser":{"url":"/post/89","timestampISO":"2023-09-19T14:16:50.857Z","pid":89,"topic":{"slug":"9/自制的使用excel的文件批处理小工具","title":"自制的使用Excel的文件批处理小工具"}}}],"pagination":{"prev":{"page":1,"active":false},"next":{"page":1,"active":false},"first":{"page":1,"active":true},"last":{"page":1,"active":true},"rel":[],"pages":[],"currentPage":1,"pageCount":1},"loggedIn":false,"relative_path":"","template":{"name":"categories","categories":true},"url":"/categories","bodyClass":"page-categories page-status-200 theme-persona user-guest","_header":{"tags":{"meta":[{"name":"viewport","content":"width&#x3D;device-width, initial-scale&#x3D;1.0"},{"name":"content-type","content":"text/html; charset=UTF-8","noEscape":true},{"name":"apple-mobile-web-app-capable","content":"yes"},{"name":"mobile-web-app-capable","content":"yes"},{"property":"og:site_name","content":"Design Hub"},{"name":"msapplication-badge","content":"frequency=30; polling-uri=http://designhub.top/sitemap.xml","noEscape":true},{"name":"theme-color","content":"#ffffff"},{"name":"title","content":"Design Hub"},{"property":"og:type","content":"website"},{"property":"og:image","content":"http://designhub.top/assets/images/[email protected]","noEscape":true},{"property":"og:image:url","content":"http://designhub.top/assets/images/[email protected]","noEscape":true},{"property":"og:image:width","content":"963"},{"property":"og:image:height","content":"225"},{"content":"Design Hub","property":"og:title"},{"content":"http://designhub.top","property":"og:url"}],"link":[{"rel":"icon","type":"image/x-icon","href":"/assets/uploads/system/favicon.ico?v&#x3D;6c6ptbk3u1t"},{"rel":"manifest","href":"/manifest.webmanifest","crossorigin":"use-credentials"},{"rel":"search","type":"application/opensearchdescription+xml","title":"Design Hub","href":"/osd.xml"},{"rel":"apple-touch-icon","href":"/assets/images/touch/512.png"},{"rel":"icon","sizes":"36x36","href":"/assets/images/touch/36.png"},{"rel":"icon","sizes":"48x48","href":"/assets/images/touch/48.png"},{"rel":"icon","sizes":"72x72","href":"/assets/images/touch/72.png"},{"rel":"icon","sizes":"96x96","href":"/assets/images/touch/96.png"},{"rel":"icon","sizes":"144x144","href":"/assets/images/touch/144.png"},{"rel":"icon","sizes":"192x192","href":"/assets/images/touch/192.png"},{"rel":"icon","sizes":"512x512","href":"/assets/images/touch/512.png"},{"rel":"prefetch","href":"/assets/src/modules/composer.js?v&#x3D;6c6ptbk3u1t"},{"rel":"prefetch","href":"/assets/src/modules/composer/uploads.js?v&#x3D;6c6ptbk3u1t"},{"rel":"prefetch","href":"/assets/src/modules/composer/drafts.js?v&#x3D;6c6ptbk3u1t"},{"rel":"prefetch","href":"/assets/src/modules/composer/tags.js?v&#x3D;6c6ptbk3u1t"},{"rel":"prefetch","href":"/assets/src/modules/composer/categoryList.js?v&#x3D;6c6ptbk3u1t"},{"rel":"prefetch","href":"/assets/src/modules/composer/resize.js?v&#x3D;6c6ptbk3u1t"},{"rel":"prefetch","href":"/assets/src/modules/composer/autocomplete.js?v&#x3D;6c6ptbk3u1t"},{"rel":"prefetch","href":"/assets/templates/composer.tpl?v&#x3D;6c6ptbk3u1t"},{"rel":"prefetch","href":"/assets/language/zh-CN/topic.json?v&#x3D;6c6ptbk3u1t"},{"rel":"prefetch","href":"/assets/language/zh-CN/modules.json?v&#x3D;6c6ptbk3u1t"},{"rel":"prefetch","href":"/assets/language/zh-CN/tags.json?v&#x3D;6c6ptbk3u1t"},{"rel":"prefetch stylesheet","type":"","href":"/assets/plugins/nodebb-plugin-markdown/styles/default.css"},{"rel":"prefetch","href":"/assets/language/zh-CN/markdown.json?v&#x3D;6c6ptbk3u1t"}]}},"widgets":{"footer":[{"html":"<footer id=\"footer\" class=\"container footer\">\r\n\t<div>\r\n<span>版权所有 ©2023 Design Hub 保留所有权利<\/span><br>\r\n\t\t<a target=\"_blank\" href=\"https://beian.miit.gov.cn/\">鄂ICP备2021004164号-2<\/a>\r\n\t<\/div>\r\n<\/footer>"}]}}</script>
1075		</div><!-- /.container#content -->
1076	</main>
1077	
1078
1079	
1079<script defer src="/assets/nodebb.min.js?v=6c6ptbk3u1t"></script>
1079
1080
1081
1082
1083<script>
1084    if (document.readyState === 'loading') {
1085        document.addEventListener('DOMContentLoaded', prepareFooter);
1086    } else {
1087        prepareFooter();
1088    }
1089
1090    function prepareFooter() {
1091        
1092
1093        $(document).ready(function () {
1094            app.coldLoad();
1095        });
1096    }
1097</script>
1097
1098</body>
1099</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.