17173首页 游戏资讯 官方公告 正文

《十字军之王3》「丝绸与白银」开发日志 #9 - 3D模型、音乐、模组制作

导语
《十字军之王3》新DLC「丝绸与白银」开发日志曝光:全新3D模型、动画、音乐与模组工具大揭秘,商路、威尼斯、驴与单峰驼等你探索!

士大夫们,大家好!

值此「溥天之下」发布一周年之际,我们诚邀各位填写一份关于《十字军之王III》与中国内容体验的问卷。无论你是长期经营王朝的老玩家,还是刚刚踏入中世纪的新领主,你的体验和看法都对我们至关重要。

我们正在规划《十字军之王III》在中国市场的未来。请尽量根据真实的游玩体验和想法作答,尤其欢迎在开放填空题中详细做大——我们会非常认真地阅读每一份提交。你写下的每一个字,都会帮助塑造 CK3 在中国的未来。

感谢你抽出时间,与我们一同把这片土地上的故事写得更好。

问卷收集时间截止至11月17日。或扫描上方二维码👆


问候!

我们又回来了,带来一篇分量十足的开发日志。这一次的主题是 3D 美术、动画、音乐/音频与模组制作。你可能会注意到,这次没有 2D 美术的内容——多亏了我们才华横溢的 2D 美术师们的不懈努力,这篇开发日志实际上不得不被拆成了两半(!!)。

值得一提的是,这篇日志出自多位作者之手,会涉及一点历史背景、我们的思考、制作「丝绸与白银」时的过程与意图,还有大量精美的特写镜头,不一而足。

和往常一样,所有截图均为开发中画面,一切内容都可能调整。

走起!

角色美术

「丝绸与白银」讲述的是这样一群人:他们赖以为生之地,是商路、市集,以及共和国的议事厅。角色美术自然也要紧跟其道:不仅要让公爵们披上更多丝绸,还要让脚夫穿上毛呢、让总督裹上皮裘,再配上那些能让商人一望便知的帽子、兜帽与驮畜。

这些新衣服、头饰、斗篷与发型,都会随「丝绸与白银」在理发店中开放使用。

资产类型:

理发店物品共 88 件——衣服 28 件、头饰 45 件、斗篷 14 件、发型 1 款。

  • 男性衣服(19 件):西方早期、西方晚期、中东/北非、中原/粟特

  • 女性衣服(9 件):西方早期、西方晚期、中原/粟特

  • 男性头饰:34 款变体(帽子、夏普仑帽、拜考克帽、头巾、总督角冠、重戴等)

  • 女性头饰:11 款独有帽子/面纱,外加 6 款沃尔托狂欢节面具

  • 男性斗篷:11 款(总督斗篷、拉起/放下的利里皮普兜帽、商人斗篷、斯基约尔德哈姆兜帽)

  • 女性斗篷:3 款(商人斗篷与斯基约尔德哈姆兜帽变体)

  • 发型:1 款女性发型——垂颊辫

我们还新增了两种动物:驴与单峰驼,各带多种变体。它们既是肖像道具,也是地图单位。

  • 驴的变体:无鞍、配鞍、驮货远行

  • 单峰驼的变体:无鞍、配鞍、驮货远行

\[中世纪晚期的共和制角色]

\[中世纪早期的共和制角色]

\[中东/北非与东亚的共和制角色]

\[盛装款与毛皮款的总督,两款皆戴总督角冠]

共和制也有了自己的一套行头。早期,市长可着正式长袍;到了晚期,则换上一件带制服项圈的霍普兰袍。

\[早期市长的长袍,与晚期市长的霍普兰袍和夏普仑帽比肩而立]

早期平民穿着实用的束腰上衣(长袍或短外套),包括斯基约尔德哈姆款兜帽,以及一件可披在肩头、也可翻起作兜帽的商人斗篷。

\[早期平民男女:兜帽放下 vs 兜帽拉起]

到了晚期,男性商人穿起了羊毛与丝绸的紧身短上衣、甘纳什袍和霍普兰袍:有纽扣短外套、束带长袍,以及更长些的外罩长袍,通常还挂着一个小钱袋。

\[晚期商人:羊毛甘纳什袍/霍普兰袍、丝绸变体,以及男女款紧身短上衣]

女性则穿紧身短上衣、霍普兰袍与无袖外袍:有贴身纽扣长裙、垂袖大袍,以及白鼬毛皮内衬的外罩裙。双色拼花与印花丝绸是宫廷和商贾之家的专属;至于晚期的劳作裙装,则配有贴头帽与围裙。

\[女性晚期套装:劳作裙装、紧身短上衣、霍普兰袍、无袖外袍]

帽子、夏普仑帽与拜考克帽

晚期西方的脑袋上,戏份最足的当属拜考克帽。平民款有素净剪裁与翻边两种变体;贵族款则缀以羽毛,花哨程度逐级攀升,直到那顶「皇家孔雀」拜考克帽。女性也有专属的贵族款拜考克帽。这样一来,无论你面前是一位商人、一名廷臣,还是一个十分渴望被看见的人,帽子的剪影都能让你一眼认出其身份。

\[[/b]晚期西方拜考克帽][/i][/p]

针对早期时代的女性角色,我们新增了头巾与羊毛帽。

\[早期平民帽子]

中世纪早期/盛期的男性平民则戴起了宽檐羊毛帽、配贴头帽的宽檐羊毛帽、意大利平民帽、配贴头帽的意大利平民帽,以及毡帽。

\[晚期平民与贵族的帽子与夏普仑帽]

利里皮普兜帽:可拉起或放下佩戴,备有多种配色变体。

\[兜帽放下与拉起]

每逢节庆,无论男女,都可以戴上彩绘多款的沃尔托狂欢节面具。女性还新增了一款垂颊辫发型,可与带面纱的辫饰头冠搭配。

\[狂欢节沃尔托面具]

沿商路而行

