|
no prev page |
1/1ページ(2件) |
no next page |
|
|
|
タイトルはイメージです、
久々に携帯から更新、不出来は我慢してください。
ゲームで言う立体と言うと、ポリゴンのゲームとか?
3D立体視対応のゲームを思い付く人が多いと思うのですが、
今回は、さらに別の!
まぁ、立体視は先日達成しましたしね?
つぎは、 音なのです!!
まぁ、そう言うことです、
音のイメージとして、空の彼方へ飛び立つのです。
ところで、音の立体音響という物は、かなり昔から有りまして、
だからと言って、ディメンション的に3なのか??
って言われると微妙なんですよね?
音は元々発生源から全方位に伝播していくので、上下左右前後、そういう物が有りません。
余程適した環境で無い限り、どこで発生した音も、全方位から届くのです。
立体音響とは、この特性を、機械的に計算して、反射音やら残響音を意図的にならすことで、立体感を出します。
ドルビーのdtsとか?で、選択肢に、ルーム、シアター、スタジアム、などが有るのは、そう言ったイメージを再現するためです。
しかーし、
ここで言う空の彼方とは、そう言った物では有りません、
なにせ、PSO2基準ですからね、
ゲーム世界における、音の立体感に上下は有りません、前後左右ですね?
プレイヤーキャラクターの位置に対して、どこで音が鳴ったのか、
TPSの人達はかなり神経質なようですが?
あたしとしては単純なVRの補強なわけです。
directSOUND対応のゲームであれば、特別な設定をしなくても、音の発生地点を設定刷るだけで、サラウンドスピーカーの前後左右へ振り分けてくれます。
注)色々な設定を4ch以上のサウンドにする必要があり、対応したスピーカーも必要です。
で、その色々ご大変なのです!
最近のPCは7.1chサウンドに対応しているので、問題ないように思われがちですが?
昨今のオーディオ出力において、アナログの場合では、ステレオプラグ4本
光デジタルであれば、ドルビーデジタルに対応している必要が有ります。
よーするに、一般的なサラウンドスピーカーシステムでは、8chアナログ入力に対応している物は無く、
また、ドルビーデジタルでの光出力に対応したPCもほぼ無いのです。
この状況において、5.1の再生はちょっと難しい、
パソコンを対応させるのであれば、サウントブラスターなどの高価な音源を導入する必要があり、
スピーカーシステムを変えるのであれば、まず、無い(笑)
しかし、神はいた!!
そこで買ったのはこれ
Z6a
これはヘッドセット型で、5.1ch入力の有る、ゲーミングヘッドセットとか言うものです。
もちろんパソコン用
あたしがすでに持っているpioneerのサラウンドシステムは、ドルビーデジタルしか対応していないので、サウントブラスターでも買えば良かったのですが?
光出力の電送経路を構築するのが馬鹿みたいにお金がかかるので、ヘッドセットで妥協した感じです。
特に、このヘッドセットは、6個?くらいの物理スピーカーを持ち、後ろの音は、後ろの方のスピーカーから音がでるので、後ろから聞こえるといういい感じ☆
物理スピーカーが、2個しかないのにマルチチャネルサラウンドを実現している物は、前述の立体音響的な方法を用いて、立体感を出しています。
なので、断然こちらがオススメのような気がする!
で、使用感は、、、、、、まて、次号 |
閉じる
|
|
|
|
|
|
|
|
|
あたしは、C#でのプログラミングを始めて4年くらいになりますが、
だからと言って、プログラミング歴が4年な訳ではありません。
「C#の××××××××が糞すぎる」
(×は特定の文字ではありません。特定の記事を刺しているわけではないので、出典なども特にありません。)
って記事をたまたま偶然見掛けたので、こういう人も居るのだなぁと思いました。
プログラムは、その人の思考パターンに似ている部分もあるため、
同じ課題であっても、作る人によって構造はかなり違います。
だから、どんな形であれば、課題が達成出来るのであれば、それは構わないとも思っていますが、
だからと言って、何でも、好き放題で良いと言うことではありません。
C#に適したプログラム方法があって、それに沿ったプログラムを組みつつも自分の独自なアルゴリズムにおいて、より優れたプログラムを組めば良いんじゃなイカと思っています。
なので、上記記事も含めて、なんでこういったことを書く人が、ここまでC#の特性を無視したプログラムを書きたがるのか、
高級言語における、スコープの概念を全く理解していないのか、不思議でなりません。
上記記事は既に古い物なので、当人はとっくに反省しているかもしれませんが、
変数をvarで宣言することの無意味さ。
バリアント形はそれとは全く別に存在しますので、通常はObjectで宣言すべきです。
しかし、そもそも何故型指定無しで宣言するのでしょうか?
それでもって、コンパイルが通らないとか言い始めて、
型を無指定で作成したのであれば、その後のプログラムにおいて、型が不明なので動作しない部分も出てくるでしょう。
それが{}で囲われているかどうかとは、全く関係の無い部分です。
型未定な変数において、正常にコンパイルを通す方法は、当然型をキャストすれば良いだけです。
そして、そもそもの問題として、コンストラクタでエグゼプションを起こして、オブジェクトの初期化を失敗させる。
(注:もちろん、コンストラクタでエラーが出た場合の処理)
この方法がそもそもの間違い、(なのは、他のコメント投稿者からも言われていますが?)
C++のメモリリークの回避方法的に紹介している人も居ますが、どちらにしろ、コンストラクタでは不要な初期化はしない、
コンストラクタはあくまでオブジェクトの準備であって、致命的なエラーで落ちる場合を除き失敗させるべきではない。
オブジェクトが正常に動作するかどうかは、オブジェクトが作成完了してから、チェックすべき事で、コンストラクタでそこまでしてはいけない。
まぁ、なんでもいいんですけどね、
c#には高級言語としてとても優れている部分が多く
何らかの問題が在る場合、「大抵は利用者が活用方法を間違えている」のが原因です。
「c#が・・・・・すぎる」ではないのです。
c#で機能が足りないのであれば、C++でも使えば良いのです。自分で直接APIを叩けば良いじゃないですか?
まぁ、これからプログラムを習おうとする人は、言語の特性と、正しい書式をしっかりと覚えてくださいな。
{}で囲うのはif文だからとかfor文だからとかwhileだから、switchだからとか
void main(void)だからとか、そういった理由ではありませんからね?
{}はブロック定義です。
ifだとか関係なくブロック定義は何処でも、いつでも出来ます。お忘れ無く☆ミ
|
閉じる
|
|
|
|
|
|
no prev page |
1/1ページ(2件) |
no next page |
|