🛣️

OpenSiv3D 開発ロードマップ

2021/01/19に公開
7

関連記事: 2022 年の Siv3D はこうなる

OpenSiv3D v0.6.3 ~ v0.6.x

主要な新機能

  • 数式のレンダリング
  • UDP 通信対応
  • OSC 対応
  • マルチタッチ対応
  • 高度な 3D 表現の追加
  • テキストの縦書き描画の復活
  • glTF サポート
  • 3D 物理演算
  • Apple Silicon 対応
  • ゲーム開発を補助するライブラリ

OpenSiv3D v0.7.0 ~ v0.7.x

リリース予定時期: 2022 年前半

主要な新機能

  • 流体シミュレーション
  • 3D 地形の構築、レンダリング
  • Effekseer との連携
  • Sprite Studio との連携
  • Azure Kinect との連携
  • Leap Motion との連携
  • Photon との連携
  • PSD ファイル読み込み
  • 3D アニメーション

ドキュメント

  • API リファレンスの完成

OS サポートの終了

  • Windows 7 SP1 のサポートを終了
  • macOS 10.14 Mojave のサポートを終了

OpenSiv3D v0.8.0

リリース予定時期 2022 年 夏

主要な新機能

  • 複雑な GUI のサポート
  • C++23 対応

注意

  • Windows 8.1 のサポートを終了
  • Visual Studio 2019 のサポートを終了

OpenSiv3D v0.8.x

リリース予定時期 2022 年 秋

  • v1.0 リリースに向けた API の調整、ドキュメントの整備

OpenSiv3D v1.0

リリース予定時期 2022 年 秋

Discussion

aiai

もしかしたら既に実装されているのかもしれませんが……

Processingでいうところのmap()関数、渡された数値をある範囲から別の範囲に変換する関数がほしいです。processingでは、map関数を使ってインタラクティブなデザインを作ることが多いです。(下記事参考)

https://note.com/deconbatch/n/nde9d61a91044

実装自体は非常に単純なため、普段は自分で実装してしまうのですが、標準で用意されていると助かります。

Ryo SuzukiRyo Suzuki

提案ありがとうございます! 提案コメント第一号で嬉しいです 🥰
現バージョン (v0.4.3) では Math::InvLerp()Math::Lerp() の組み合わせで(まとめれば)ワンライナーで書くことができますが、1 つの関数になっていると便利そうです。
その関数の良い名前を考えるのがネックなのですが、思いついたらかなり前向きに検討します。(Map でいいのかな・・・)

# include <Siv3D.hpp> // OpenSiv3D v0.4.3

namespace s3d::Math
{
	template <class Type>
	[[nodiscard]]
	inline constexpr auto Map(double value, double start1, double stop1, const Type& start2, const Type& stop2) noexcept
	{
		return Math::Lerp(start2, stop2, Math::InvLerp(start1, stop1, value));
	}
}

void Main()
{
	while (System::Update())
	{
		const double x = Math::Sin(Scene::Time());

		ClearPrint();
	
		Print << Math::Map(x, -1, 1, 200, 600);

		Circle(Math::Map(x, -1, 1, Vec2(200, 300), Vec2(600, 300)), 20).draw();
	}
}
aiai

自分が普段作るのとは違う形の実装で参考になります。

自分は、mapを自作する際、linearMap(線形写像)と名付けていた時期もあったのですが、長ったらしいので、今はmapと名付けています。ちなみにOpenFrameworkだと、map関数にofMapお茶を濁した名付けがされていました。

std::mapと名前が被ってしまう問題はありますが、広く使われている名前だと割り切って、Math名前空間に入れた上で、Mapと名付けるのが無難なのかなと思います。

Ryo SuzukiRyo Suzuki

コメントありがとうございます。Map でもいいかなーという気になってきました。先ほど開発中の v0.6 に加えたので、v0.6 リリースでは利用できるようになります。ご提案ありがとうございました。

わくわくわくわく

v1.0 に上がる予定が暫く無いようですが、いつ頃なのだろう、何が基準になっているのだろうと疑問に感じました。

分野や利用者層によりますが、v1.0が長期間出ていないライブラリ/フレームワークは理由が気になりますし、例えばバグが多いのではないかと利用をためらう事も多いかと思います。
どういう事が達成できたらv1.0なのか、あるいはバージョン表記にそういった意味を持たせていないのか等、既に方針をお持ちでしたら記述して頂くのが安心材料になるかと思いました。

Ryo SuzukiRyo Suzuki

「バグが多いのではないかと利用をためらう」

→これは確かに考えないといけませんね。

OpenSiv3D の v1.0 の大まかな条件としては

  • 旧 Siv3D の機能を完全にカバー (v0.7.x で達成予定)
  • 十分に整備された 3D 描画 API (v0.6.0 で初実装、1 年以上かけて安定化)
  • 全 API のドキュメント整備(v0.6.2 で達成予定)
  • 以降の破壊的変更の抑制(v0.8.x で達成予定)

と考えています。

したがって、早ければ 2022 年秋頃の v0.8.x がほぼそのまま v1.0 になる見込みです。
v1.0 までの見通しを追記しようと思います。コメントありがとうございました。

わくわくわくわく

さっそくの追記ありがとうございます、すぐに答えて頂けるくらい見通しがしっかりしていて凄いですね。