行囊里可不只有意大利货。中东贵族也换上了新衣新帽:北方头巾、一款东方头巾,以及皇家塔格勒姆斯特头巾——其中一款还能遮住脸庞。

\[中东/北非贵族:低阶与高阶套装,以及遮面/不遮面的塔格勒姆斯特头巾]

在东方商路上,粟特商人的服饰登场了,男女皆有;另有更华丽的男性变体,以及顶配的中原贵族套装。头饰方面则有“重戴”、一款中国新疆皮帽,以及女性的帷帽。

\[粟特男女,以及中原贵族:可见重戴、皮帽与帷帽]

驴与单峰驼

「丝绸与白银」新增两种生物,专为肖像与地图打造:驴与单峰驼。

每种都有几套配置。你可以看到它们无鞍、上骑鞍,或是驮满行囊的模样。

\[驴三件套:无鞍 / 配鞍 / 驮货]

\[单峰驼三件套:无鞍 / 配鞍 / 驮货]

\[[/i]在肖像中,角色可以骑乘、牵引、立于身侧或抚摸它们。单峰驼还额外有「骑乘疲态」与「驻足」两种姿态][/p]

考据与参考资料

我们想分享一些「丝绸与白银」角色服饰背后的制作过程。这次的任务书写的不是「更花哨的贵族」,而是一套能读出「贸易」二字的衣橱:街头是毛呢,账房里是丝绸,共和制顶端则是礼服。

一如既往,我们首先要对所要装扮的时代有扎实的了解。在同事与测试玩家的帮助下,我们从以下来源着手搜集历史参考:

  • 意大利及更广泛的西方湿壁画、木板画与泥金手抄本

  • 存世服装与博物馆藏品(紧身短上衣、霍普兰袍、夏普仑帽与总督角冠)

  • 关于中世纪欧洲、北非/中东与丝绸之路服饰的学术研究

  • 粟特与中原的图像资料:商人服饰、重戴、帷帽及相关头饰

  • 在难以辨认原始剪裁或层次时,参考当时的复原作品

\[西方商人与共和制服饰的Moodboard/Miro板]

 

随后,我们按地区与身份建立了参考板:早期平民、晚期商人、市长与总督、中东/北非贵族,以及粟特/中原商人。这时,2D 美术团队登场,为众多主角资产绘制了概念图。这些画作连同参考图片,便是 3D 美术师制作每件物品时所遵循的指引。

\[霍普兰袍、利里皮普兜帽披风兜帽与中东长袍的 开发中 3D 模型]

动画

为「丝绸与白银」,我们新增了 25 个以上的全新动画,供各位一饱眼福。

想不想摸摸单峰驼?如今你的角色可以了!抚摸、骑乘、牵引着单峰驼和驴走遍世界去贸易吧。

\[在沙漠中牵引单峰驼]

\[抚摸毛驴]

\[路上饿了吗?那就鸡腿香肠,吃到心满意足!]

\[有了新的狂欢节,自然少不了助兴的节目!现在,人们可以抛接杂耍、引吭高歌、向四周抛撒钱币,不一而足!]

地图上有了贸易路线,商队自然应运而生。现在,根据文化不同,你能看到小人儿们沿着路线奔波,替你运送货物。我们有骑乘和牵引的驴与单峰驼、牛车与驴车,还有马拉的货车。

还有更多细节等待发掘:有人扛着扁担、端着天平,有人把硬币抛向空中,有人用牙咬硬币验其真伪,也有人捧着箱子向货物比划。更多精彩,就留待游戏内一探究竟吧!

环境美术
城市扩张 City sprawl

「丝绸与白银」延续了我们在「溥天之下」中定下的目标:改善地图观感,让它更有生气。

这一次,我们希望看到货物被生产出来、道路被修筑起来、商人在路上穿行。而最重要的是,我们希望随着游戏推进,看到我们的城市不断成长。

我们为不同文化制作了各异的扩张样式,其中一些样式还会在乡村聚落与大城市之间呈现出区别。世界上的某些地区,城市会长得更加浑然天成;而另一些地方,则循着棋盘格与特定布局延展。

生长的随机性、不同的样式,以及山脉、水域、森林等环境因素,都会改变样式的生长方式,让世界上没有两座城市长得一模一样。

下面是一些游戏内实景示例。

资源“建筑”

游戏中有多种多样的贸易商品。为了让你在地图上一眼认出区划的主要资源,我们把这些资源也加入了扩张景观。下面便是你会在游玩中邂逅的其中几种!

\[牲畜、水果与皮革]

\[鱼类、木材与盐]

以下是我们的各类资源工坊。

东南亚工坊深受场景站的出色作品影响,尤其是他们描绘高棉石匠的那一幕。

我们还加入了象牙这一细节,用以表现象牙制品的生产。

\[中间是中东/北非工坊,我们决定采用简版的上升气流窑。右侧则是中式工坊,其原型是龙窑/阶梯窑]

货栈

此处的目标是打造一处贸易枢纽:商铺与推车鳞次栉比,既能从周遭的扩张景观中脱颖而出,又能在不同文化间共享相近的轮廓,让你不必放大地图也能一眼认出。

下面是我们为不同文化制作的货栈模型。

\[中东北非]

\[西方]

\[东方]

威尼斯

对于威尼斯,我们想展示的是那座城市最负盛名的几座建筑,以及它们在该时期的风貌,包括

  • 总督宫

  • 圣马可大教堂(依据圣使徒教堂形制的旧版)

  • 兵工厂

  • 钟楼

最后(当然,它不是建筑),还有在码头边随波轻晃、环绕全岛航行的动态贡多拉。

搭建威尼斯着实是一大挑战:可参考的史料寥寥无几,有些我们已知的内容仅见于文字记载;加之可供利用的空间极为有限,我们不得不反复斟酌构图,以及究竟该突出哪些元素。

不过,这场挑战趣味十足,也令人收获满满。我们希望自己对这些历史地标的呈现,能够不负众望。

巴黎

