{"id":14960590,"url":"https://github.com/olegknyazev/softmask","last_synced_at":"2025-10-24T18:32:12.185Z","repository":{"id":206795891,"uuid":"577378820","full_name":"olegknyazev/SoftMask","owner":"olegknyazev","description":"A plugin for Unity 3D that brings alpha-friendly masking to UI.","archived":false,"fork":false,"pushed_at":"2023-11-20T20:08:23.000Z","size":121120,"stargazers_count":144,"open_issues_count":3,"forks_count":13,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-01-31T03:45:19.646Z","etag":null,"topics":["masking","ugui","ui","unity-plugin","unity3d"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/olegknyazev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-12T15:52:55.000Z","updated_at":"2025-01-27T07:43:14.000Z","dependencies_parsed_at":"2024-09-24T13:49:02.134Z","dependency_job_id":null,"html_url":"https://github.com/olegknyazev/SoftMask","commit_stats":{"total_commits":621,"total_committers":2,"mean_commits":310.5,"dds":"0.0016103059581320522","last_synced_commit":"9cb70ba41ad097b01440943dc4fa0dc5cd841e84"},"previous_names":["olegknyazev/softmask"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olegknyazev%2FSoftMask","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olegknyazev%2FSoftMask/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olegknyazev%2FSoftMask/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olegknyazev%2FSoftMask/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/olegknyazev","download_url":"https://codeload.github.com/olegknyazev/SoftMask/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238024410,"owners_count":19403837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["masking","ugui","ui","unity-plugin","unity3d"],"created_at":"2024-09-24T13:22:34.446Z","updated_at":"2025-10-24T18:32:07.134Z","avatar_url":"https://github.com/olegknyazev.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Soft Mask\n\nSoft Mask is a package for Unity 3D that implements smooth masking for UI (UGUI). It works almost like the standard\nUnity's mask, but supports alpha, which enables gradual and semi-transparent masks.\n\nThe key feature of Soft Mask is its ease of use. You don't need to be a programmer to use it—just drop the Soft Mask\ncomponent on a UI object as you do with the standard Unity Mask and here you go.\n\nThe package had been sold on Asset Store for several years, but in late 2022 it was open-sourced\nunder the [MIT license with Commons Clause](https://github.com/olegknyazev/SoftMask/blob/main/LICENSE.md). In short, this\nlicense means that you're free to use this tool in your games, but you don't have the rights to resell the Soft Mask\nitself.\n\nTo better understand what the Soft Mask is, [check out the online demo](https://olegknyazev.itch.io/softmask).\n\n## Getting Started\n\nThe easiest way to install Soft Mask is via the Package Manager window by\nusing [GitHub URL](https://docs.unity3d.com/Manual/upm-git.html). Press the *Add* button in the Package Manager window and\nenter the following URL:\n\n```\nhttps://github.com/olegknyazev/SoftMask.git?path=/Packages/com.olegknyazev.softmask#1.7.0\n```\n\nPay attention to the version that's encoded within this URL.\n\nAlternatively, you can get the package directly from the `Packages/com.olegknyazev.softmask` subfolder. A pre-built artifact\nis not provided at the moment.\n\n### Useful links\n\n- [Documentation](https://github.com/olegknyazev/SoftMask/blob/main/Packages/com.olegknyazev.softmask/Documentation%7E/Documentation.pdf)\n- [Changelog](https://github.com/olegknyazev/SoftMask/blob/main/Packages/com.olegknyazev.softmask/CHANGELOG.md)\n- [Support Thread](https://forum.unity.com/threads/soft-mask-a-replacement-of-unity-ui-mask-with-alpha-support.454707) —\n  This thread was one of the primary support lines while the package was paid. You still can find some useful\n  information there or post a bug, but GitHub is a preferred place to reporting bugs.\n\n## Development\n\nThe remaining of the document is aimed at those who is interested in modifying the package.\n\n### Project Structure\n\nAt the root of the repository we have a regular Unity project which contains the package itself under\n`Packages/com.olegknyazev.softmask` directory as well as some additional assets and scripts for development.\n\n### Automated Tests\n\nSoft Mask has a set of automated tests that work by comparing render results in various test scenes against\nthe pre-recorded screenshots. In general, it's a bad idea to use rendering results in testing because they may depend on\nspecific software (version of OS, Unity, selected render system) or hardware. But in the case of Soft Mask, which\nhighly depends on shaders, I don't see a good alternative, so I decided to use this approach.\n\nAll the screenshot-comparing tests were recorded on MacOS 15.1 and Unity 2020 with the Metal renderer, and they may not be\ncompatible with screenshots taken on a different setup.\n\nThe tests use the [perceptualdiff](https://github.com/myint/perceptualdiff) utility, so you need to have it installed in\norder to run the tests.\n\nTo run the automated tests suite, perform the following:\n\n1. Import the TextMesh Pro package, essential resources, and additional examples. The additional resources are used in some\n   TMPro-related test scenes, so you have to have them in the project in order for these tests to work.\n2. Update TextMesh Pro integration.\n3. Open scene `Assets/Extra/Test/Scenes/_RunAllAutomationTests.unity`.\n4. \\[Optional\\] Select the TestsRunner object and modify properties as need for this specific run.\n5. Run the scene in Play Mode.\n6. Wait for automation tests to end. Do not remove focus from the Unity Editor windows during the testing.\n\nBesides these screenshot-comparing tests, we also have several classic editor-mode tests for the functionality that\ncould be tested this way.\n\n### Documentation\n\nThe documentation for Soft Mask is written in Google Documents and exported as a PDF. The source document for 1.7.0\nis [available here](https://docs.google.com/document/d/1YBWxbaGjm2t1u6AVN0iMI-zLmpA4954hhL5S3BxZGH4/edit?usp=sharing).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folegknyazev%2Fsoftmask","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folegknyazev%2Fsoftmask","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folegknyazev%2Fsoftmask/lists"}