1

プレーヤーが特定のアクションを実行するたびに再生するサウンド キューがあります。私はそれをうまく再生していますが、使用するリソースをハードコーディングするのではなく、構成ファイルから取得したいと考えています。

そこで、次のように MonsterNoiseSoundCue というクラスにプロパティを追加しました。

var config SoundCue MonsterNoiseSoundCue;

次に、DefaultProperties セクションで、作成したオブジェクトに以下を追加し、ポーンのコンポーネント コレクションに追加しました。

Begin Object Class=AudioComponent Name=MonsterActivatedSound1
         bAutoPlay=false
         SoundCue=MonsterNoiseSoundCue// This variable is a configured value.   SoundCue'CastleAudio.UI.UI_StopTouchToMove_Cue'
    End Object
    Components.Add(MonsterActivatedSound1);
    MonsterActivatedSound = MonsterActivatedSound1;

何らかの理由で、「オブジェクト変数で「config」を使用することは許可されていません」と言ってビルドされません。これにアプローチする別の方法を知っている人はいますか?

4

3 に答える 3

2

その「オブジェクト変数で'config'を使用することは許可されていません。」メッセージはUnrealEngine3での変更でした。

現在テストできず、UT2004スクリプターですが、これを試してみます。

var SoundCue MonsterNoiseSoundCue;
var config string MonsterNoiseSoundCueName;

PreBeginPlay関数(または同様のもの)で、これを使用してキューを取得します。

MonsterNoiseSoundCue = SoundCue(DynamicLoadObject(MonsterNoiseSoundCueName, class'SoundCue'));

サウンドキューが存在しない場合は、ログに警告が表示されます。

于 2011-02-04T05:54:38.710 に答える
0

サウンドを再生するためにどの機能を使用していますか?

PlaySoundはその場でAudioComponentを作成するので、defaultpropertiesセクションにコンポーネントを含める必要はありません。

var config SoundCue MonsterNoiseSoundCue;

次に、アクションが発生したとき:

function OnMonsterAction()
{
    PlaySound(MonsterNoiseSoundCue);
}
于 2011-04-05T05:17:34.470 に答える
0

潜在的なオプションは動的コンポーネントです '動的に作成されたコンポーネント

コンポーネントのインスタンスを動的に作成するには、UnrealScript の new 演算子を使用し、アクターの AttachComponent メソッドを呼び出して、新しいコンポーネントをアクターにアタッチします。

simulated event PostBeginPlay()
{
    local AudioComponent AudioComponent;
    Super.PostBeginPlay();

    AudioComponent = new(self) class'AudioComponent';
    AudioComponent.SoundCue = Cue;//var(audio) SoundCue Cue
    AudioComponent.bAutoPlay=true; // !!!
    AttachComponent(AudioComponent); // Attach copm. to actor's copm. array 
    // .....
}

前にアタッチしたコンポーネントをデタッチして解放するには、アクターの DetachComponent メソッドを使用します。

http://wiki.beyondunreal.com/UE3:AudioComponent_(UDK)

于 2015-01-31T01:56:09.220 に答える