为了让模型在尽可能长的时期内尽量贴近史实,我们决定不纳入后来的哥特式建筑。作为折中方案,玩家可以建起巴黎圣母院,从某种意义上取代我们对早期圣艾蒂安大教堂的呈现。

我们还对地图做了调整,以契合那座标志性的西岱岛。

希望各位会喜欢我们对这座岛屿的呈现!

商队

这里有几款马车的特写,它们会随着你派出商人,在地图上往来穿梭。

这款车的原型,参考自宋代长卷《清明上河图》。 

道具

以下是几张我们为「丝绸与白银」制作的道具图,不分先后,也无可奉告。敬请欣赏!

压轴的是:我们又一次升级了雪景的视觉效果!

这个板块能塞进来的内容还有很多,但剩下的就留待各位亲自去游戏里发掘了。

感谢各位关注我们环境美术团队的近况!

和 CK3 历次更新一样,我们新增了约 20 段事件背景环境音,涵盖工匠街区(随文化变体而不同)、木工/铁匠/工坊、意大利市集、商人宅邸、全新的狂欢节环境音,另有一批全新的归尔甫派-吉伯林派全屏事件配乐,为事件的经过与结果烘托气氛。

聚居地规模——尽管随「丝绸与白银」引入,聚居地规模也会同步覆盖到基础游戏。我们为每个省份添加了按规模缩放的行为:从城墙到城市组件——例如市场、贸易、建造、人群嘈杂声(walla)等各类枢纽音频元素——均按 10 个规模等级缩放,同时兼顾每个区域的变体。

贸易商队如今也配上了专属的蹄声与吆喝声。

在界面音频方面,我们尽可能覆盖了新贸易路线规划器、新共和制议会行动、贸易联盟行动与通知,以及商人/共和制里程碑的音乐提示音(如特许状行动、丝绸之路行动、共和制/商会等级)。此外,我们还为每一种被选中的贸易商品设计了对应的提示音。

在音乐方面,我们很高兴再次请到 Magnus Ringblum 操刀这部 DLC,带来全新的主旋律、新的配乐片段与 8 首新的氛围曲目。虽然地理版图以欧洲为主,但「贸易」二字本身就带有几分模糊性——我们希望音乐以意大利风情为核心,同时与印度/中国的贸易资源相呼应。我们定下的方向是:着重表现潜在的繁荣与世俗的影响力(毕竟「贸易」嘛),保持令人兴奋的张力,同时又不至于过度滑向怪诞或「乡土」气息。Magnus 的创作理念围绕着「外交」「说服」「信任」「影响」,也涵盖「背叛」「操纵」「腐败」与「贪婪」。

Magnus 运用了来自不同地域的多样乐器,为每个地区营造出鲜明的音乐个性。因此,配乐中既有欧洲的长笛、手摇风琴与各种弦乐器,也有印度的班苏里笛与打击乐,还少不了中国的琵琶、古筝与笛子。

MUSIC EXTRACTS… 

问候!我是「丝绸与白银」的代码负责人 NGAndersson,今天来和大家聊聊模组制作!

贸易

贸易是「丝绸与白银」中规模最大的新系统,而它几乎全部由数据构成。商品、品类、通行费等级与贸易任务都是数据库,你可以从自己的文件中向其中添加内容。

一种贸易商品只需寥寥几行。示例:

[c]trade_good_silk = {[/c]

[c]    base_price = 0.32[/c]

[c]    is_basic = yes[/c]

[c]    origin = { 9215 2200 } # eastern map edge[/c]

[c]}[/c]

[c]base_price [/c]会同时喂给买入价与卖出价。[c]is_basic = yes[/c] 用于标记日用品,分配路线会自动运输这类商品。[c]origin[/c] 是该商品在概念上发源的地区(可选),设置后,货栈间便不能朝该发源点方向进行贸易。之所以这样设计,是为了更可靠地引导来自东方的商品流向更西方的市场。

商品可在何处生产,则按伯爵领在 [c]common/trade/county_potential_trade_goods[/c] 中设定:

[c]trade_good_silk = { counties = { c_shimosa c_yangju c_jiangning ... } }[/c]

品类与专长

商品按品类归组。带 [c]need = yes[/c] 的品类,是建筑可以提出需求的品类。再给它加上等级,它就会变成一条专长轨迹——头衔通过交易该品类来升级。

[c]trade_category_luxury_items = {[/c]

[c]    need = yes[/c]

[c]    color = { 0.60 0.5 0.83 1 }[/c]

[c]    trade_goods = {[/c]

[c]        trade_good_ceramics[/c]

[c]        trade_good_glass[/c]

[c]        trade_good_jewelry[/c]

[c]        trade_good_lacquerware[/c]

[c]        trade_good_silk[/c]

[c]    }[/c]

[c]    per_level_interval = {[/c]

[c]        trade_category_luxury_items_sell_price_mult = 0.0002[/c]

[c]    }[/c]

[c]    milestone_interval = {[/c]

[c]        every_level = 10[/c]

[c]        domicile_monthly_prestige_add = 0.06[/c]

[c]    }[/c]

[c]    levels = { ... }[/c]

[c]}[/c]

生产与价格,不过是些修正

没有需要另行学习的独立生产系统。游戏会为每种商品和品类生成一大堆不同的修正,生产与价格则来自你把这些修正放在哪里:

  • [c]_production_add, _production_mult and _production_flat[/c]

  • [c]_buy_price_add, _buy_price_mult, _sell_price_add and _sell_price_mult[/c]

  • 每个品类也有一套同样的组合,例如 [c]trade_category_luxury_items_sell_price_mult[/c]

例如,一座丝织园就是一座带生产修正的普通建筑:

[c]minor_silk_plantation_1 = {[/c]

[c]    can_construct_potential = {[/c]

[c]        county = { has_potential_for_trade_good = trade_good_type:trade_good_silk }[/c]

[c]    }[/c]

[c]    province_modifier = {[/c]

[c]        trade_good_silk_production_add = minor_silk_output_1[/c]

[c]    }[/c]

[c]}[/c]

