Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 81 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: Bug Report / バグ報告
description: Create a report to help us improve SSPlayerForGodot. / 不具合の報告
title: "[Bug]: "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thank you for reporting a bug! / 不具合の報告ありがとうございます!
Please provide as much information as possible to help us investigate. / 調査をスムーズに行うため、可能な限り詳細な情報を提供してください。

- type: textarea
id: description
attributes:
label: Description / 不具合の内容
description: A clear and concise description of what the bug is. / どのような不具合が発生しているか、簡潔に説明してください。
validations:
required: true

- type: textarea
id: reproduction
attributes:
label: Steps to Reproduce / 再現手順
description: Steps to reproduce the behavior. / 不具合を再現させるための手順を詳しく書いてください。
placeholder: |
1. Open '...'
2. Run '...'
3. See error
validations:
required: true

- type: textarea
id: expected_behavior
attributes:
label: Expected Behavior / 期待される動作
description: A clear and concise description of what you expected to happen. / 本来どのような動作を期待していたか説明してください。
validations:
required: true

- type: input
id: godot_version
attributes:
label: Godot Version / Godotのバージョン
description: What version of Godot are you using? / ご利用のGodotのバージョンを記載してください。
placeholder: e.g. 4.6.0-stable
validations:
required: true

- type: input
id: plugin_version
attributes:
label: Plugin Version / プラグインのバージョン
description: What version of this plugin are you using? (e.g., v1.0.0 or commit hash). / 利用している本プラグインのバージョンタグ(v1.0.0等)、またはコミットハッシュ。
validations:
required: true

- type: input
id: environment
attributes:
label: Operating System / OS
description: What OS are you developing on? / 開発を行っているOS。
placeholder: e.g. Windows 11 / macOS 14 / Ubuntu 22.04
validations:
required: true

- type: textarea
id: additional_context
attributes:
label: Additional Context & Error Logs / 補足情報・エラーログ
description: Add any other context or paste relevant error messages from the Godot output console here. / その他、不具合に関する補足情報や、Godotのコンソールに出力されたエラーメッセージを記載してください。

