技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

项目分析:anthonycaccese/art-book-next-es

项目背景与痛点

在这个以数字内容为主的娱乐时代,许多人依旧怀念实物游戏机与主机的怀旧风情。EmulationStation 作为游戏机模拟器的界面程序,通常都需要精美的主题设计以增强沉浸体验。而 anthonycaccese/art-book-next-es 项目可谓是主题设计领域中的一位佼佼者。其灵感来源于咖啡桌书精致排版,以优雅的艺术风格为模拟器开发了一种全新的视觉语言。它颠覆了传统模拟器界面的繁杂印象,带来一种清新脱俗的浏览体验。

相比于单调硬朗的传统界面,该项目通过巧妙设计,实现了丰富细腻的视觉展现。考虑到用户的浏览习惯,咖啡桌书风的整体布局不仅增强了用户的参与感,更适配了现代审美标准。这些设计无疑弥补了众多竞品的短板,符合对于模拟器界面美学的更高追求。

技术核心揭秘

EmulationStation 项目通常是采用 CSS 和 HTML 脚本进行渲染开发的,但该项目并不遵循惯例,而是使用了更为优雅的方式来实现动态和静态元素的设计。其 UI 极具艺术性和阅读舒适性,这背后必然有着关键的技术支撑。

anthonycaccese/art-book-next-es 主题采用了一种令人赞叹的纯粹艺术化视觉渲染方式。在布局方面,项目构建了多层次的模块,采用灵活的栅格系统来精准控制各个元素的位置与大小。由于 EmulationStation 采用纯 CSS 驱动主题渲染,该项目为了在保持优雅外观的同时避免过度复杂的配置,必然采用了一定的抽象设计模式,具体设计如下:

graph TD A[用户操作] --> B{"主题渲染"} B -->|"选择入口"| C[加载 CSS 模板] B -->|"选择设置"| D[应用自定义样式] C --> E[显示页面] D --> F[优化显示]

通过插件化管理和个性化样式配置,该主题显著提升了界面渲染的灵活性,同时保持了良好的用户体验。

功能亮点与差异

与其竞品相比,anthonycaccese/art-book-next-es 的独特性在于其具有很高自定义空间和丰富的视觉化细节。在保持优雅简洁的整体风格基础上,项目提供了多个可选主题包,用户完全可以通过简单的配置实现个性化调整。配合 EmulationStation 的多个插件支持,不仅可以改善视觉效果,还可以增强交互体验。

应用场景与落地建议

该项目非常适合追求视觉美感的模拟器用户群体,尤其是热衷于复古风格游戏机模拟器和经典游戏的人群。使用该主题时,关注以下几点可能带来最佳体验:

  1. 确保正确安装并配置了所有依赖。
  2. 根据个人喜好,适当调整主题配置文件。
  3. 考虑到该主题较为复杂,建议使用速度较快的存储设备以保证渲染流畅。

综合评价

优势

  1. 极高的美学价值:项目设计干净利落,充分体现现代审美标准,为用户带来了全新的视觉体验。
  2. 丰富的可配置性:支持高度自定义的设计让用户可以根据需要快速调整界面风格,增加了项目的灵活性。
  3. 用户友好:该主题极易上手,几乎无需深入了解即可使用。

不足

  1. 技术复杂性:对于有一定设计需求同时不熟悉相关技术的用户来说,这部分自定义配置可能会稍微繁琐。
  2. 性能要求:高绘制需求可能需要高性能设备支持,才能够保证流畅显示。

综上所述,anthonycaccese/art-book-next-es 是一款极具美学和实用价值的 EmulationStation 主题,具备细致的艺术风格,其设计既优雅又灵活,完美适配于追求视觉美感与复古趣味的游戏模拟爱好者。

关于

GitHub 原始描述(英文)

A simple theme for EmulationStation based around the look of a coffee table book

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
262
价值分
83
活跃状态
活跃

README

Art Book Next for EmulationStation