你可以把这些修正放在许多地方,例如地形也能影响价格。比如平原带有[c]trade_good_grain_buy_price_mult[/c],因此在小麦主产区购买谷物会更便宜。

需求

建筑通过 [c]trade_good_need[/c]消耗商品。一项需求指定具体的商品或品类及数量,并在满足期间提供其修正:

[c]trade_good_need = {[/c]

[c]    trade_good_category = trade_category_alcohol[/c]

[c]    amount = basic_resource_need[/c]

[c]    can_be_filled_multiple_times = 2[/c]

[c]    not_rite_parameter = alcohol_forbidden[/c]

[c]    modifiers = {[/c]

[c]        province_modifier = {[/c]

[c]            monthly_commerce_tax = normal_market_building_tax_tier_1[/c]

[c]        }[/c]

[c]    }[/c]

[c]}[/c]

[c]not_rite_parameter[/c] 意味着禁酒的信仰根本没有这项需求。(没错,你没法把葡萄酒卖给他们,一点门儿都没有。)

每个法理公国都有一座市场,位于其 [c]market_capital[/c] 指定的男爵领。例如,约克的市场中心便是[c]market_capital = b_pockington[/c].

通行费等级位于 [c]common/trade/trade_market_toll_levels[/c]。每个等级都会设定 [c]route_owner_toll_rate[/c], [c]market_owner_toll_rate[/c] 和一个 [c]ai_market_owner_desire[/c] 脚本值。等级在数据库中的位置就是它的档位,因此在新文件中添加的等级会成为最高档。

用脚本操纵贸易

新增了 [c]trade_market[/c]、[c]trade_route[/c] 与 [c]trade_monopoly[/c] 作用域,以及 [c]trade_good_type[/c] 与 [c]trade_good_category[/c] 两个数据库作用域。市场、路线与垄断可以持有变量,市场与路线还能接受限时修正。

[c]barony.trade_market = {[/c]

[c]    random_trade_good_with_surplus = { save_scope_as = trade_good }[/c]

[c]    add_trade_good_price_modifier = {[/c]

[c]        type = buy_add[/c]

[c]        trade_good_type = scope:trade_good[/c]

[c]        value = 0.01[/c]

[c]        years = 5[/c]

[c]    }[/c]

[c]    every_character_in_market = { ... }[/c]

[c]}[/c]

与贸易相关的 [c]on_action[/c] 动作也为数不少:

[c]on_action[/c]

Root

Saved scopes

[c]on_trade_route_created[/c]

路线所有者

[c]trade_route, trader[/c]

[c]on_trade_route_edited[/c]

路线所有者

[c]trade_route, trader, primary_good_changed[/c]

[c]on_trade_route_destroyed[/c]

路线

[c]destroyer[/c]

[c]on_trader_assigned[/c]

商人

[c]on_trade_good_category_level_up / _down[/c]

头衔

[c]trade_good_category_type[/c]

[c]on_trade_monopoly_invalidated[/c]

垄断

[c]on_market_changed_toll_level[/c]

市场

[c]new_toll_level, old_toll_level[/c]

[c]on_toll_exception_changed / _ended[/c]

市场

[c]new_toll_level, old_toll_level, character[/c]

添加你自己的贸易商品
  1. 在 [c]common/trade/trade_good_types[/c] 中定义该商品。

  2. 在 [c]common/trade/county_potential_trade_goods[/c] 中列出可生产它的伯爵领。

  3. 添加它的四个价格静态修正:[c]`_buy_price_add_modifier`、`_buy_price_mult_modifier`、`_sell_price_add_modifier`[/c] 与 [c]`_sell_price_mult_modifier`[/c]。价格效果会查找这些修正,因此每种商品都需要它们。为省事起见,可以从 [c]common/modifiers/trade_good_price_modifiers.txt[/c] 复制丝绸的那一套。

  4. 把它放进某个需求品类。

  5. 给某样东西加上生产,例如一座带 [c]has_potential_for_trade_good[/c] 与 [c]`_production_add`[/c] 的建筑。

  6. 制作一座需要你的新贸易商品(或你放置它的那个品类)的建筑。

  7. 再给它添点艺术调料:[c]gfx/interface/icons/trade/trade_goods/`.dds`[/c] 与 [c]`_small.dds`[/c]。

  8. 为 [c]``、`_desc`[/c] 及其生成的修正添加本地化。

大功告成!现在,你可以交易寓言故事、武器、卫生纸,或是任何你想加进游戏的东西。

地产与经济改动

地产不再是建筑的一张平铺清单。地产由区划构成,建筑则安身于区划之内。这十有八九会让现有的建筑模组失效(详见下文「更新你的模组」),但也会给你大得多的施展空间。

每个区划都有一条主建筑链(随区划一同自动建造),以及一份可放入区划其余槽位的建筑清单。

地产、区划与建筑

如今,一种地产类型会指定一个主区划,以及可放入其常规槽位的各区划:

[c]castle_holding = {[/c]

[c]    primary_district = castle_holding_district[/c]

[c]    districts = {[/c]

[c]        manor_houses_district[/c]

[c]        religious_community_district[/c]

[c]        market_district[/c]

[c]        guild_district[/c]

[c]        port_district[/c]

[c]        ...[/c]

[c]    }[/c]

[c]}[/c]

区划是 [c]common/districts[/c] 中的一个新数据库。每个区划都有主建筑与一份可放入其中的建筑清单:

[c]siege_works_district = {[/c]

[c]    primary_building = pb_siege_works_01[/c]

[c]    background = {[/c]

[c]        reference = "gfx/interface/illustrations/decisions/decision_siege_warfare.dds"[/c]

[c]    }[/c]

[c]    can_be_replaced = yes[/c]

[c]    unlocked_by = military_district[/c]

[c]    can_construct_showing_failures_only = {[/c]

[c]        culture = { has_innovation = innovation_catapult }[/c]

[c]    }[/c]

[c]    buildings = {[/c]

[c]        workers_camps_1[/c]

[c]        munitions_depot_1[/c]

[c]        repair_yards_1[/c]

[c]        war_engine_works_1[/c]

[c]        ...[/c]

[c]    }[/c]

[c]}[/c]

