2012-04-14 4 views
2

私は、これらのセグメント(オフセット、スコアリング長)の音楽セグメント(プレリュードパート、リピートパート、エンディングパート)と時間情報を保存するための "フォーマット"を作成しましたあたかも1曲であるかのようにリアルタイムで、繰り返し部分を(任意に)無期限に繰り返す。このようにして、セグメントは、次のセグメントが再生される場所で、前のセグメントが再生されている間に減衰を保存することができます。 (私はこれをJavaでプレイヤーを作成し、Clipクラスを使用しました)XNAミュージックミキシングリアルタイム

私はこの形式が欲しかったので、私は無限の長さの音楽を再生しながら有限の長さの音楽(ジュークボックス機能用)を提供できます-ゲーム。

しかし、この「フォーマット」を管理するXNAのクラスをコーディングしたいときは、「ソング」を同時に/重複させて再生する明白な方法がないことに気付きました。どのようにすればいいのですか/ベストプラクティスは何ですか、XNAフレームワークを離れるわけではありませんか? (私は無限のプレイリストを作成したくありません)

答えて

2

おそらくXACTを調べたいと思うでしょう。あなたのXNAのコピーがインストールされているはずです。 XACTは、ゲームのオーディオ用にいくつかのロジックを設定できるソフトウェアのオーディションです。これは基本的にXNAとシームレスに統合されています。 XACTのいくつかの高度な機能を調べると、必要な機能を実行できるようになるかもしれません。それは非常に強力ですが、学習曲線があります。

XACTの外では、はるかに時間がかかるでしょう。私はバニラC#/ XNAコードでそれを行う方法は考えられません。 XACTはこの欠点を補うように設計されているので、それを使うべきです。

XACTの将来については、死んでいる/死んでいると思います(将来はサポートされない可能性があります)。少なくともDirectXのバージョンはです。しかし、私が言ったように、このレベルの制御でXNAでオーディオを管理するのは、私が見つけた匹敵する方法ではないので、彼らはアイデアを完全に放棄するとは思わない。

+0

私はC++で自分のプロジェクトを移植することを計画していたので、悲しいです。できるだけ少ないバージョンのリソースを作成しようとしていました。しかし、それが本当に死んでいるなら、将来のXNAでは、高度なロジックを追加する予定であることを意味します。私はXACTに目を通します。ありがとう! –

+0

必ずしもそうではありません。単にXACTをそのままの状態にして、それを更新することはできませんが、高度なオーディオは決してXNAに追加しないでください。とにかく今はかなり能力があります。 C++に移植する際にDirectXを使用する場合は、vanilla DirectXのXACTのバージョンを調べるとよいでしょう。私は、XNA XACTとDirectX XACTの間に移植性があることを理解しています。そのため、オーディオの統合を移動するのは難しくありません。 –

+0

私はクロスプラットフォームのフリークで、私はDirectXが利用できないシステムに移植したいので、それは私にとってはオプションではありませんが、もう一度感謝します。 :) –