- type: markdown
attributes:
value: |
---
**🚨 WARNING / 警告 🚨**
**DO NOT** attach proprietary `.sspj` project files or sensitive data to this public issue.
If you need to share reproduction data, please submit it privately via the [Help Center](https://www.webtech.co.jp/help/ja/spritestudio7/inquiries/ssplayer_tool/).

**絶対に** 機密情報や非公開の `.sspj` プロジェクトデータをここに添付しないでください。
再現データの提供が必要な場合は、[公式ヘルプセンター](https://www.webtech.co.jp/help/ja/spritestudio7/inquiries/ssplayer_tool/)から非公開で送信してください。
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: 💬 SpriteStudio Community / コミュニティ (使い方や質問)
url: https://spritestudio.jp/community/
about: Please ask general questions about how to use the SDK here. / SDKの使い方などの一般的なご質問はこちらのコミュニティをご利用ください。
- name: 🔒 Private Inquiries & Data Submission / 非公開でのご相談・データ送付
url: https://www.webtech.co.jp/help/ja/spritestudio7/inquiries/ssplayer_tool/
about: Use this for private inquiries or when sending sensitive reproduction data. / 非公開での相談や、再現データの送付が必要な場合は公式ヘルプセンターをご利用ください。
39 changes: 39 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Feature Request / 機能要望
description: Suggest an idea for this project. / 新機能や改善のアイデアを提案する
title: "[Feature]: "
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thank you for suggesting a feature! / 機能のご提案ありがとうございます!

- type: textarea
id: problem
attributes:
label: Is your feature request related to a problem? / その要望は、何か困っていることに関連していますか?
description: A clear and concise description of what the problem is. / どのような課題や不便さがあるか、詳しく説明してください。
placeholder: |
I'm always frustrated when [...]
validations:
required: true

- type: textarea
id: solution
attributes:
label: Describe the solution you'd like / 実現したい解決策
description: A clear and concise description of what you want to happen. / どのような機能や動作を期待しているか説明してください。
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: Describe alternatives you've considered / 他に検討した代替案
description: A clear and concise description of any alternative solutions or features you've considered. / 他に検討した解決策があれば記載してください。

- type: textarea
id: additional_context
attributes:
label: Additional Context / 補足情報
description: Add any other context or screenshots about the feature request here. / その他、機能に関する補足情報やスクリーンショットがあれば記載してください。
21 changes: 21 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
## Description

Please include a summary of the changes and the related issue. Please also include relevant motivation and context.

Fixes # (issue)

## Type of change

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update

## Checklist:

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] Any dependent changes have been merged and published in downstream modules
44 changes: 30 additions & 14 deletions .github/workflows/extension.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: release gdextension
on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
godot_version:
Expand All @@ -15,6 +18,7 @@ on:
description: "Target Godot API version"

env:
GODOT_VERSION: ${{ inputs.godot_version || '4.6' }}
LANG: en_US.UTF-8
LC_ALL: en_US.UTF-8
PYTHONIOENCODING: utf8
Expand Down Expand Up @@ -105,14 +109,14 @@ jobs:
- name: build Linux
if: matrix.platform == 'linux'
run: |
./scripts/release-gdextension-linux.sh api_version=${{ inputs.godot_version }}
./scripts/release-gdextension-linux.sh api_version=${{ env.GODOT_VERSION }}

- name: build macOS
if: matrix.platform == 'macos'
env:
DEV_ID_APPLICATION: ${{ secrets.DEV_ID_APPLICATION }}
run: |
./scripts/release-gdextension-macos.sh api_version=${{ inputs.godot_version }}
./scripts/release-gdextension-macos.sh api_version=${{ env.GODOT_VERSION }}

for f in ./bin/macos/*.framework
do
Expand All @@ -124,7 +128,7 @@ jobs:
env:
DEV_ID_APPLICATION: ${{ secrets.DEV_ID_APPLICATION }}
run: |
./scripts/release-gdextension-ios.sh api_version=${{ inputs.godot_version }}
./scripts/release-gdextension-ios.sh api_version=${{ env.GODOT_VERSION }}

# iOS ships XCFrameworks (device + simulator); sign the frameworks inside each slice.
for f in ./bin/ios/*.xcframework/*/*.framework
Expand All @@ -135,29 +139,29 @@ jobs:
- name: build Android
if: matrix.platform == 'android'
run: |
./scripts/release-gdextension-android.sh api_version=${{ inputs.godot_version }}
./scripts/release-gdextension-android.sh api_version=${{ env.GODOT_VERSION }}

- name: build Windows
if: matrix.platform == 'windows'
shell: pwsh
run: |
./scripts/release-gdextension-windows.ps1 api_version=${{ inputs.godot_version }}
./scripts/release-gdextension-windows.ps1 api_version=${{ env.GODOT_VERSION }}

Remove-Item -Recurse -Force ./bin/windows/*.exp
Remove-Item -Recurse -Force ./bin/windows/*.lib

- name: build Web
if: matrix.platform == 'web'
run: |
./scripts/release-gdextension-web.sh api_version=${{ inputs.godot_version }}
./scripts/release-gdextension-web.sh api_version=${{ env.GODOT_VERSION }}

- id: commit
uses: pr-mpt/actions-commit-hash@v4

- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: extension-${{ inputs.godot_version }}-${{ matrix.platform }}-${{ steps.commit.outputs.short }}
name: extension-${{ env.GODOT_VERSION }}-${{ matrix.platform }}-${{ steps.commit.outputs.short }}
path: bin/
if-no-files-found: error

Expand Down Expand Up @@ -185,19 +189,31 @@ jobs:
cp ../misc/spritestudio.gdextension addons/spritestudio/
cp ../LICENSE.md addons/spritestudio/

mv extension-${{ inputs.godot_version }}-android-${{ steps.commit.outputs.short }}/android addons/spritestudio/bin/
mv extension-${{ inputs.godot_version }}-ios-${{ steps.commit.outputs.short }}/ios addons/spritestudio/bin/
mv extension-${{ inputs.godot_version }}-macos-${{ steps.commit.outputs.short }}/macos addons/spritestudio/bin/
mv extension-${{ inputs.godot_version }}-web-${{ steps.commit.outputs.short }}/web addons/spritestudio/bin/
mv extension-${{ inputs.godot_version }}-windows-${{ steps.commit.outputs.short }}/windows addons/spritestudio/bin/
mv extension-${{ inputs.godot_version }}-linux-${{ steps.commit.outputs.short }}/linux addons/spritestudio/bin/
mv extension-${{ env.GODOT_VERSION }}-android-${{ steps.commit.outputs.short }}/android addons/spritestudio/bin/
mv extension-${{ env.GODOT_VERSION }}-ios-${{ steps.commit.outputs.short }}/ios addons/spritestudio/bin/
mv extension-${{ env.GODOT_VERSION }}-macos-${{ steps.commit.outputs.short }}/macos addons/spritestudio/bin/
mv extension-${{ env.GODOT_VERSION }}-web-${{ steps.commit.outputs.short }}/web addons/spritestudio/bin/
mv extension-${{ env.GODOT_VERSION }}-windows-${{ steps.commit.outputs.short }}/windows addons/spritestudio/bin/
mv extension-${{ env.GODOT_VERSION }}-linux-${{ steps.commit.outputs.short }}/linux addons/spritestudio/bin/

rm -rf ../output
mkdir -p ../output
mv addons ../output/

# Create a ZIP file for GitHub Release
cd ../output
zip -r ssplayer-godot-extension-${{ env.GODOT_VERSION }}.zip addons/

- name: Upload final release package
uses: actions/upload-artifact@v7
with:
name: ssplayer-godot-extension-${{ inputs.godot_version }}-${{ steps.commit.outputs.short }}
name: ssplayer-godot-extension-${{ env.GODOT_VERSION }}-${{ steps.commit.outputs.short }}
path: output

- name: Create GitHub Release
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v2
with:
files: output/ssplayer-godot-extension-${{ env.GODOT_VERSION }}.zip
draft: true
generate_release_notes: true
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [7.0.0-alpha01] - 2026-0X-XX

### Added
- **Initial Public Release**: SpriteStudio 7 SDK (`ssconverter-cli` + `Godot Plugin`).
- **Core Runtime**: Engine-agnostic, `#![no_std]` brain with zero-math integration and SIMD (f32x4) state computation.
- **Features**: Supports Mesh Deformation, Particles (SSEE), Instances, and SS7.1 parts (Skew, 9-Slice, Shape).
- **Integrations**: C-API and Web (WASM) ready.
- **Custom Allocator Injection**: `custom_alloc` feature lets game engines / consoles supply their own allocator and abort handler via `ss_custom_alloc` / `ss_custom_free` / `ss_custom_abort` C symbols — no wrapper crate required.
- **Documentation**: Overhauled bilingual (EN/JA) README and contribution guidelines.

### Known Limitations
- Text/Font Bitmap rendering pending validation.
- macOS/iOS binaries are not yet code-signed.
62 changes: 62 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Contributor Covenant Code of Conduct

## Our Pledge
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

## Our Standards
Examples of behavior that contributes to a positive environment for our community include:
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
- Focusing on what is best not just for us as individuals, but for the overall community

Examples of unacceptable behavior include:
- The use of sexualized language or imagery, and unwelcome sexual attention or advances
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email address, without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting
- Pressuring others through repeated, demanding, or coercive communications

## Scope

This Code of Conduct applies within all project spaces — including but not limited to GitHub Issues, Pull Requests, Discussions, and any communication between participants in this open-source project.

---

## 行動規範 (Code of Conduct) - 日本語訳

### 私たちの約束
私たちは、年齢、身体の大きさ、身体的・精神的な障害、民族性、性徴、性自認や性表現、経験レベル、教育水準、社会経済的地位、国籍、容姿、人種、階級、肌の色、宗教、性的自認や性的指向に関わらず、すべての人がハラスメントのない経験を共有できるコミュニティを作ることを約束します。

私たちは、オープンで、歓迎され、多様で、包摂的で、健全なコミュニティに貢献する方法で行動し、交流することを約束します。

### 私たちの基準
ポジティブな環境を作るための行動例:
- 他者に対して共感と思いやりを持って接する
- 異なる意見や視点、経験を尊重する
- 建設的なフィードバックを行い、また潔く受け入れる
- 自らの過ちに責任を持ち、影響を受けた人々に謝罪し、その経験から学ぶ
- 個人の利益だけでなく、コミュニティ全体にとって最善なことに焦点を当てる

許容されない行動例:
- 性的な言葉や画像の使用、および不適切な性的関心やアプローチ
- 荒らし、侮辱的・軽蔑的なコメント、および個人的・政治的な攻撃
- 公開・非公開を問わないハラスメント行為
- 明示的な許可なく、住所やメールアドレスなどの他者の個人情報を公開すること
- 専門的な場において不適切と合理的にみなされるその他の行為
- 他者に対する、威圧的・要求的、または執拗な働きかけによる圧力

### 適用範囲

本行動規範は、本プロジェクトに関わるすべての場 ―― GitHub Issues、Pull Request、Discussions、および本オープンソースプロジェクトの参加者間のすべてのコミュニケーション ―― に適用されます。

---

## Enforcement
The project maintainers are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.

Issues or complaints may be reported privately to the maintainers or via the official **Help Center** link provided in `SUPPORT.md`.
Loading
Loading