新的 [c]building_slots_for_host_district[/c] 修正会为区划增加建筑槽位数。

建筑还可以要求区划达到一定等级才能建造:

[c]guild_butchery_2 = {[/c]

[c]    construction_time = standard_construction_time[/c]

[c]    district_level_requirement = 2[/c]

[c]    ...[/c]

[c]}[/c]

槽位类型

每个区划都有一种类型:[c]regular[/c], [c]holding[/c], [c]duchy_capital[/c], [c]special, great_district[/c], [c]resource[/c], [c]trade_post[/c] 或[c]entrepot[/c]。

  • 常规槽位:每个男爵领默认拥有一个([c]defines[/c] 中的 [c]BARONY_DISTRICT_SLOTS[/c] 与 [c]COUNTY_DISTRICT_SLOTS[/c]),再加上新的 [c]district_slot_add[/c] 修正所提供的数量。

  • 公国首府、资源与贸易站槽位会自动提供。

  • 特殊、大区划与货栈槽位则按省份设定,可在历史中设置,也可用 [c]add_special_district_slot[/c] 等效果添加。

下面是一个公国首府区划,限天朝政体可用:

[c]governance_district = {[/c]

[c]    primary_building = governance_district_01[/c]

[c]    type = duchy_capital[/c]

[c]    can_be_replaced = yes[/c]

[c]    is_enabled = {[/c]

[c]        scope:holder = { government_has_flag = government_is_celestial }[/c]

[c]        can_have_duchy_capital_building_trigger = yes[/c]

[c]    }[/c]

[c]    buildings = {[/c]

[c]        examination_hall_01[/c]

[c]        celestial_great_barracks_01[/c]

[c]        state_granary_01[/c]

[c]        ...[/c]

[c]    }[/c]

[c]}[/c]

省份历史

省份历史通过 districts 区块来安置区划:

[c]867.1.1 = {[/c]

[c]    special_district_slot = holy_site_great_mosque_of_cordoba_01_district[/c]

[c]    districts = {[/c]

[c]        district = {[/c]

[c]            type = grain_district[/c]

[c]            level = 2[/c]

[c]        }[/c]

[c]        district = {[/c]

[c]            type = walls_district[/c]

[c]            level = 1[/c]

[c]            buildings = {[/c]

[c]                city_watch_1[/c]

[c]            }[/c]

[c]        }[/c]

[c]    }[/c]

[c]}[/c]

用脚本操纵区划与建筑

区划与单个建筑如今都是作用域了!

  • 从省份出发的链接:[c]holding_district[/c]、[c]special_district[/c]、[c]great_district[/c]、[c]resource_district[/c]、[c]duchy_capital_district[/c]、[c]trade_post_district[/c] 与 [c]entrepot_district[/c]。

  • 从区划或建筑出发的链接:[c]district_type[/c]、[c]district_province[/c]、[c]district_owning_title[/c]、[c]building_type[/c] 与 [c]building_district[/c]。

  • 列表:[c]built_regular_district[/c]、[c]built_buildings[/c] 与 [c]district_building[/c],各自具备常见的 [c]any_[/c]、[c]every_[/c]、[c]random_[/c] 与 [c]ordered_[/c] 形式。

  • 触发条件:[c]province_has_district[/c]、[c]county_has_district[/c]、[c]has_free_district_slot[/c]、[c]num_districts[/c],以及在区划作用域中的 [c]has_free_building_slot[/c] 与 [c]free_building_slots[/c]。

  • 效果:add_regular_district、[c]remove_district[/c]、[c]upgrade_this_building[/c]、[c]downgrade_this_building[/c]、[c]remove_this_building[/c]、[c]build_or_upgrade_random_district_building[/c] 与 [c]set_as_duchy_capital = yes[/c]。

  • 移除高级槽位:[c]remove_special_district_slot[/c]、[c]remove_great_district_slot[/c] 与 [c]remove_entrepot_district_slot[/c],均需 [c]= yes[/c]。

例如,下面这个触发条件会在村庄、市场或港口区划中寻找还能再容纳一座建筑的:

[c]any_built_regular_district = {[/c]

[c]    OR = {[/c]

[c]        district_type = district_type:villages_district[/c]

[c]        district_type = district_type:market_district[/c]

[c]        district_type = district_type:port_district[/c]

[c]    }[/c]

[c]    free_building_slots [/c]>[c] 0[/c]

[c]}[/c]

道路

条条大路通罗马——除非你打个模组,把它们改成通向斯德哥尔摩!

风情十足的贸易商队与规划好的贸易路线都会沿路而行;随着贸易的往来,道路会随时间的推移从 0 级一路升至 5 级。

定义道路

道路定义在 [c]common/roads/road_types[/c] 中。一条道路有起始等级与一份按序排列的省份列表,且两端都必须是市场中心:

[c]albi_to_toulouse_road = {[/c]

[c]    tier = 1[/c]

[c]    provinces = {[/c]

[c]        2015 #MONTPELLIER[/c]

[c]        2218 #CEVENNES[/c]

[c]        2219 #LODEVE[/c]

[c]        2215 #ALBI[/c]

[c]        2214 #TOULOUSE[/c]

[c]    }[/c]

[c]}[/c]

海路亦复如是,只是带 [c]spline_asset_id = 1[/c],且沿途为海域:

[c]bal_solbin_to_myeongju_sea_road = {[/c]

[c]    tier = 0[/c]

[c]    spline_asset_id = 1[/c]

[c]    provinces = {[/c]

[c]        11913 #EMAN_HUAZHOU[/c]

[c]        12583 #SEA_JAPAN_BASIN[/c]

[c]        12584 #SEA_JAPAN_BASIN[/c]

[c]        12585 #SEA_JAPAN_BASIN[/c]

[c]        9858 #GORYEO_DONGGYE_MYEONGJU[/c]

[c]    }[/c]

[c]}[/c]