A simple theme based on the style of a coffee table book for distributions that use this fork of EmulationStation. Specifically Batocera (v40 and above), Knulli, RockNIX and RetroBat

Preview

system view menu
gamelist-view-1 gamelist-view-2

Theme Configuration

The following options can be changed directly from the main menu under User Interface Settings > Theme Configuration

Setting Description Options
Distribution Used to define which folder to look in for Theme Customization files. Batocera/Knulli, RockNIX, RetroBat
Aspect Ratio Enables you to select the correct aspect ratio for your screen. This will automatically set itself so you should not need to change it but if the theme layout looks odd or spacing looks incorrect you can use this setting to make sure the aspect ratio matches your screen. 16:9, 16:10, 4:3, 3:2, 1:1
System Artwork Defines the set of artwork that is displayed on the system view Default, Noir, Custom, Custom (Fullscreen)
System Logos Defines the logo set used on all views Default, Custom
Game Artwork Defines the type of artwork used to represent a game. These are sourced from the the selections you make in the scraper menu. Image will display the image you selected to scrape for Image Source. Image (Cropped) will display that same image zoomed in to fill the screen. Boxart will display the image you selected to scrape for Box Source Image, Image (Cropped), Boxart, Logo
Game Metadata Sets if metadata (e.g. description, release date, etc…) should be displayed for a game On, Off
Fonts Define the fonts used throughout the theme. Default, Custom
Font Size Set the size for text elements throughout the theme. Default, Small, Large, Extra Large
Color Scheme Sets the color scheme that is used for the theme. There is a set of prebuilt color schemes that you can select and an option to supply your custom color scheme (selected by choosing custom). You can see details on customizations below under Theme Customizations. Default, Light, Steam OS, SNES, Famicom, OLED, Custom
Splash Screen Toggles an optional custom splash screen which will be displayed when EmulationStation is loading and/or scanning for ROMs. Default, Custom

Additional UI Settings

The following EmulationStation settings can also be changed and will update the look of the theme accordingly:

  • User Interface Settings > Show Clock - This will allow you to turn the system clock on or off
  • User Interface Settings > On-Screen Help - This will turn the display of EmulationStation’s help system on or off (the theme’s layout will automatically adapt to the available space)
  • User Interface Settings > Show Battery Status - This will allow you to change what is displayed for the battery status.

Theme Customizations

Art Book Next allows customizations to system artwork and color schemes without the need to edit the source XML. This enables you to change the look of the theme and still retain your changes when the theme is updated.

Start Here

  • Make sure the Distribution setting is set to the correct value for your current OS (e.g. Batocera/Knulli or RetroBat)
  • This value determines the folder where you will add your customizations
    • Batocera/Knulli = /userdata/theme-customizations/art-book-next/
    • RockNIX = /roms/_userdata/theme-customizations/art-book-next/
    • Retrobat = C:\RetroBat\emulationstation\.emulationstation\theme-customizations\art-book-next\
  • Create the folders that match your distribution and then move on to the options below…

Background Art

The artwork used on the system view can be customized with your own images.

For angled artwork:
  • Create your custom artwork using one of the masks i’ve supplied in this theme’s resources directory here. I’ve included a set of masks that should work in all major image editing programs.
  • Export your final images as transparent pngs
  • Create a folder in the path you created above called artwork
  • Upload your images to that folder
  • They can be named:
    • _default.png
    • ${system.theme}.png
    • The theme will look them them up in that order. If a given image is not found in your folder then the the images from the theme will be used as a fallback. This allows you to customize only the images you want and still have images displayed for all systems.
    • _default.png can be used for creating a single image that is used for all systems OR a fallback for systems that you did not create a custom image for (if you don’t want to use the fallback that already exists in the theme)
    • ${system.theme}.png should be named for the system you are looking to override. For example if you wanted to override the artwork for snes you would create an image called snes.png in the artwork folder.
  • Once your images are in place you turn on custom images by changing the System Artwork setting to Custom
