#sprite-sheet #gamedev

bin+lib lpcg

基于LPC生成角色精灵图的库

3 个版本 (破坏性更新)

0.3.0 2022年12月13日
0.2.0 2022年12月6日
0.1.0 2022年12月5日

#817游戏开发

AGPL-3.0

405KB
479

lpcg - 解放像素杯生成器

此仓库提供生成基于LPC的角色精灵图的库和二进制文件。

描述

以多个图层标识符作为输入,并输出它们的合并。图层的顺序很重要。

通用用法

全局上,二进制文件或库对象使用如下图层标识符

body::bodies::female::fur_tan head::heads::rabbit::fur_tan

这意味着我们想要合并 body/bodies/female/fur_tan.png 文件,然后是 head/heads/rabbit/fur_tan.png 文件。

可以使用 * 设置随机文件选择,如下所示

body::bodies::female::fur_tan head::heads::rabbit::*

可以提供一个 变体(例如,body::bodies::*(light))。在这种情况下,如果文件夹包含变体图像,则会选择该图像而不是其他文件。

示例

以下带有 light 变体的图层标识符可以生成以下示例

body::bodies::*(light) head::heads::*(light) legs::pantaloons::*(light)

构建 1 :

example 1

构建 2 :

example 2

构建 3 :

example 3

作为Rust库

使用 input::Input 表示图层,并使用 builder::Builder 构建输出图像。

有一个快速示例

use std::path::PathBuf;
use lpcg::{builder::Builder, input::Input};

fn main() -> Result<(), String> {
    let input = match Input::from_str("body::bodies::female::fur_tan head::heads::rabbit::fur_tan").unwrap();
    let image = Builder::new(PathBuf::from("./spritesheets")).build(input).unwrap();
    image.save(&PathBuf::from("./out.png")).unwrap();
}

其中 None 可以是变体,如 Some("light")

作为CLI二进制文件

图像构建示例用法

lpcg-build ./spritesheets "body::bodies::*(light)" "head::heads::*(light)" "legs::pantaloons::*" out.png

添加新的精灵图

spritesheets 仓库文件夹由 Universal-LPC-Spritesheet-Character-Generator 构建,通过使用 import_from_ulpcscg.py 脚本导入图像。

当向 https://github.com/sanderfrenken/Universal-LPC-Spritesheet-Character-Generator 添加新精灵图时,执行 import_from_ulpcscg.py 将按照以下规则添加新精灵图

  • 仅复制832x1344尺寸的 .png 文件
  • 当存在时,仅复制 universal 文件夹内容

CREDITS.txt 将自动更新。

版权信息

本项目附带的所有艺术作品(spritesheets 子目录中的所有图像)均受 GNU GPL 3.0 (文本) 和/或 Creative Commons Attribution-ShareAlike 3.0 (文本) 许可。某些艺术作品也可能在其他许可下可用。

文件 CREDITS.csv 列出了 spritesheets 中每个图像的作者、许可和原始URL链接。 如果您使用此工具生成精灵,则必须为所有作者致谢。您可以以下两种方式之一实现

  • 将整个 CREDITS.csv 文件与您的项目一起分发。
  • 根据您使用的层,生成器将输出使用的精灵表及其致谢到一个文本框中。您也可以在此下载此文本作为csv或txt直接到您的机器。

无论如何,确保此致谢文件可以从您的游戏或应用内部访问,并且用户可以合理地发现它(例如,在“致谢”屏幕上直接显示信息,或提供一个可见的链接)。如果您不希望直接 显示 整个致谢文件,应在致谢屏幕上包含如下声明

精灵:Johannes Sjölund (wulax),Michael Whitlock (bigbeargames),Matthew Krohn (makrohn),Nila122,David Conway Jr. (JaidynReiman),Carlo Enrico Victoria (Nemisys),Thane Brimhall (pennomi),bluecarrot16,Luke Mehl,Benjamin K. Smith (BenCreating),ElizaWy,MuffinElZangano,Durrani,kheftel,Stephen Challener (Redshrike),TheraHedwig,Evert,Pierre Vigier (pvigier),Eliza Wyatt (ElizaWy),Johannes Sj?lund (wulax),Sander Frenken (castelonia),dalonedrau,Lanea Zimmerman (Sharm),laetissima,kirts,Mark Weyer,Joe White,Mandi Paugh,William.Thompsonj,Manuel Riecke (MrBeast),Barbara Riviera,thecilekli,Yamilian,Fabzy,Skorpio,Radomir Dopieralski,Emilio J. Sanchez-Sierra,kcilds/Rocetti/Eredah,Cobra Hubbard (BlueVortexGames),DCSS 作者,Marcel van de Steeg (MadMarcel),DarkwallLKE,Charles Sanchez (CharlesGabriel),Shaun Williams,Tuomo Untinen (reemax),Stafford McIntyre,PlatForge 项目,Tracy,Daniel Eddeland (daneeklu),William.Thomsponj,Joshua Taylor,Zi Ye,AntumDeluge,[email protected],Lori Angela Nagel (jastiv),gr3yh47,pswerlang,XOR,tskaufma,Inboxninja,Dr. Jamgo,LordNeo 作为 OpenGameArt.org 的 Liberated Pixel Cup 项目的一部分提供的精灵:http://opengameart.org/content/lpc-collection 许可:Creative Commons Attribution-ShareAlike 3.0 (CC-BY-SA 3.0) http://creativecommons.org/licenses/by-sa/3.0/ 详细致谢:请参阅 CREDITS.csv 文件

依赖项

~13–21MB
~141K SLoC