public abstract int InitSpatializer(string modelPath)
パラメータ | タイプ | 意味 |
modelPath | string | 3D効果音のリソースファイルの絶対パス |
public abstract int EnableSpatializer(bool enable, bool applyToTeam)
パラメータ | タイプ | 意味 |
enable | bool | オンにすると3D効果音が聞こえます |
applyToTeam | bool | 3D音声はチーム内で機能するかどうかを示します。enbleがtrueである場合にのみ有効です。 |
public abstract bool IsEnableSpatializer()
戻り値 | 意味 |
true | 起動状態 |
false | オフ状態 |
距離範囲(エンジン単位) | 減衰公式 |
0 < N < range/10 | 減衰係数:1.0(音量が減衰しない) |
N ≥ range/10 | 減衰係数:range/10/N |
public abstract void UpdateAudioRecvRange(int range)
パラメータ | タイプ | 意味 |
range | int | 効果音の受信可能な範囲を設定します。推奨値は100です。この距離単位はゲームエンジン内の距離の単位です |
public abstract int UpdateSelfPosition(int position[3], float axisForward[3], float axisRight[3], float axisUp[3])
パラメータ | タイプ | 意味 |
position | int[] | ワールド座標系中の座標で、前、右、上の順序で表示されます |
axisForward | float[] | ローカル座標系前軸の単位ベクトル |
axisRight | float[] | ローカル座標系右軸の単位ベクトル |
axisUp | float[] | ローカル座標系上軸の単位ベクトル |
FVector cameraLocation = UGameplayStatics::GetPlayerCameraManager(GetWorld(), 0)->GetCameraLocation();FRotator cameraRotation = UGameplayStatics::GetPlayerCameraManager(GetWorld(), 0)->GetCameraRotation();int position[] = { (int)cameraLocation.X,(int)cameraLocation.Y, (int)cameraLocation.Z };FMatrix matrix = ((FRotationMatrix)cameraRotation);float forward[] = { matrix.GetColumn(0).X,matrix.GetColumn(1).X,matrix.GetColumn(2).X };float right[] = { matrix.GetColumn(0).Y,matrix.GetColumn(1).Y,matrix.GetColumn(2).Y };float up[] = { matrix.GetColumn(0).Z,matrix.GetColumn(1).Z,matrix.GetColumn(2).Z};ITMGContextGetInstance()->GetRoom()->UpdateSelfPosition(position, forward, right, up);
Transform selftrans = currentPlayer.gameObject.transform;Matrix4x4 matrix = Matrix4x4.TRS(Vector3.zero, selftrans.rotation, Vector3.one);int[] position = new int[3] { selftrans.position.z, selftrans.position.x, selftrans.position.y };float[] axisForward = new float[3] { matrix.m22, matrix.m02, matrix.m12 };float[] axisRight = new float[3] { matrix.m20, matrix.m00, matrix.m10 };float[] axisUp = new float[3] { matrix.m21, matrix.m01, matrix.m11 };ITMGContext.GetInstance().GetRoom().UpdateSelfPosition(position, axisForward, axisRight, axisUp);
public abstract int UpdateOtherPosition(int position[3])
パラメータ | タイプ | 意味 |
position | int[] | 世界座標での他のプレーヤーの座標であり、順序は前、右、上です |
virtual int AddSpatializerBlacklist(const char* openId);
virtual int RemoveSpatializerBlacklist(const char* openId);
virtual int ClearSpatializerBlacklist();
この記事はお役に立ちましたか?