質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

540閲覧

100個のシーンで使用中の効果音を修正して、 更新する場合、便利な方法はないでしょうか?

sukiyakigozens

総合スコア28

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2017/12/10 16:56

編集2017/12/10 17:09

Unity 2017を使用しております。

オーディオファイル(効果音)を変更して、
更新する場合について、質問させてください。
シーンが100個ほどあります。

問題と実現したいこと
すでにオーディオファイルが各シーン内に設置してありますが、
後から音の内容を修正することになり、
何とか現状のオーディオファイルの(インスペクター上の)紐付けを利用して
変更できないものかと、考えております。
※同じオーディオファイル(効果音)が100個のシーン内で使用されております。
(シーンが100個ほどあるのでインスペクター上への
ドラッグドロップの紐付けを全部やり直すのは避けたいと考えております。)

画像ファイルを修正し、更新する場合は、
Unity内のプロジェクト内の画像をダブルクリックすると、
フォトショップで画像が開き、
修正した画像をペーストして、画像ファイルを上書き保存すれば、
自動で新しい画像に更新されます。
同じ画像の使用していれる場合、どのシーンに使用されていても変更されます。
(リンク元ファイルを開き修正すれば他の部分の同じ画像は更新されます)

ところが、オーディオファイルの場合、
これができなくて困っております。
Project内のオーディオファイルをダブルクリックしても
iTunesが立ち上がってしまいます。
※UnityのPreferenceの中にはオーディオファイルの編集するアプリを
指定する機能はないようです。

また、上記のファイルを開いて上書き保存ではなく、
新たに修正したオーディオファイルを
Project内にドラッグしてリプレイスしようとしても、できません。
(名前の最後に「1」などの番号が追加されて新たなファイルが追加されてしまいます)

このリプレイスができないとなると、
オーディオファイルを修正した場合、
すべての100のシーンをそれぞれ開き、効果音を使用しているオブジェクトを選択し、
再度オーディオファイルの紐ずけをする事になってしまうかと思います。

これを避ける便利な方法はないものでしょうか?

ご教授よろしくおねがいいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

正しい操作を分かっているわけではなく想像や実験によるものなのであくまでご参考として...


(1) OSでの音声ファイルの紐づけを変える

Unity内のプロジェクト内の画像をダブルクリックすると、フォトショップで画像が開き、

自分の環境はWindows10ですが画像をダブルクリックした場合、OS標準のビューアー(フォト)が起動します。おそらくUnityはOSの紐づけに従ってアプリケーションを開く動作をしているのだと思います。質問者さんの環境ではPNGやJPGなどのファイルはPhotoshopに紐づけてお使いなのだと想像します。

wavなどの音声ファイルも同様に音声を編集できるアプリケーションに紐づけておくことで

Unityからダブルクリック->アプリケーション起動->編集して上書き保存

とするとClipの中身だけが書き換わり紐づけはそのままにできるように思えます。自分はwavを編集できるアプリを持ってないので実験はできませんでした。

(2) 直接ファイル書き換え

Windows版UnityのAssets一覧でコンテキストメニューを開くと「Show in Explore」というメニューがあるのでそれを開くとプロジェクトフォルダーがエクスプローラーで開きます。そこにAssetsというフォルダーがありアセットはそのフォルダーに本体とメタファイルの組として保存されているように見えました。そこで現在のファイル名と同じ名前にして別の音声ファイルをエクスプローラー上で上書き保存してUnityの画面に戻ると即座に波形表示が変化しました。
はっきりわかりませんが、画像ファイルの置き換えができることからもUnityは外部のアプリケーションでプロジェクト内のアセットの内容が変更されたことを検知しそれを自動的に認識するようにできているように思えます。試しにプレイボタンを押して音を鳴らしてみると変更後の音声が鳴りました。


なお自分の環境のUnityは古いです・・・
OS: Windows10
Unity: 5.4.0f3 Personal

投稿2017/12/10 18:25

KSwordOfHaste

総合スコア18392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Bongo

2017/12/10 22:19

Mac版ですと、Assets一覧のコンテキストメニューの「Reveal in Finder」で元ファイルが出てきますね。 そのファイルの「情報を見る」→「このアプリケーションで開く:」を変更したところ、Unity上でダブルクリックした際に起動するアプリケーションも変化しました。
KSwordOfHaste

2017/12/11 01:42

コメントありがとうございます。 なるほどMac/WinともにUnity側に独自のアプリ設定が必要ないような仕組みということなんでしょうね。
sukiyakigozens

2017/12/11 02:24

