約 1,634,376 件
https://w.atwiki.jp/gameswiki/pages/19.html
Morrowind Overhaul - Sounds And Graphics動画 リンク - Morrowind Overhaul MGE XEリンク - MGE XE Morrowind Graphics Extenderリンク - Morrowind Graphics Extender Morrowind Overhaul - Sounds And Graphics Morrowindのグラフィック改善Modの中ではダントツの有名なMod。 テクスチャやサウンドなどを差し替えます。特に水がきれいになったことがよくわかります。 動画 リンク - Morrowind Overhaul Morrowind Overhaul - Sounds And Graphics - nexusmods.com MGE XE 影やライティングを改善します。 リンク - MGE XE MGE XE - nexusmods.com Morrowind Graphics Extender 水やテクスチャ、ライティングを改善します。 リンク - Morrowind Graphics Extender Morrowind Graphics Extender - nexusmods.com
https://w.atwiki.jp/railsimnewwiki/pages/386.html
台車 ここに記載している写真等を転載する際は、撮影者に許可を取ってください。 住友金属系 台車形式名 FS106(東武 TRF-51M) 撮影者 Weak-field 撮影車両 東武5700系 使用車両 東武5700系東武3070(元5000)系 軌間 1067[mm] 軸距 2400[mm] 車輪径 910[mm] 台車方式 板ばね(ヨーダンパ併用) 軸箱支持方式 ゲルリッツ式(軸箱守) ブレーキ方式 台車ブレーキ/両抱式 レジン制輪子 搭載可能モータ TDK-528/9HM(直流直巻電動機 110kw/端子電圧750V/1,188rpm) 備考 テクスチャへの使用・私的利用はフリー 台車形式名 FS547 撮影者 Weak-field 撮影車両 北総鉄道7300形 軌間 1435mm 備考 M台車/ミンデン式テクスチャへの使用・私的利用はフリー 日本国有鉄道/JR系 台車形式名 TR241 撮影者 Weak-field 撮影車両 JR東日本253系 軌間 1067mm 備考 T台車軸バネ 積層ゴム/枕バネ 空気バネテクスチャへの使用・私的利用はフリー 川崎系(重工・車両・汽車 OK) 台車形式名 TH-1500M 撮影者 Weak-field 撮影車両 京急1500形(GTO-VVVFインバータ車) 使用車両 京急1500形電動車 軌間 1435[mm] 軸距 不詳 車輪径 860[mm] 台車方式 空気ばね車体直結 軸箱支持方式 乾式ゴム入り円筒案内 ブレーキ方式 片抱き式 合成制輪子 搭載可能モータ 東洋電機 TDK-8700A(直流複巻電動機 出力100kW/端子電圧375V/電流300A/分巻界磁電流28A/定格回転数1,460rpm/定格速度41.2km/h)東洋電機 TDK-6160A(かご形3相誘導電動機 出力120kW/端子電圧1,100V/電流84A/周波数50Hz/定格回転数1,455rpm)東洋電機 TDK6162-A(かご形3相誘導電動機 出力155kW/端子電圧1,100V/電流108A/周波数55Hz/定格回転数1,620rpm)三菱電機 MB-3291AC(直流複巻電動機 出力100kW/端子電圧375V/電流300A/分巻界磁電流28A/定格回転数1,460rpm/定格速度41.2km/h)三菱電機 MB-5043A(かご形3相誘導電動機 出力120kW/端子電圧1,100V/電流84A/周波数50Hz/定格回転数1,455rpm)三菱電機 MB-5121-A(かご形3相誘導電動機 出力155kW/端子電圧1,100V/電流110A/周波数55Hz) 備考 テクスチャへの使用・私的利用はフリー 東急系(TS) 台車形式名 TS-1020A 撮影者 Weak-field 撮影車両 東京急行電鉄5080系 使用車両 東京急行電鉄5000系東京急行電鉄5050系東京急行電鉄5080系 軌間 1067[mm] 軸距 不詳[mm] 車輪径 φ860 台車方式 ボルスタレス軸はり式台車 軸箱支持方式 モノリンク式 ブレーキ方式 片抱き式 搭載可能モータ 無し 備考 その他 テンプレート 台車形式名 ((形式名)) 撮影者 ((HN)) 撮影車両 ((系式or形式名)) 使用車両 ((系式or形式名)) 軌間 ((単位[mm])) 軸距 ((単位[mm])) 車輪径 ((単位[mm])) 台車方式 ((名称)) 軸箱支持方式 ((名称)) ブレーキ方式 ((名称)) 搭載可能モータ ((モータ形式)) 備考 ((備考))
https://w.atwiki.jp/rs2c/pages/83.html
今まで少なかったので、製作例をちょっと書いてみる… さて、別のページではテクスチャの描くポイントなどを書いていきましたが、実際に例を出して書いてみたいと思います。 さまざまな例があると思いますが、今回は国鉄特急車両に付いていた「JNRマーク」を例に書いていきます。 JNRマークを描くとなったら、どういう風なイメージをしていくでしょうか。 テクスチャとしてこのまま描いてしまうと、シールを貼りつけた感じですよね。 これを「シール」から「金属パネル」にするためには、イメージできるのは例えばこんな感じでしょうか。 こうやってイメージをしながら、すこしづつ手を加えていくと下のような感じになっていくわけです。 上から1番目:通常の状態 上から2番目:「JNR」の下に影を追加。文字部分を選択し、境界をぼかして黒に塗りつぶし。レイヤーをロゴの下に貼りつけ。 上から3番目:ロゴを選択状態から、上部を白+スクリーンで、下部を黒+乗算でレイヤー貼りつけ。透明度調節を忘れずに。 上から4番目:水色を文字にレイヤーで乗算で薄く塗りつぶし、また筆ツールで適当にまだらを水色で描いてまた乗算。最後に明るさなどを微調整。 こんな感じでしょうか。 最後の工程は+αで良く見えるようにしましたが、上から3番目でもかなり良い感じですよね。 こうやってちょっと手を加えるだけで一気にテクスチャが進化をする訳です。 上で描いたように、「こうなるだろう」というのを実現するだけで、ここまでレベルアップできる訳です。 もちろんペイントソフトをフル活用することもポイントですが、完成した時のイメージをするのも大事です。 地味に実際のモノを観察していると、完成時のイメージがし易いかと思います。 ステンレス表現について 多くの方が既に書いていますが、ステンレス(金属)というのはただグレースケール(白黒)じゃありません。 若干の色があります。だって、金属のものを写真で撮っても、グレースケールになんかなってないですもんね? 私も最近まで単調なグレースケールだった(~E217系)ので、かなり違和感があったかと思います。大反省。 さて、ここでワンポイントテクニック。 ただグレーに青みを加えただけじゃ、「ちょっと青くなったグレー」なんですよね。 もちろんそれだけでも少しは見た目UPですが、ここでもうちょっと手間を加えると面白い事になります。 先ほどのロゴでも水色でまだらを描きましたが、同じように表面にまだらを描き、スクリーン処理で明るくします。 即ち明るくなった部分は「ハイライト」になるわけで、逆に暗くなる影があった方が実感的になりますよね? なので先ほどの「まだら」に対して光があたらなさそうな場所を考えて、影を描き加えてゆきます。 このとき、青に対峙するような赤系に色を使うと、視覚的によりハイコントラストにみえて印象UPです。 赤といえば金属では「錆・劣化」を意味します。使用感も出ていい感じになる…と思いませんか? SSは189系の、やりすぎて超ベコベコになったドア(笑) ところで、E231系では同じステンレスでも仕上げで異なる表面を再現してみましたが、なんだかやっつけ感がありますよね・・・ 実際にドア脇などのフレームと幕板・腰部のヘアライン仕上げ部分は反射でキラキラなのですが、ポリゴン分割ではこんなになっちゃいました。 この方法を使う場合には、貼り重ね用のテクスチャを別に用意して、必要個所以外の完全透過と反射のしすぎを抑える半透過をさせる必要がありそう。 ただあまり拘りすぎても返って浮いちゃうと思うので、テクスチャの頑張りと素材の変化程度で大人しくさせるのが一番みたいです。
https://w.atwiki.jp/ttmario64/pages/13.html
画面の見かた 全部読むのは大変なので分からない奴だけをCtrl+Fで検索するのが吉 画面の見かたLevel Editor Commands Objects Edit Texture Preferences 全体像 Level Editor 一番上の段のやつです Open ROM... ROMファイルを開きます。 Save 改造したROMをセーブできます。 Launch ROM 関連付けしているエミュでROMを起動します。 Edit Texutures テクスチャを弄ることができます。 Preferences... 設定を変えられます。 Quit TT64を閉じます。 Course 編集するコースを選択する事が出来ます Area 編集しているコースが幾つかのMAPに分かれていた場合(例:ペンギン山なら外とレースする場所) そのMAPを表示できます Acts レベル毎に表示できるオブジェクトの表示 とにかくやってみれば わかる Commands Basic 高度な編集は無し設定という設定。 Expert 高度な編集(選べるオブジェクトの増加等)ができるようになります。 Refresh 現在のエリアを再読み込み 3D Objects マップ上のメインの3Dオブジェクトを選択できます。(スター、赤ボム、ワープ、ボス等主要なもの) Macro 3D Objects マップ上の主要以外の3Dオブジェクトを選択できます。(コイン、!ブロック、雑魚敵等どうでもいいもの) Special 3D Objects マップ上の木や土台(浮いてるステージのみ)などスペシャルなオブジェクトを選択できます。 Area Music track マップのBGMの変更が出来ます。 Warp Destinations ワープ位置の設定が出来ます。 Geometry Layout Pointer マリオのモデルID変更等ができる 主要キャラ及びモデルIDの一括変更を参照 Terrain Type そのマップの地面の特性の変更ができる 豆知識を参照 Polygon ID And Pointer Copy Data to RAM Bank Decomp MIO0 to RAM Bank* Load Macro Objects Load Solidity Load Script Bank よく わからない Objects Hexadecimal 幾つかの数値を16進数にする。 Follow Selection 選択したオブジェクトを移動した時に視点も一緒に動かす Selection Boxes マップ上にオブジェクトをどれだけ表示するか。 This Command 現在選択しているオブジェクトリスト(Macro 3D Objectsとかそういうの)のみ Show ALL 全てのオブジェクトを出す(重い) Selection Only 現在選択しているオブジェクトのみ(This Commandとあまりかわらない) Keep On Ground これにチェックをいれておくと選択しているオブジェクトは常に接地した状態になる。 Drop To Ground これをクリックすると選択しているオブジェクトが地面に落ちる。 Activate Level select これにチェックをいれておくとステージ選択でデバッグモードを利用できるようになる 亀とウサギが書いてあるバー 見た目の通り右にずらすほど視界の移動が早くなる。 パレット 編集時の背景の選択。 選択しているオブジェクトが背景と同化してしまう色だった場合使う。 Front,Back,Top,Bottom,Left,Right,Orbit 編集の時の画面が、左から 正面から、後ろから、上から、下から、左から、右から、選択オブジェクト中心 の視点になる。お勧めはOrbit Fly これを選択しておくとMAPを自由に飛びまわれる 操作方法 Shift=前進 ctrl=後退 Alt+Shift=Shiftだけより早い前進 ドラッグ=見渡し Select Object これを選択しておくとオブジェクトをクリックしただけでそれを選択できるようになる。 Rotate Cam ドラッグで見回しができるようになる。 Reset Cam カメラリセット。 オレンジで十字の矢印 緑と赤の線が入っている四角い所でドラッグをすると選択しているオブジェクトが移動する。Fly以外の視点のままやると一緒にカメラも移動するので楽。 青い線が入っている長方形の所を上下にドラッグすると高さが変わる。 下にある設定は Relative=マウスを早く動かすと加速する Absolute=マウスを動かし多分だけオブジェクトが動く ↺上のやつの隣 基本的に操作は同じだが こちらは回転する カメラつき矢印 カメラの向きを変更できる。 隣の長方形の奴は近さを変えられる。 四角いボックスみたいな物が二つならんでるやつ 立体にパースをつけるかつけないか。 Wireframe ワイヤフレームで表示 Culling チェックを付けると隠れた部分を非表示 ワイヤフレーム時に使えば分かる Collision Map ぶつかる部分を表示(マリオが乗れたり、ぶつかったりする部分) Renderer 描画ソフトウェア 基本的にDirectX7で良い Basic,Expert オブジェクトの詳細設定をできるようにするかどうか。Expertがひじょうにオススメ Rom Address そのオブジェクトのアドレス 何に使うのかわからない Copy Param 選択中のパラメータをコピー コピーできるのはModelIDやBehavなど 1つしかコピー出来ないので少し使いづらい Paste Param コピーしたパラメータを貼り付け Copy Hex Data 選択したパラメータをクリップボードにコピー Revert Object ObjectComboを変更前に戻す Act フィーリングで分かると思うが、★が明るくなっているとそのレベルに選択されているオブジェクトが登場する。 Object Combo 四角いリストのような物をクリックするとCommandsにリストが出る。 それをクリックすると選択しているオブジェクトが対応したオブジェクトに変わる。もちろんIDを直接入力してもいい Model ID Object Comboと違いオブジェクトの見た目のみを変える。 Behav Object Comboと違いオブジェクトの効果のみを変える。 Model IDと組み合わせて見た目はスターの1UPキノコなども作れる。 そしてオブジェクトの大きさはBehavによって変わる(ノコノコレース、ペンギンレース等にすると大きくなる) B.Param 1 オブジェクトのパラメーターの設定。 四角いリストクリックでパラメーターを設定できるが、設定できるオブジェクトは少ない B.Param 2 上に同じ X, Y, Z そのまんまオブジェクトの位置情報を細かく設定できる X,Zは+-7800、Yは-6800~20000が有効範囲 マリオの出現位置はこの範囲内に収めないとコース選択後にフリーズするので注意 Rot X ,Y X オブジェクトの角度情報を細かく設定できる Edit Texture Display With Alpha これにチェックをいれておくとマスクを使った状態での表示がされる Export To PNG... 今選択しているテクスチャをPNGで抽出する。 Export To Folder 今選択しているテクスチャをフォルダに抽出する。 Export All To Folder 全てのテクスチャをフォルダに抽出する。 Import From PNG... 今選択しているテクスチャを置き換える。(拡張子PNGのみ) Import One From Folder, Import All From Folder 未実装 一気に全てのテクスチャ入れ替えとかできるようになるのかも Revert Texture From Rom テクスチャをもとにもどす Save Texture To ROM テクスチャのセーブ。一度入れ替えるごとにクリック Mario Size マリオのサイズを変更する。両隣のマリオをクリックすると大きくなったり小さくなったりする。数値入力もできる。 High-Poly Mario 不明。マリオがキレイになるのかも Mario Colors マリオのカラー変更 マリオの色を参照のこと Save Colors To ROM 変更したカラーをセーブする Revert Colors カラーを元に戻す Original Colors 元々のマリオの色に戻る 色の対応位置 上から つなぎの色 帽子の色 手袋の色 靴の色 髪の毛の色(もみあげは含まない) Preferences Load textures from ROM テクスチャをROMから読み込む テクスチャを変更している時の確認に便利だが、読み込みが遅くなる Auto-Save level changes オートセーブ Alternate Orbit cam widget Orbitモードの時の視点の垂直移動とズームを交換する Start with last opened level 次にTT64を起動するときに、前回最後に開いていたレベルを開く Extra info in object lists オブジェクトリストにオブジェクト番号とその説明の間に2つの情報を追加 Auto-open default pop-up menu オブジェクトを選択した時に自動的にメニューを開く Skip checksum checksumを確認しない ROMExtrenderで拡張したROMでは選択不要 checksumを変更した時には選択しないと起動しない 基本的には選択する必要は無い Default Level ROM開いた時にロードされるレベル Start with last opened levelを選択している時は無効 Interface Theme インターフェースのテーマ変更 お好みで
https://w.atwiki.jp/crystel/pages/77.html
全般 新規 (ctrl + N) 開く (ctrl + O) 上書き保存 (ctrl + S) プロジェクトの設定 (ctrl + P) ポストエフェクトビュー (F8) 一般設定 (F9) レンダリング 画像/動画 (F10) レンダリング 音声 (F11) ワイヤーフレーム表示 (4) ポリゴン表示 (5) テクスチャ表示 (6) テクスチャ+エフェクト表示 (7) タイムライン上 ソースを交換(ソースを選択し、ホイールクリック ドラッグ) キーフレーム移動(キーフレームを選択し、ホイールクリック ドラッグ) 表示の大きさ調整(Alt+ホイール回転) 再生/停止(スペースキー) 素材ストックストックウィンドウ上 アイコンのサイズ変更(Ctrl+ホイール回転)
https://w.atwiki.jp/rs2c/pages/120.html
概略 素材を集める床下画像 テクスチャまずは煮込む準備 配置① 配置② 配置完了③ 3枚おろし切り抜き 配置調整とマスク作成 仕上げとモデリング一味加える ダウンロード 概略 701系と同じ工法。写真素材が手に入る前提です。 メリットは手書きより、クオリティとスピードの両立がしやすい事。 デメリットは写真にあわせて全体的なクオリティを合わせる必要がある事。 素材を集める 新鮮じゃなくて可。 床下画像 床下画像を撮ります。撮影するなら曇り昼間。 発車や停車のあたりを連写で狙います。秒間3枚も撮れれば十分です。 動画でもいいのですが、CMOSカメラだと ローリングシャッターにより時折凄い事 になります。 テクスチャ まずは煮込む 準備 つなぎ合わせの作業の前に。 マシンパワーと画面解像度がある人は、 元画像のサイズのまま作業領域をどーんと取ります。 配置① とりあえずまな板に配置。 適宜に場所を入れ替えていきます。 配置② 大雑把に配置したら、飛び飛びになるようにグループ分け。グループごとに結合しても可。 縦に区切った線部分を、消しゴムツール等で消去&ぼかしていきます。 配置完了③ 消しゴムで調整→ズレを直す→消しゴムで調整→ズレを直す・・・の繰り返し。 多少ナナメアングルになってるのは、あとで調整します。 画像補正には ViewNX がフリーで使いやすい。 特に「D-ライティングHS」がかなりいい感じ。 3枚おろし といいつつ今回は5枚おろし。 切り抜き 切り抜きます。 シャープなブラシツールでトレースし、 それを切り抜けば案外簡単に切り抜けます。 配置調整とマスク作成 この時、配置前にキャンパスサイズを1024x1024等にキッチリ決めます。 配置調整中。 アルファテスト切り抜きと、床のブラックアウト用のマスク。 仕上げとモデリング テクスチャの色味調整とシャドウ付け。 ポリゴンにマッピング。 一味加える 上の黄色い箱部分ですが、普通なら真っ黒に塗りますよね。 ここはグラデーションをつけてみます。 雰囲気がだいぶ違います。 説明からは程遠くなりましたが。これでおしまい。 ダウンロード 無サポートで良い方のみ、ダウンロードしてください。 .
https://w.atwiki.jp/darui_program/pages/224.html
今回は、Toonシェーダーを実装します。 Toonシェーダーは、3Dモデルをアニメ調に見せるためのシェーダーです。 アニメや漫画が原作のゲームでよく使われています。 詳しい解説は、wikipediaに・・・・ http //ja.wikipedia.org/wiki/%E3%83%88%E3%82%A5%E3%83%BC%E3%83%B3%E3%83%AC%E3%83%B3%E3%83%80%E3%83%AA%E3%83%B3%E3%82%B0 以下、実装 //グローバル変数宣言 float4x4 world; float4x4 view; float4x4 projection; float3 light = float3( 10.0f, 10.0f, 10.0f ); // ライトの位置 sampler2D diffuseTexture = sampler_state { MinFilter = Point; MagFilter = Point; WrapS = ClampToEdge; WrapT = ClampToEdge; }; sampler2D specualrTexture = sampler_state { MinFilter = Point; MagFilter = Point; WrapS = ClampToEdge; WrapT = ClampToEdge; }; //入力頂点構造体 struct VS_INPUT { float4 position POSITION; //頂点座標 float3 normal NORMAL;//法線ベクトル float4 color COLOR00;//色 }; //出力頂点構造体 struct VS_OUTPUT { float4 position POSITION; //頂点座標 float3 normal TEXCOORD1; //法線ベクトル float4 color COLOR0; //色 float3 light TEXCOORD0; //ライトベクトル float3 view TEXCOORD2; //ビューベクトル float3 halfAngle TEXCOORD3; //二等分ベクトル }; //頂点シェーダー VS_OUTPUT vs_main( VS_INPUT input, uniform float4x4 world, uniform float4x4 view, uniform float4x4 projection, uniform float3 light ) { VS_OUTPUT output; //モデルビュー行列 float4x4 WV = mul( world, view ); //法線ベクトルの座標変換 output.normal = mul(input.normal,(float3x3)WV); //モデルビュー透視変換行列 float4x4 WVP = mul( WV, projection ); //頂点座標の座標変換 output.position = mul(input.position,WVP); //色の設定 output.color = input.color; //視点座標系の頂点座標を求める float3 PosEye = mul( input.position, WV ); //視点座標系のライト座標を求める float3 LightPosEye = mul( light, (float3x3)view ); //ライト方向のベクトル float3 L = normalize( LightPosEye - PosEye ); output.light =L; //視点方向のベクトル float3 V = normalize(-PosEye); output.view = V; //二等分ベクトル float3 H = normalize( L+V ); output.halfAngle = H; //ビューベクトルの設定 output.view = V; return output; } //ライトカラー float4 Ambient = float4( 1.0f, 1.0f, 1.0f, 1.0f ); float4 Diffuse = float4( 1.0f, 1.0f, 1.0f, 1.0f ); float4 Specular = float4( 1.0f, 1.0f, 1.0f, 1.0f ); //マテリアルカラー float4 Ka = float4( 0.2f, 0.2f, 0.2f, 1.0f ); float4 Kd = float4( 0.6f, 0.6f, 0.6f, 1.0f ); float4 Ks = float4( 1.0f, 1.0f, 1.0f, 1.0f ); float power = 90.0f; //入力ピクセル構造体 struct PS_INPUT { float4 color COLOR0; //色 float3 normal TEXCOORD1; //法線 float3 light TEXCOORD0; //ライトベクトル float3 view TEXCOORD2; //ビューベクトル float3 halfAngle TEXCOORD3; //二等分ベクトル }; //ピクセルシェーダー float4 ps_main( PS_INPUT input, uniform float4 Ambient, uniform float4 Diffuse, uniform float4 Specular, uniform float4 Ka, uniform float4 Kd, uniform float4 Ks, uniform float power, uniform sampler2D diff, uniform sampler2D spec ) COLOR0 { //ライトベクトルの正規化 float3 L = normalize( input.light ); //法線の正規化 float3 N = normalize( input.normal ); //ビューベクトルの正規化 float3 V = normalize( input.view ); //二等分べkとるの正規化 float3 H = normalize( input.halfAngle ); //ディフーズ float diffuse = max( dot( L, N ), 0 ); //スペキュラ float specular = pow( max( dot( N, H ), 0 ), power ); //環境光 float4 totalAmbient = Ambient * Ka * input.color; //拡散反射光 float4 totalDiffuse = tex2D( diff, float2( diffuse, 0 ) ); //鏡面反射光 float4 totalSpecular = tex2D( spec, float2( specular, 0 ) ); return totalAmbient + totalDiffuse + totalSpecular; } //テクニックの指定 technique toon { //パスの指定 pass Pass_0 { CullFaceEnable = true; CullFace = Back; DepthTestEnable = true; //デプステストを有効 VertexProgram = compile arbvp1 vs_main( world, view, projection, light ); FragmentProgram = compile arbfp1 ps_main( Ambient, Diffuse, Specular, Ka, Kd, Ks, power, diffuseTexture, specualrTexture ); } } 実行結果 今回は、テクスチャを使用しているので、C++のプログラムの変更が必要になります。 変更点は、 以下の変数の追加 //パラメータ 拡散反射用テクスチャ CGparameter diff = NULL; //パラメータ 鏡面反射用テクスチャ CGparameter spec = NULL; //Diffuseテクスチャ unsigned int diffuse; //Specularテクスチャ unsigned int specular; 以下の、プログラムの追加 //初期化部分で追加してください //テクスチャの読み込み TGATexture load( 0, "DiffuseTexture.tga" ); TGATexture load( 1, "SpecularTexture.tga" ); //IDの取得 diffuse = TGATexture getID( 0 ); specular = TGATexture getID( 1 ); //パラメータの取得 diff = cgGetNamedEffectParameter( effect, "diffuseTexture" ); spec = cgGetNamedEffectParameter( effect, "specualrTexture" ); //パラメータの設定 cgGLSetupSampler( diff, diffuse ); cgGLSetupSampler( spec, specular ); 追加のテクスチャ読み込みプログラムと テクスチャを入れたzipを上げておきます。 toon補助用.zip 今回は、ここまで。
https://w.atwiki.jp/slice/pages/42.html
(2009/05/29) このままだと先が見えないのでひとまず 現状報告代わりにSTGとFPSの2つ動画作ってしまう方向で作業中。 まずはSTGから取り掛かる。 早速問題発生。 今の実装だとマップを描画するのにライトマップをポリゴン一枚に付き一枚確保してるので ポリゴン一枚一枚テクスチャ切り替えるという凄い無駄な事をしないと描画できないのだ。 XboxだとそうでもないらしいがPCだとテクスチャの切り替えが結構負荷が高いらしく激遅。 (自分の場合は更にオンボードなので余計) マップ以外何も表示しなくても30fpsとか何の冗談だ。 動画を保存する負荷とあわせて20fpsとかなったら格好悪いなあ・・ なのでBSPというかPVSをきちんと整備して余計なマップは極力描画しないようにした。 と、ここまで読んで「あれ?FPSの4つ目の動画で既にやってんじゃないの?」と思った人も居るだろう。 でもそれはFPSの話でしたー STGではやってなかっただけです。ああそれだけです、すいません。 ついでといっては何ですが、前より空間分割の効率が良くなるよう細工したし ランダムマップではないモデリングツールで作ったマップを使う場合に ある程度ポータルが生成される場所を指定できるよう改良した。 FPSもランダムマップオンリーじゃないので後々役に立つかと。 (2009/05/27) キー入力部分を適当に作ってたのでキー割り当てが出来ないしジョイパッドも対応してない等 そろそろガタがきていたので キー入力マネージャ、と言う程大層な物ではないがそれ関係のソースコードを全部書き直し。 そしたら今までキー入力判定していた他のソースも変えなきゃいけなくなってさあ大変 .....という事をしてました。 努力の甲斐あってか少なくとも今のところは ジョイパッドのアナログ入力、キーボード、マウスすべて正常に動いている。 でも振動はまだやってないなあ。 今回調べて初めて知ったんだけどDirectInputにはコントローラを振動させるという機能は無いんですね。 フォースフィードバックという機能があるのみ。 フォースフィードバックとはレースゲームでハンドルを回そうとしたら逆向きに抵抗ががかるというアレです。 アレですって言ってるけど実際に対応コントローラを触ったことないし、店で見かけた記憶も無いので 出回ってるんだろうか?という印象が拭えませんがどうなんでしょう? リアルといえばリアルだけど操作性も悪くなるし無理に力を加える訳だから故障も多そうだしなあ・・ で、このフォースフィードバック機能で右向きの力、左向きの力、右向きの・・・と非常に短い周期で交互に力を加えてやれば 振動が再現できますねと。調べたらそういう事っぽいです。 市販のPCジョイパッドで振動に対応してる物はフォースフィードバックの信号を 独自に解釈して内部のモーターを回す等して振動させているらしい。右向き抵抗=右側のモーター回す とかそんな感じで。 自分はPS2のコントローラをコンバータ介してPCにつなげてるけど、コントローラの調整ウィンドウから察するに この製品が対応してる振動って強弱の2種類だけかなあ。 あとUSBの電圧の限界なのかPS2に繋げたときより振動がちょっと弱い気がする。 #追記 色々やってみた結果 左右のモータに送る電流に対してある時間におけるON/OFFの割合を変化させることで 強さのバリエーションを持った振動を起こせるようだ。 例えばOFFの時間を多くすれば弱くなるし逆も然りだ。 (そういえばこれってマザボのファンの制御設定とかで見かけるPWMという制御方法ではないか) PS2の場合は左右のモーターで振動の特性が違うから研究すれば面白いかもね~というかゲームメーカーは当然してるんだろうね。 まあでも様々な振動を起こす事が現段階では重要ではないので とりあえずそれがわかったという時点で一旦辞めておきたい。 だって、PCだからなあ・・・ パッドが変わればまた振動の強さとか調整しなきゃいかんだろうし そもそもパッド持ってない人も居ると思うし。 (2009/05/25) パーリンノイズ自体は実装したものの(しかも殆どサンプルのコピペだが)、まだやってない。 それとは別に調整が必要な変数値をリアルタイムにいじる機能の強化をしていた。 スクリーンショットに度々出てるウィンドウの事です。 現状ではアプリケーションを閉じると調整した値は保存されるけど、何の変数をどこに開いていたかが すべて初期化されてしまうんですね。 理想的には終了時テキストファイルにどの変数をどの辺に開いていたのかを記録しておいて 次回起動時に復元できればいいなと。 という様な機能を付け加えてました。 そしてテキストファイルをメモ帳で開いて書き加えられれば便利なので ウィンドウ位置は座標ずばりではなくて四隅のどの角に近かったかだけ記録。 実際のウィンドウの座標は重ならないように自動的に調整して配置する仕組みを作った。 で、これが手こずりまして。 左上に配置するとしても、同じ左上に関連付けされたウィンドウだけでなく 対岸の角のウィンドウ(左下とか右下とか)と重なっていないかとか判定しなきゃいけない、 コリジョン判定の必要があるんですね。 どうせ四隅だけだろ~簡単簡単。ウィンドウの横サイズは全部同じで高さが違うだけだし とか甘く見て取り掛かったので大変でした。そんな事がありましたとさ。 次はジョイパッドの本格的な対応をするつもり。 とりあえずの目標はデジタル入力だけだが できればアナログ入力と振動機能も入れたいな。 (2009/05/22) 煙の移動制御について、温度と空気の粒子密度が高いほど上に移動するようにしてるのだが 眠いときに組んだ部分だからか 本来なら空気の粒子密度テクスチャをセットする筈の所でなんとテクスチャをセットしてなかった! 私が一番びっくりですよ。 例えるならカップ焼きそばのお湯を注いで捨てる前にソースをかけてしまった位の衝撃。 それはともかくテクスチャをセットしてないのに読もうとするとどうなるか? 経験から言って大抵は砂嵐になるか以前セットしたテクスチャの断片(しかも所々上書きされてたり)が読み込まれる。 それでトップページのように「煙に見えなくも無い煙」が生成されていたのだから、現実は奇なりというか。 で、ちゃんとテクスチャをセットして描画したら今度は驚くほどノッペリした煙(というかもう白い水飴だ) になるから頭を抱えてしまう。 だが待って欲しい(自分が)。出鱈目テクスチャを使ったらうまくいったのだから・・・ てことはパーリンノイズ・・とかランダムなテクスチャを設定しておけば 先日の「少しはそれっぽい煙」になるのか・・・・・?? (2009/05/21) 引き続き煙と格闘中。 しかしなんだろう、ピクセルシェーダー2.0って分岐命令とループ命令が無いんだけど if文を2重3重かませても上手いことcmp命令や飽和命令などを使ってコンパイルしてくれるHLSLコンパイラは凄いと思う。 流石にfor文は厳しいが・・ もちろんあまりにも複雑な分岐は処理しきれないんだろうけど 今まで文法エラー以外でコンパイル拒否された事は水面の処理を書いていた時の一回しかない。 (確かテクスチャ参照に使うUV座標の計算が複雑すぎるとか何とか怒られた) 条件付代入や飽和加算命令があれば使用命令スロット数は多くなろうが大抵のプログラムは記述できる・・・とか 誰か偉い人が論文を発表してそうだな GPUのシェーダー言語は実行中に外部から変数を書き換えられる事を考慮しなくて良いのと 完全に内部で処理が完結(キー入力判定とか外部のメモリを読み書きしない)から出来る芸当なのかな? (2009/05/20) ずっと流体シミュやってる気がするが・・・今は煙をやろうかと試行錯誤。煙が終わったら次は炎を。 なんというか、煙に見えるようなパラメタの調整が難しいなあと。 ただまあシミュレータではなく純粋にゲームが作りたいので物理的に正しいかとかその辺は無視するつもり。 (2009/05/16) なんか流体シミュがそれっぽく動くまで気になるから寝られないという、凄く下らん理由で徹夜してしまったので凄く眠い でもまあ、一応動いたから良し。 ただ、本当にそれっぽく動いてるだけだ。 気体や液体をかき混ぜたら渦が出来ないと駄目だろう。現時点では出来てない。 それに染料を置いた部分から周囲に流れを発生させても染料が薄くならないのであたり一面真っ白になったりする。 これについては文献に解決策云々の記述が無いのだが・・・見落としたか? あとはまあリアルタイムで使う訳じゃないのでそんなに気にしてない事だが 処理速度の問題。256x256のテクスチャで処理して30fpsなのだが思ったより動くと言うべきか、やっぱオンボード遅ぇと言うべきか・・・ (2009/05/12) 先日のGPU Gemsを更に読み進めて 2Dの流体シミュは大体実装は出来そうだ。 でも数式が一箇所だけ納得いかない(理解できてない)のでまだ実装には至ってない。 (HTML版は記号の誤記が数箇所と1つ画像が無い場所があるなあ・・) 3Dの流体シミュは素直に2Dから3Dに拡張するだけなので割とすぐ・・かな? 何が難しいかと言うと表示で、主にそれの為に文章の大半が費やされている。 現在のGPUでは3Dのテクスチャを立体的に表示する機能は無いので 現行のシェーダーを駆使し何とかして表示しましょうという話。 ところでゲームに使わないなら何故そんな事を勉強していると思われるだろうが 処理が重すぎて直接的には使わないが何らかの形でゲームに組み込む予定だ。 (2009/05/11) 進捗・・・はプログラムコード組んでないから一切無し! だけど精神面のレベルアップはしたかもしれない 少なくとも英語の文献読んで速攻眠くなるという事はなくなってきた。 gpu gems以外の資料も読み始めている。 同じサイトの別のページのpdfとか。 もうちょっと時間掛かりそうだね。 話は変わってちょっと前にトーンマッピングの明るさ調節に遅延を持たせる実装をした。 要するに暗いところから明るいところをいきなり見たら目が慣れるまで時間が掛かるのを再現しましょうという話。 (ついでに複数フレームにわたって処理するから負荷軽減にも役に立って二度おいしいねと) 現状だと明るさが10フレーム遅れて線形に変化するからまだ機械的な感じがして違和感が。 場合によっては遅延ナシの方が良い。改良の余地あり。 (2009/05/09) 引き続き流体シミュのページを読むのに四苦八苦。 日本語で読んでも理解できるかな?って感じなのに英語だと、ねぇ。でも頑張るが。 ソースコードの部分読むとやってることはそんなに難しくは無かったりする。 関係ないけど「数式」って何であんな難しそうに見えるんだろう・・・ 一つ問題が。今は煙のシミュレーションをやろうとしているのだけど シミュレーション自体は出来るとして、煙の表示はページ読む限り ビデオカード買わないと表示できません。 サンプルコードでは液体の表示にジオメトリシェーダなんぞ使ってるけど、煙の場合は・・最低でもShaderModel3.0じゃないと無理だと思った。 (2009/05/05) 後々GPUを駆使した流体シミュレーションなんぞをやりたいと思っているので NVIDIAのサイトで勉強。 恐らく最新のGPUをもってしてもゲームに使うには重すぎるからFPSに使う予定は無いんだけど ゲーム本体のプログラムが煮詰まってしまったので、気分転換のつもり。 思ったんだけど 英語がさして上手くない人が英語の文章を読むのは日本語の倍労力を使う。少なくとも自分はそうだ。 だけど将来の為という事で。 今日はそんな事を半日も頑張ってやっていたので(しかもあまり読めてない)まだ寝る時間でないのに眠くなって 妙な時間に寝てしまった。 そしてまた生活リズムが崩れるという。 (2009/05/04) ソフトパーティクルやってみた。 やる事は単純で、描画する位置のZ値とスプライトのZ値が近いほど透明度を高くするだけ。そんだけ。 なのだが! またしても初歩的なミスを犯してしまい時間食いまくった。 少しでも処理速度を稼ごうとしてマルチレンダリングターゲット(MRT)を活用しつつ組んだのが事の発端である。 MRTは複数の描画先(テクスチャ)に一度に描画する機能だ。 MRTには制限がある。 α合成に対応してないハードウェアがある αテストはできない MRTのテクスチャはすべて同じサイズじゃないといけない 加えて同じビット深度(1ピクセルに使うビット数)でないといけない ステンシルテストもできない フォグは無し とまあ、そんな感じなのは知っていた。でも今回のミスはそこではなくて。 ソフトパーティクルに使う比較用Z値を格納するテクスチャ形式としてD3DFMT_G16R16(Redに16bit,Greenに16bit) というのを使って描画を試みても砂嵐になってしまうのだった。 なんでかねと思って色々変えて試したら、どうやらα合成を切るとうまく動く。 ちなみに自分が使ってるのはAMD690GというオンボードだけどMRTのα合成に対応しているのは確認済み。なんでやねん。 で、小2時間くらいまた試して悩んで結局はG16R16というテクスチャ形式自体がα合成に対応してないっていうしょ~もない原因だった。 多分使ってないチャンネルは1が入ってるものだという先入観だろうな~ 結局メジャーな形式であるA8R8G8B8(Red,Green,Blue,Alpha各8bit)の各色成分に 本来24bitで記録されている深度値を分割して格納するというまあみんな知ってるよ的な方法で解決した。 最初からそうしろって? 分割して格納するのってちょっと重いじゃん、読み出すのもやっぱり重いじゃん。 ソフトパーティクルに使う深度値は16bitの精度あれば全然OKそうだからじゃあG16R16つかえばいいんじゃね?という甘い考え。 まあ最終的に動いたからいいか。 (2009/05/02) おお、しまった。もう5月か。このゲームがいつ完成するんだか私にもわかりません。 まあそれはさておき。 影、水面をやったらHDRもやりたいなという事でトーンマッピングをしてみた。 トーンマッピングは暗いところや明るいところを見てると次第に目が慣れてきて地形や物の形状がわかるようになる、という処理。 明るさの調節とも言うかな。 次は極端に明るい箇所から光があふれ出ているように見せるブルームエフェクトをやる予定。 いや、その前に軽くソフトパーティクルやるかも。
https://w.atwiki.jp/rs2c/pages/80.html
ぶっちゃけ、RSPIって鉄道模型をバーチャルにしたようなものだから… テクスチャ関係、特に汚しや陰影についてお悩みの方は沢山いらっしゃると思います。 正直私自身もその2つは不得意です。なので結構やっつけ仕事なのが分かるかと思います(汗 そこで、"RSPIを実物にした"ような模型から、汚しや陰影のテクニックを学ぶ事にしましょう。 意外と「これをどうしたい時にああすればそうなる」と覚えておくと、便利かもしれません。 スミ入れ スミ入れは、工作をする方なら最もポピュラーなグレードアップ方法という事で知られていると思います。 やり方は人それぞれだとは思いますが、最も一般的な方法は、薄めたエナメル塗料を隙間に流し込んで、はみ出た部分を溶剤でふき取るというものです。 これを用いることにより、モールドを引きたてたり、簡単なウェザリングになるなどの利点があります。 これはRailSimPIで行うのは非常に簡単。完成したテクスチャの上から、モールド=段差の描き込みにそって黒等の線を引き、 それを乗算処理であわせてしまえばハイ、完成です。 シャドウ吹き シャドウ吹きは、模型の造形を強調するために吹かれる塗装です。これは凹んでいる部分には基本色よりも濃い色を吹いてやる事をいいます。 やはりミニチュアとなる模型と実物では見え方が異なりますから、こういった陰影の強調がポイントとなります。 確かにRailSimの影というのは非常によく出来ていますが、そこに生まれる影がすべてではない事を忘れてはいけません。 例えば曇りでも上の方が明るくて下が暗い、というのは常識でしょう。 なので、PIでもテクスチャ側に陰影をしっかり入れることによって、見た目が大きくグレードアップします。 あとは、エッジ(角)の強調も半分以上はテクスチャの仕事です。こちらも陰影の一つですからね。 実際のやり方は人それぞれだと思います。側面形状に沿った影の作り方に関しては、自身の書いた「プラグインの作り方」に 書いてあります。でも実際はそれをそのままマネするのではなく、いろいろと工夫するのが大事だと思いますよ! ウォッシング ウォッシングとは、汚し技法のひとつです。まず、非常に薄めた黒等のエナメル塗料を、塗装が完了したモデルに塗ります。 この時注意したいのは、モデルの塗装にはラッカー系を使用することです。 そして薄めた塗料を、今度は溶剤でふき取っていきます。これはティッシュ、筆、綿棒などのツールが手です。 そしてふき取ると、モールドにはふき取られない塗料が残り、"スミ入れ"をした状態になります。 このふき取り作業がポイントで、例えば重力や風など、その製作中のモデルに加わる力を考えながらふき取ります。 そうすることによって、実際に用いられた時の汚れ具合を再現できるのです。また、完全には塗料はふき取りません。 こういった動作をした後のモデルは、先ほどの"スミ入れ"だけではなく、ふき取らなかった部分が汚しとなって、ウェザリングができるのです。 これをRaliSimPIに応用したらどうでしょうか。まず、完成したテクスチャにレイヤーを張り重ね、黒や茶などを張り重ねます。 そして用途に応じて消しゴムで消してゆき、濃淡は透明度で調整。車両やモノの動きにあわせて追加でレイヤーを張り重ねてやれば良いと思いませんか? ドライブラシ ドライブラシは、筆に塗料をしみこませてすぐにふき取り、筆がカサカサな状態でモデルを拭いていくという技法です。 塗料には、基本塗装よりも明るい色を用います。こうすることにより、出っ張った部分が明るくなり、立体感が強調されます。 こうやって出っ張った部分を明るくするのは、「ハイライト」ともいいます。 読んでいて薄々気付いた方も多いかと思いますが、スミ入れやシャドウ拭きなどといった「影を入れる」のではなく、逆に明るくする動作です。 これも立体感を演出するには非常に大事なポイントとなりますね。 色を暗くするのは「黒などの暗色+乗算」でしたが、逆にハイライトでは「白などの明るい色+スクリーン」を用います。 だいたいのやり方は単純で、明るくしたい部分に白などをレイヤーに描きこみ、スクリーン処理+透明度調整を行います。
https://w.atwiki.jp/mmdsky/pages/45.html
塗装・リペイント講座(建造中) このページでは自作モデルの塗装および既存モデルのリペイントについて解説していきます。 使用するソフトウェア MMDに限らず、3DCGにおける塗装データ(テクスチャ)は何の変哲もない画像データ(JPG,PNG,BMPなど)です。 これを編集するわけですから、画像編集ソフトが必要となります。極端な話、Windows標準のMSペイントでも構いませんが、編集時の利便性を考えるとレイヤーが利用できるソフトを激しく推奨します。 フリーソフトであればGIMPが最もメジャーです。利用者数も多く、歴史もあるソフトなので検索すればチュートリアルや解説本が見つかると思います。もちろんPhotoshopをお持ちであれば、そちらを使って頂いて構いません。 用意しておきたい素材 資料写真 まず何にせよ、資料となる写真が必要です。モデリングと同様に、WikipediaやFlyteam、Airliners.net(英語)で検索してみると資料になる写真が見つかるでしょう。Wikipediaは日本語版だけでなく、英語版もあたってみると良いと思います。(ページ左側から他言語版にアクセスできます。)もちろん自分で撮った写真があれば、それで全く問題ありません。 書籍であれば月刊エアラインなども資料になると思います。 フォント(書体) 実際の塗装と同じ、あるいは類似したフォント(書体)をインストールしておくとリアルになります。 フライトシムのリペイントを制作なさっているSugiyasuさんによるサイト「EXhibitionEntrance」では、機体記号(機体番号)や航空会社のロゴを模したフォントが配布されています。以下はその一例です。 専用フォントでなく、一般に使われているフォントがロゴ等に採用されている例もあります。例えばANAのタグライン(キャッチコピー)「Inspiration of JAPAN」はMyriadというフォントになります。ほら、ちょっとリアルに見えるでしょう? ロゴなどのベクターデータ テクスチャにおいて航空会社や航空機メーカーのロゴは命です。ロゴデータは自作するのが難しければ、既存のベクターデータを活用することをおすすめします。ベクターデータは、いくら拡大しても劣化せず、色なども自在に変更できるのでリペイントの素材に最適です。(もっとも、最終的なテクスチャは拡大すると劣化してしまうのですが…それでも作成途中は劣化なしというのは大きなメリットです) ▲ベクターデータの概念 ロゴのベクターデータを入手する場合、Wikipediaが最も容易だと思います。航空会社の項目を開くと、たいていの場合ロゴの画像があります。そちらからファイルのページを開いて、SVG形式のデータを保存しましょう。(PNGだと普通に画像になっちゃうので気をつけてください) 日本語版Wikipediaにない場合は英語版を漁ってみる、"○○(航空会社名英語表記) logo vector"あたりで検索してみる…などいろいろな手段を試してみましょう。どうしても見つからない場合は自作することになりますが、有名な航空会社であればネットの何処かで見つかると思います。 SVGデータはGIMPでも開けます。もしSVGデータを編集するのであれば、GIMPよりもInkscapeがオススメです。ただ、Inkscapeだけではテクスチャ作成に適しないのでGIMPと併用していくのがベストでしょう。 リペイント・テクスチャ作成にあたっての基礎知識 UVマッピング 端的にいうと、「展開図」です。小学校で習ったサイコロの展開図なんかを思い出してください。 すべての3DCGデータは、どんなに複雑であっても展開図を生成できます。(もちろん、複雑であればあるほど、サイコロのような単純な展開図とは程遠い代物になりますが)その展開図に描き込まれた画像を3DCGに貼り付けるのだと考えていただければ結構です。 ▲UVマッピングのイメージ。複雑な立体でも同様の処理が行われると考えて良い。 モデリング後、この展開図を作成する作業をUV展開とよびます。基本的にはCGソフトが勝手に展開してくれますが、人力での調整も必要になります。 リペイントする場合はモデル作者さんがUV展開図を用意していることが多いので、そちらの上に画像を描き込んでいくことになります。 リペイント このページは書きかけのページです。 [部分編集] 名前 コメント