等级与道路修正

道路会随着贸易路线的使用而逐级提升;若连续 24 个月无人通行,则下降一级。每级所需的时间与贸易路线条数,在 [c]NRoad[/c] 的 [c]defines[/c] 中设定。

每一级提供什么,则在 [c]common/roads/road_modifiers[/c] 中设定。每一级都能提供不少东西。准确地说,是五样,且只对陆路生效:

  • 道路自身的修正

  • 途经省份的 [c]province_modifier[/c]

  • 沿路而行的贸易路线的 [c]trade_route_modifier[/c]

  • 沿路旅行的角色的 [c]travel_modifier[/c]

  • 沿路行军的军队的 [c]character_modifier[/c](其中只有 [c]movement_speed[/c] 真正起作用)

[c]road_modifiers_default = {[/c]

[c]    tier_3 = {[/c]

[c]        province_modifier = {[/c]

[c]            monthly_commerce_tax = 0.3[/c]

[c]            travel_danger = -6[/c]

[c]            province_size_baseline_add = 10[/c]

[c]        }[/c]

[c]        trade_route_modifier = {[/c]

[c]            trade_route_length_mult = 0.15[/c]

[c]        }[/c]

[c]        travel_modifier = { travel_speed_mult = 0.15 }[/c]

[c]        character_modifier = { movement_speed = 0.15 }[/c]

[c]    }[/c]

[c]}[/c]

[c]road_modifiers_default[/c] 默认覆盖所有道路,游戏也要求它必须存在。不过,如果你愿意,也可以给特定道路专属加成:新增一个带 [c]type = { your_road_key ... }[/c] 的条目,这些道路键便会改用这套修正。一座省份只会获得途经它的最高等级道路的修正。

用脚本操纵道路

道路同样是作用域,还附带了一些灵巧的脚本补充:

  • 列表:[c]road_province[/c](从道路出发)、[c]road_on_route[/c](从贸易路线出发)与 [c]road_in_province[/c](从省份出发),各自具备常见的 [c]any_[/c]、[c]every_[/c]、[c]random_[/c] 与 [c]ordered_[/c] 形式。

  • 触发条件与效果:[c]road_tier[/c] 与 [c]set_road_tier[/c]。

  • 限时修正:[c]add_road_modifier[/c]、[c]remove_road_modifier[/c]、[c]has_road_modifier[/c] 及其同类。

示例:

[c]every_road_in_province = {[/c]

[c]    limit = { road_tier [/c]<[c] 3 }[/c]

[c]    set_road_tier = 3[/c]

[c]}[/c]

此外还有两个面向军队的新修正:[c]province_movement_speed[/c] 与 [c]county_movement_speed[/c]。无论有没有道路,它们都会为该省份或伯爵领内的任何陆军提速。

道路的外观

道路的外观来自 [c]gfx/map/spline_network/spline_styles[/c],按道路所经地形挑选:

[c]dirtroad_sand = {[/c]

[c]    id = 2[/c]

[c]    terrain_types = { desert desert_mountains oasis }[/c]

[c]    spline = { ... }[/c]

[c]    effect = {[/c]

[c]        shaderfile = "gfx/FX/spline_network_shaders/road_mulpass.shader"[/c]

[c]        texture_set = {[/c]

[c]            texture = { file = "gfx/map/spline_network/variants/road_sand_diffuse.dds" }[/c]

[c]            ...[/c]

[c]        }[/c]

[c]    }[/c]

[c]    connections = none[/c]

[c]}[/c]

新增的样式文件是纯增量式的。其贴图必须与默认土路的格式一致;按地形列出的样式需要 [c]connections = none[/c];id 则应保持紧凑。每级的宽度由 [c]ROAD_TIER_WIDTH[/c] 图形 [c]defines[/c] 决定,0 级道路则完全不会绘制。

沿路移动的风情商队与船舶,定义在 [c]gfx/map/spline_network/trade_route_entities[/c] 中:

[c]trade_caravan_basic = {[/c]

[c]    valid_spline_types = { "dirtroad" }[/c]

[c]    speed = 0.6[/c]

[c]    max_count = 50[/c]

[c]    possible = {[/c]

[c]        always = yes[/c]

[c]    }[/c]

[c]    tags = {[/c]

[c]        chinese = {[/c]

[c]            trigger = {[/c]

[c]                culture = { has_clothing_gfx = chinese_clothing_gfx }[/c]

[c]            }[/c]

[c]        }[/c]

[c]        ...[/c]

[c]    }[/c]

[c]    ...[/c]

[c]}[/c]

[c]possible[/c] 会以路线所有者为对象进行判定。

在你自己的地图上修路

如果你制作地图模组或全面转换,这部分是为你准备的。

  • 道路数据绝不会自动生成。你需要自己编写 [c]road_types[/c],且两端都必须落在你的市场中心上。没有道路,贸易路线就无法连接市场。

  • 生成形状。以 [c]-debug_mode[/c] 启动游戏,在控制台中运行 [c]SplineNetwork.AppendAssets[/c];在游戏运行时编辑 [c]road_types[/c] 文件也能达到同样效果。它会生成缺失的形状,并把整个网络保存到你的文档(Documents)文件夹。

    • 将该文件移入你的模组,路径保持一致(不要留下副本)。因为只要它在那里,就会覆盖游戏的样条网络,即使在游戏更新后也是如此。

    • 对于全面转换,请先运行 [c]SplineNetwork.ClearAssets[/c] confirm,以免你的地图复用的省份 ID 仍保留基础游戏的形状。

  • 手工微调。如需调整形状,以 [c]-mapeditor[/c] 启动游戏,用样条工具调整道路并保存。这会写出一份新的 [c]spline_network.splnet[/c],你可以随模组打包分发。

  • 每张地图一个文件。.splnet 是单一的二进制文件,因此两个地图模组无法合并各自的文件。

  • 道路形状是自动生成的。每段道路的形状来自 [c]gfx/map/spline_network/spline_network.splnet[/c]。当你运行地图编辑器并调整道路后,它会为你保存一份新的 [c]spline_network.splnet[/c] 文件,可随模组打包分发。

  • 烘焙与手工微调。以 [c]-debug_mode[/c] 启动游戏,在控制台中运行 [c]SplineNetwork.AppendAssets[/c]。它会向你的用户目录写入一份新的 .splnet,你再将其移入模组。对于全面转换,请先运行 [c]SplineNetwork.ClearAssets[/c] confirm,以免你的道路从原版的坐标开始。