For fullscreen artwork:
  • Create a folder in the path you created above called artwork-fullscreen
  • Upload your images to that folder
  • They can be named:
    • _default.png
    • _default.jpg
    • ${system.theme}.png
    • ${system.theme}.jpg
    • The theme will look them them up in that order.
    • _default.png/jpg can be used for creating a single image that is used for all systems OR a fallback for systems that you did not create a custom image for (if you don’t want to use the fallback that already exists in the theme)
    • ${system.theme}.png/jpg should be named for the system you are looking to override. For example if you wanted to override the artwork for snes you would create an image called snes.png or snes.jpg in the artwork folder.
  • Once your images are in place you turn on custom images by changing the System Artwork setting to Custom (Fullscreen)

If you create a set of images that you would like to share with the community please let me know about it here

Splash Screen

  • Upload your image to the folder you created above
  • It can be named:
    • splash.png
    • splash.jpg
  • One your image is in place you turn on your splash screen by changing Splash Screen to Custom

Color Schemes

You can create your own custom color scheme to use for the theme

  • Download this template: https://github.com/anthonycaccese/art-book-next-es/blob/main/resources/customizations/colors.xml
  • Upload it in the path you created above and make sure its called colors.xml
  • Change any values in the template to the colors you prefer.
  • I tried to make the values as self explanatory as possible but if you have questions regarding which property does what please don’t hesitate to ask.
  • After your colors are defined; in theme configuration change Color Scheme to Custom

Logos

System logos can be customized by adding your own images

  • Create a folder in the path you created above called logos
  • Upload your images to that folder
  • They can be named:
    • ${system.theme}.svg
    • ${system.theme}.png
    • The theme will look them them up in that order. If a given image is not found in your folder then the the images from the theme will be used as a fallback. This allows you to customize only the images you want and still have images displayed for all systems.
    • ${system.theme}.svg/png should be named for the system you are looking to override. For example if you wanted to override the logo for snes you would create an image called snes.svg or snes.png in the logos folder.
  • Once your images are in place you turn on custom images by changing the System Logos setting to Custom

Fonts

You can supply your own fonts for each of the font types defined in the theme

  • There are 4 font types:
    • Bold: Used for the Clock, Battery, Gamelist, Game Count, Game Release Date, Game Play Time, Game Playcount, Menu Items
    • Regular: Used for Game Description, Menu Groups
    • Light: Used for Menu Footer
    • Logo: Used for System Names if a logo image does not exist
  • Download this template: https://github.com/anthonycaccese/art-book-next-es/blob/main/resources/customizations/fonts.xml
  • Upload it in the path you created above and make sure its called fonts.xml
  • Create a sub folder in that same path called /fonts and upload your custom font for each type into it
  • Add the filename for each font into the fonts.xml file
  • Once your fonts are in place you turn on custom fonts by changing the Fonts setting to Custom

Additional Notes

Media Scraping:

  • To make game artwork look as good as possible the recommneded settings for the built-in scraper are:
    • Image Source = Screenshot
    • Box Source = Box 2D
    • Logo Source = Wheel

Versions for other ES forks:

  • If you use ES-DE… then the ES-DE version here will work out of the box with that distribution. When used with ES-DE the theme comes with additional support for navigation sound sets.

Acknowledgments

  • Most system logos were sourced and modified from the excellent work done by Dan Patrick here. I modified each to be compatible with EmulationStation’s current SVG support.
  • ChangaOne font is by Eduardo Tunni
  • Auto-Collection Genre background art created by @nautipuss
  • Metadata Icons sourced from FontAwesome
  • The Noir System Artwork set was created and provided by tenlevels with help from f8less and inspired by the artwork from the Epic Noir theme by chicuelo
  • Thank you to GenoCL for the idea of the multi-artwork system view. It got me to think about ES themes in a different way when building it out and it came out awesome.

License

Creative Commons CC-BY-NC-SA - https://creativecommons.org/licenses/by-nc-sa/2.0/ You are free to share and adapt this theme as long as you provide attribution back to me (and the above credits) as well share any updates you make under the same license terms.

Thank you for taking a look at this 😄

评论

暂无评论