[v4-その6]Inspektor

Renderer(GDI)ノードを使った図形描画を覚えたけど一つずつしか表示できない。
図形をGrouping
これを解消するのがGroup(GDI)ノードだ。複数の図形をまとめて、Renderer(GDI)ノードに送りつける。InputPinのLayer1,2がそれ。
ただ、このGroup(GDI)ノードは初期状態で2つしか入力レイヤがない。これはInspektorを使用して設定が可能。まずは“Ctl+I”でInspektorを表示させてみよう。そしてGroup(GDI)ノードを選択する。
インスペクタ
InputPinで設定できるものを含めて他にもいくつか情報が並んでいるのが分かる。全ての(たぶん)ノードに共通なDescriptive Nameはノードにラベルをつけることが出来る。ノードが増えていくとどのノードが何の働きをしているのか作った本人でさえ分からなくなる、分かりやすいコメントor名前をつけておくとよい。

で本題、Groupノードの入力レイヤの数を増やすにはどうするか?Inspektorを見るとLayer Template Countってのがどうやらそれらしい。これに今2が設定されているがこれを左ダブルクリックして値を適当に増やして変更してみる。とGroupノードのInputPinが増える。これでもっとたくさん図形を表示させることが出来るようになる。
入力レイヤを増やす
InspektorはInputPinで設定できない設定をすることが出来る。Inspektorでしか設定できないってのはどういうことかてと、パッチが動作中リアルタイムで変更することができないもので、例えば先のGroupノードの入力レイヤ数はパッチが動作中に他のノードの値を受け取って変更することは出来ない、ということ。

次回はv4の真髄Spreadの設定。


掃除が

大掃除が終わらん。ホコリが出るわ出るわ。
テレビの後ろなんて見たくもない。

去年もおととしもまともに出来へんかったしなぁ。


[v4-その5]簡単グラフィック

今回はRenderer(GDI)ノードを使ったグラフィック描画について。
GDIってのはGraphic Device Interfaceといって、アプリケーションとディスプレイやプリンタの仲介役みたいなやつ。よく知る必要はないのでv4ではグラフィック描画(簡易版)だと思っておくコトにする。もちろんDirectXを使用しての3Dグラフィック描画をするノードもあるがそれは後回し。

どれ位簡易版かっちゅーと。2Dに画面に線を引いたり、点を打ったり、円を描いたりって感じかな。
じゃあまず、新規パッチを開いてRenderer(GDI)ノードを一つ作る。
Render(GDI)ノード
パッチウィンドウに長〜いノードが一つ出来る。そして背景が黒いウィンドウが開かれるね(サイズはとりあえずこのまま置いておく)。このウィンドウに図形を描画して行く。どうやって描画するんだっていうと、Renderノードの一番左端のInputPin、Layersって名前のピンに図形情報を送ってやらなければならない。

図形情報を送ってみよう。Circle(GDI)ってノードを一つ作る、名前通り円を描くノードだ。このノードのOutputPinのLayerをRenderノードのInputPinのLayerに繋ぐと、円の出来上がり。
円を描く
ただこれヒシャゲちゃってるね。もちろん楕円を描いたのではない。試しにCircleノードの3つのOutputPinをマウスオーバーさせると設定可能項目がでる、左からX,Y,Rでつまりx,y座標での位置と半径Rが設定できるだけで楕円な訳ではない。

じゃあ何故ヒシャゲてる?実はグラフィックが描画されているウィンドウの座標の取り扱いにちょっとした決まり事があるそれは、
原点は描画ウィンドウの中心にあり、ウィンドウのx,y軸両方とも-1.0から1.0の間で表記するってこと、普通ならウィンドウの左上端を原点にx方向(画面左方向)へ何pixel、y方向(画面右方向)へ何pixelっていうけど。
初期状態のウィンドウに円を描いた
なのでできたての描画ウィンドウは400x300pixelの4:3の大きさ、なので縦にひしゃげた見え方になる。もちろん、ウィンドウサイズを正方形にすれば解消できるが、それだけぢゃぁ困る。
縦横比の調整
でどうするか。Renderer(GDI)ノードの一番右のInputPin’Viewport matrix transformation’ってノードにスクリ−ンアスペクトを調整する行列を入力してやる。ちょっとムヅイけどやり方は簡単、AspectRatio(Transform)ノードをつくりそのOutputPinを先ほどのInputPinへコネクトしてやる。でもそれだけじゃ変わらないのでAspectRatioノードのAspect WidthとAspect HeightのInputPinをそれぞれ3,4に設定しておく。描画ウィンドウの比率を縦横逆にしていれてやればよい。横の図では分かりやすくする為IOBoxを使って設定しているがもちろんInputPinを右クリックor右ドラッグして変更して構わない。これで正円が描画される。
でも描画ウィンドウのサイズ(比率)をかえてしまうとまたひしゃげるので別の方法で対処する必要がある、けどまた後に。

いまのところはRenderノードには一つずつしか図形をコネクトできないんで、Circleノードの接続をはずして別の図形も描いてみよう。

  • Line(GDI)は線を描くノード
  • Point(GDI)は点を描く、タイプは左から3番目のInputPinで切り替え可能
  • RaundRect(GDI)は角丸の長方形を作る。Radiusを0にすれば、普通の長方形。
  • Text(GDI)はテキスト

他にカテゴリGDIで表示すると色々あるのが分かる。(カテゴリ表示は空ノードを作った直後に右クリック)

てな感じで終了。次はたくさん図形表示とInspektorノード


ちょっと格闘

自宅に持ち帰ってHDのテレビへD4接続、確かに会社のDELL24インチ液晶よりちょいキレイ。

でも。

お〜い!、XboxLiveに繋がらんやーん!
なんだか、接続テストの項目にMTUってのがあるんやけど、これがパスしない。回線が細いかららしい。

通信ネットワークにおいて、1回の転送で送信できるデータの最大値を示す値。
by IT用語辞典

しょぼーん。

よう考えたら、自宅はADSLでも8Mぐらいやったように思う。
でもゲームのためになぁ、太くするってのもねぇ。

と思ったけど、ルータのMTU値を1362から1500に引き上げると繋がった!
回線の太さに関係なく設定できるんやね、まぁあまりに大きい数値はまずいやようけど。

もう一つ、ゲーム中の本体の騒音がごっつい気になる。会社でやったときは音量上げてやってたので気にならなかったが、とにかくひどいファンの音。筺体の大きさといいかなりうっとうしいな。

うぅ。


慣れたら普通


本体とリッジレーサーとコンポーネントケーブル、買ってきました。

ヨドバシポイントを加えて、現金で払ったのは15,551円也、安っ!
ってゆーかどんだけプールしとってん俺。

で、感想やけど、まず重い、重量がね、、、おそらくDVD/HDレコーダ並。
んで、いきなりリッジレーサー始めちゃったので、本体自体の機能はよくわからない。

XBoxLiveはなかなかいいんじゃない。リッジレーサーでいうと、ランキングが出たり他のユーザがアップロードしたゴーストデータをダウンロードできるし、もちろん通信対戦もOK(まだやってはいないが)。

HDな話でいうとキレイです。ただ、1920×1200のPC液晶なためか引き延ばされて表示されているためちょっとぼやけてる。
すげーと思ってたけどやってるうちに慣れてきた。一度自宅に持って帰って、D4出力試してみる。

結論、リッジレーサーはリッジレーサーやわ。