其他琐碎改动

文化与礼仪修正上的 not_parameter。特质、宫廷职位与生活方式技能原本可以在文化或礼制拥有某个参数时提供修正;现在,它们也可以在文化或礼制没有该参数时提供修正:

[c]culture_modifier = {[/c]

[c]    diplomacy = 5[/c]

[c]    not_parameter = can_blind_prisoners[/c]

[c]}[/c]

按政体设定 AI 频率。角色互动如今可以为某一种政体类型设定不同的 AI 频率,而无需你再复制一份互动:

[c]ai_frequency_by_tier_government_override = {[/c]

[c]    government = merchant_government[/c]

[c]    barony = 0[/c]

[c]    county = 36[/c]

[c]    duchy = 0[/c]

[c]    kingdom = 0[/c]

[c]    empire = 0[/c]

[c]    hegemony = 0[/c]

[c]}[/c]

地区修正。地理区域如今可以携带 [c]province_modifier[/c](应用于区域内的每个省份)与 [c]county_modifier[/c](应用于首府位于该区域的每个伯爵领):

[c]province_modifier = {[/c]

[c]    supply_limit = 500[/c]

[c]}[/c]

[c]county_modifier = {[/c]

[c]    popular_opinion_add = 50[/c]

[c]}[/c]

角色历史中的婚约。为此再也无需 [c]effect = { }[/c] 代码块了。历史如今支持 [c]create_betrothal[/c]、[c]create_betrothal_matrilineal[/c] 与 [c]break_betrothal[/c],并在加载时校验:

[c]1178.1.1 = {[/c]

[c]    create_betrothal = 212044[/c]

[c]}[/c]

敌对局势组。一个局势参与组如今可以指定其敌对组,以及双方之间的好感度惩罚。新的 [c]is_in_opposite_participant_group[/c] 触发条件会对此进行判定:

[c]opposite_participant_group = {[/c]

[c]    guelph_member guelph_leader[/c]

[c]}[/c]

[c]opposite_participant_group_opinion = -30[/c]

自动升级的家族抱负。启用 [c]automatic_levels = yes[/c] 后,抱负会随需求的满足或失去而自行升降,且升级无需任何花费。

以头衔为基础的联盟。[c]confederation_base[/c] 取代了 [c]house_based_confederation[/c],如今可以是角色、家族或头衔。贸易联盟采用头衔制,因此其成员是头衔而非角色:

[c]trade_league = {[/c]

[c]    diplomatic_icon_frame_index = 6[/c]

[c]    confederation_base = title[/c]

[c]    ...[/c]

[c]}[/c]

现成的决议选择器。唯主是依的动态决议选项如今新增了四个控件:[c]decision_view_widget_select_building[/c]、[c]_trade_market[/c]、[c]_trade_route[/c] 与 [c]_trade_good_category[/c]。决议可以直接让玩家从中挑选其一,无需任何新的 GUI。

更新你的模组

《丝绸与白银》几乎彻底重做了你的模组所依赖的经济系统,因此有所损坏在所难免。下面是一些或许能帮上忙的信息,涉及被重命名或以其他方式改动的部分。

发展度改为繁荣度

Old

New

[c]development_level[/c], [c]development_rate[/c], [c]development_towards_level_increase[/c]

[c]prosperity_level[/c], [c]prosperity_rate[/c], [c]prosperity_towards_level_increase[/c]

[c]change_development_level[/c], [c]change_development_progress[/c]

[c]change_prosperity_level[/c], [c]change_prosperity_progress[/c]

[c]development_growth[/c], [c]development_decline[/c] 修正(及 [c]_factor[/c])

[c]prosperity_growth[/c], [c]prosperity_decline[/c](及 [c]_factor[/c])

<[c]terrain or region[/c]>[c]_development_growth[/c]

<[c]terrain or region[/c]>[c]_prosperity_growth[/c]

[c]Government affected_by_development[/c]

[c]affected_by_prosperity[/c]

[c]Region generate_modifiers[/c]

[c]generate_prosperity_modifiers[/c]

[c]Map mode county_development[/c]

[c]county_prosperity[/c]

伯爵领好感度改为民众好感度

Old

New

[c]county_opinion[/c], [c]county_holder_opinion[/c]

[c]popular_opinion[/c], [c]base_popular_opinion[/c]

*[c]county_opinion[/c]* 修正

*[c]popular_opinion[/c]* 修正

[c]monthly_county_control_growth[/c] and [c]_decline[/c],作触发条件与修正

已移除。控制力如今趋向基准值:使用 [c]county_control_baseline[/c]、[c]control_baseline_add[/c] 与 [c]monthly_control_change[/c]

税收拆分为多个类别

税收如今分为十一个类别:通用、农业、采矿、宗教、城市、工匠、海事、部落、公民、林地与商业。每个类别都有省份级的 [c]monthly__tax[/c], 地产级的 [c]_tax_mult[/c] 与角色级的 [c]monthly__income[/c].

Old

New

[c]tax_mult[/c]

[c]all_tax_mult[/c],或仅针对通用类别的 [c]generic_tax_mult[/c]

[c]tax_per_piety_level[/c]

[c]generic_tax_per_piety_level[/c]

[c]monthly_income[/c] 作为省份修正