ご回答ありがとうございます。 Unity内のダブルクリックで、どのアプリが立ち上がるかは、 Unityの設定ではなく、個々のPCの拡張子ごとに設定されたアプリが開いいただけのようでした。 (PCの操作の割と基本的なことでした。すいません。) 当方はマックなのですが、OS上(ファイダー上、情報を見るにて)で wavファイルの開くアプリの設定を変えると、無事Unity上でも指定アプリで開きました。 当方は、音声には「ガレージバンド」を使用しているのですが、 「ガレージバンド」は音声ファイルを直接開けないようです。 「ガレージバンド」は、まず個々のプロジェクトがあり、そこに音声をインポートする形の様です。 従って、別の音声のアプリを使用できれば、 フォトショップのように直接、修正、更新ができるかと思います。(未確認) 別の音声のアプリがない場合は、 ご指摘のとおり、Assets/materials/musicで直接フォルダを開き、 同名ファイルをリプレイス(上書き保存)し、 Unity内で動作することが確認出来ました。 大変ありがとうございました。
sakura_hana

2017/12/11 02:37 編集

横から失礼します。 ぶっちゃけファイル名が同じであれば、コピペ等でも差し替えできます。 (「別の音声のアプリがない場合は〜」で既にお試しでしたらすみません) 1. ガレージバンドで新しい音声を作成。 2. 新ファイルを元ファイルと同名にして適当な場所に保存。 3. Assets/materials/musicをFinderで開き、新ファイルをそこにコピペまたはドラッグ&ドロップ。 4. 上書き確認ダイアログが出るので上書き許可する。
sukiyakigozens

2017/12/11 05:57

いつもご回答ありがとうございます。
guest

0

まさかと思いますが念のため…もしかしてプレハブ化してないとかってオチじゃ無いですよね?
プレハブになっていればシーン全部張り直すなんて作業は発生しないハズですが・・・
(ダブルクリックで何が起動するかはアプリの関連付け設定の話しなので別問題だと思います)

投稿2017/12/11 01:44

HiroshiWatanabe

総合スコア2160

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KSwordOfHaste

2017/12/11 01:57

なるほど、そういう観点もありそうですね。 自分の回答では「ひもづけ」を2つの意味で使っているので混乱を招くかも知れませんが、アセットとコントローラなどとの「紐づけ」を変更しないままアセットだけ編集により置き換える目的で、アセットのダブルクリックで開くアプリを任意のものに変更する方法としてファイルの種類とアプリとの「紐づけ」を変更できるのを利用して・・・という話のつもりでした。
sukiyakigozens

2017/12/11 02:26

ご回答ありがとうございます。 音声を使用している各オブジェクトは各シーンによって、大きさが異なり、 貼り付けてある画像も違うので、プレハブ化はしておりませんでした。 (大きさ、画像が違っていてもプレハブ化はできるのかもしれませんが)
sukiyakigozens

2017/12/11 02:42

HiroshiWatanabeさんの意図とは違うかもしれませんが、 試しにオーディオファイルのみをプレハブ化して、 そのプレハブを、音付きオブジェクトをインスペクター上で、 ドラッグドロップで紐付けしようとした所、できませんでした。 プレハブは音声として紐付けできないようです。 またドラッグドロップではなく、インスペクター内の右端の丸をクリックすると、 ポップアップで紐付け候補のファイル一覧が出ますが、 (上部にSelect AudioClipと出ます)その一覧の中にプレハブが入っていません。 オーディオファイルのみのプレハブ化ではオブジェクトに紐付けできないようです。
HiroshiWatanabe

2017/12/11 03:13

プレハブ化するのはオーディオがついてるGameObjectです。 ちなみにスクリプトで後からそのオーディオファイルを別名の物に変更するような運用も可能ですが上でコメントした時にはそこまでのニーズがあるかは意識せずに回答していました。 (同じ曲を100シーンで使いまわしてるのに1曲編集しただけで100シーン作業しなおしになるのを 避ける方法はないか、というのが質問内容だと解釈したため) 曲は同じだけど絵やオブジェクトの大きさが違うという事なら上のプレハブ化したオーディオがついたGameObjectを各シーンのその大きさが違うオブジェクトの子オブジェクトとしてやれば済む話しな気がします。 1つのGameObjectにあれもこれも全部直接貼り付けてその1部(今の例では曲)が全部共通という構成にしてるのでは無いでしょうか? もしそうなら共通の曲は別のGameObject(プレハブ)にして子としてぶらさげてやれば解決する話しなのかなー、と思いました。
sukiyakigozens

2017/12/11 05:55

おっしゃるとおり、各オブジェクトに コリジョンのスクリプトとオーディオファイルを貼り付けておりました。 空オブジェクトにオーディオ要素を分割しプレハブ化する形をトライしてみましたが、 現状よりだいぶ構造を変えなければならいようです。 (初心者で知識が足りない部分もあります) プレハブ化するのが正しいやり方だと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問