[c]monthly_generic_tax[/c],或其他类别

[c]monthly_income[/c] 作为省份触发条件

[c]total_monthly_tax_income[/c]

建筑如今安身于区划之中

如果你的模组会添加或修改建筑,这就是最重要的一条。

  • 地产:[c]primary_building[/c] 与 [c]buildings[/c] 被 [c]primary_district[/c] 与 [c]districts[/c] 取代。

  • 建筑类型不复存在。建筑从列出它的区划中获得槽位。特殊建筑如今需要一个环绕它的、type = special 的小区划;[c]rebuild_cost[/c] 与 [c]can_rebuild[/c] 则从大型建筑移到了大区划上。

  • 本地化:建筑的名称如今是 [c][/c] 而非 [c]building_[/c],其描述是 [c]_desc[/c] 而非[c]building__desc[/c]。

  • 作用域:[c]add_building[/c]、[c]remove_building[/c] 及其他建筑效果如今在区划作用域而非省份作用域中运行。

Old

New

[c]add_special_building[/c], [c]add_special_building_slot[/c]

[c]add_special_district[/c], [c]add_special_district_slot[/c]

[c]add_great_building[/c], [c]set_great_building[/c] (以及[c]_slot[/c])

[c]add_great_district[/c], [c]set_great_district[/c] (以及[c]_slot[/c])

[c]ruin_great_building[/c], [c]rebuild_great_building[/c]

[c]ruin_great_district[/c], [c]rebuild_great_district[/c]

[c]has_special_building[/c], [c]has_great_building[/c] (and _slot)

[c]has_special_district[/c], [c]has_great_district[/c] (以及[c]_slot[/c])

[c]has_ruined_great_building[/c]

[c]has_ruined_great_district[/c]

[c]has_ongoing_construction[/c]

[c]has_ongoing_holding_construction[/c] or [c]has_ongoing_trade_post_construction[/c]

[c]has_free_building_slot[/c] 在省份作用域中

[c]has_free_district_slot[/c]。如今 [c]has_free_building_slot[/c] 在区划作用域中运行

[c]special_building_province list[/c]

[c]special_district_province[/c]

[c]on_great_building_rebuilt[/c]

[c]on_great_district_rebuilt[/c]

[c]History special_building_slot[/c]

[c]special_district_slot[/c]

历史建筑、[c]special_building[/c]、[c]duchy_capital_building[/c]

[c]districts = { district = { ... } }[/c]

其他重命名

Old

New

触发条件 [c]house_power[/c]

[c]house_power_score[/c]

联盟 house_based_confederation

[c]confederation_base[/c]

政体 [c]administrative_title_maa_setup[/c]

[c]title_maa_setup[/c],且不再有默认值

脚本规则 [c]approves_of_succession_law_change[/c]

[c]approves_of_law_change[/c]

脚本触发条件 [c]is_governor[/c]、脚本值 [c]governor_efficiency[/c]

出于性能原因已内置到代码中。你的脚本仍可使用它们,但重新定义过它们的模组应改用新的 [c]governor_efficiency_[/c]* 修正

UGCx 团队的更新

大家好,又见面了!我是 UGC 工程师 CrimsonKepler,来汇报一些与丝绸与白银新机制无关的模组改进。UGCx 团队一直在持续推进模组改进工作,并与创作者计划密切合作。从唯主是依发售至今,我们实现了一些被长期呼吁的改进,它们都会随丝绸与白银的免费更新一并上线。

许多原本只能使用硬编码值的触发条件与效果,如今已更新为也能接受作用域。用于创建带住所的动态头衔的效果(三个特定效果 [c]create_nomad_title[/c]、[c]create_adventurer_title[/c]、[c]give_noble_family_title[/c],以及通用效果 [c]create_domicile_title[/c])如今可以接受政体类型作用域。角色上的资质比较触发条件如今接受宫廷职位类型作用域,无需再遍历所有类型来寻找与已保存作用域匹配的那一个。[c]start_war[/c]、[c]ai_start_best_war[/c] 与 [c]has_cb_on[/c] 已更新为支持作用域化的宣战理由。除了上述例子与另一些如今可接受作用域的效果和触发条件外,作用域本身也得到扩充,新增了兵士类型这一可作用域化类型,使 [c]spawn_army[/c] 与 [c]create_maa_regiment[/c] 等效果无需硬编码类型即可使用。

如前所述,新的道路机制自然带来了道路的移动速度修正。不过,我们还新增了两种修正类型——[c]province_movement_speed[/c] 与 [c]county_movement_speed[/c]——让模组得以让非道路的事物(例如建筑与限时修正)也能改变某个男爵领或整个伯爵领内的移动速度。在修正这个话题上,我们还新增了显示与比较任意角色任意修正类型总和值的能力,对应的是 [c]modifier_value[/c] 比较触发条件与用于 GUI 的 [c]GetModiferValue[/c] 数据函数。也就是说,模组如今对修正的把玩空间,将远超原版游戏中的任何地方。

不过,最大的改进大概要数变量映射(Variable Maps)的加入——这一特性最初为《欧陆风云 V》打造,随后移植回了《维多利亚 3》。如今,我们也在 CK3 上完成了同样的工作,尽管游戏的引擎版本更为老旧。它允许你在作用域(或全局)上保存和使用键值对映射,让比简单变量与列表所能表达的更复杂的关系得以被写入和读取。

我们还在游戏的诸多领域做了更多改动,以提升它们的模组友好度。不过,为了不让这篇开发日志变得更长,在各位拿到更新日志之前,这些改动就暂且留个悬念吧。

【来源:steam】

我想了解这个游戏:
官网 专区 下载 礼包
尊敬的用户也许你已经注意到了我们文章页面进行了大规模的改造和重构,可以点击提交您的满意度或者想法我们会持续改进,给您提供更好的浏览体验! 一键参与
17173APP

扫描下载APP

游戏礼包一键领取

17173微信公众号

扫描关注公众号

每天更新