「その他いろいろ」の編集履歴(バックアップ)一覧に戻る
その他いろいろ - (2012/06/19 (火) 16:48:09) のソース
その他いろいろ 講座のほうでは説明のなかったあれこれを淡々と記述していきます。 ---- &link_anchor(1){マップ表示ソフト「BSP Viewer」} &link_anchor(2){木を植える} &link_anchor(3){水を使用する} &link_anchor(4){アニメ処理を使用する} &link_anchor(5){疑似スポットライトの使い方} &link_anchor(6){物体の変形(Vertex tool)} &link_anchor(7){霧の表現} &link_anchor(8){半透明オブジェクトの作成} ---- &aname(1){} **マップ表示ソフト 「Bsp Viewer」 TESHIMA氏が作成したBsp Viewerがあります。 SKを起動せずにマップの確認を行うことが出来ます。 詳しくはマップ掲示板へ。 ttp://space-town.net/~teamsk/c-board38/c-board.cgi?cmd=one;no=1100;id=img ---- &aname(2){} **木を植える 木の表現についてはまだ不明な点が多いので、分かり次第追記します。 ---- &aname(3){} **水を使用する マップ掲示板のTESHIMAさんの記事にちょうどいいものがあったので使用させてもらいます。 マップ掲示板のTESHIMA氏の記事より引用 ▼水板ポリの作り方 (1)先頭は「!」で始まるテクスチャをワーリーに登録しておく。 (2)ブロックを作り、上面(又は下面)に(1)を貼り、他はskyテクスチャにしておく。 (3)上記ブロック選択⇒「エンティティに変換」で「func_wall」にする。 ※水板ポリより下は「水」として認識させます。 よって、工程差のある水面が表現出来るかと…。 INIファイルにより、テクスチャ指定で下記を設定出来るようにする予定です。 ・区分:木/水/溶岩… ・テクスチャをスクロールさせる方向(U/V) ・アルファ値:0~255(透明度) ・透過のON/OFF(木テクスチャ用) ・ダメージ(溶岩用) ※あくまで暫定ですので、変更する場合があります。 ・水の表現ですが、みでぃ狂さんに教えて頂いた func_water を使います。 (ブロック選択⇒エンティティ化⇒func_water) ・テクスチャ名先頭が'!'で半透明表示。 ・プロパティ FX Amound で透明度セット(0~255) ・テクスチャ名先頭が'!00~'でアニメ表示。 ・木等の板ポリには func_wall を用います。 ・透過色は青(RGB=0,0,255)に変更。 以上 ---- &aname(4){} **アニメ処理を使用する 水のエフェクトを応用することでアニメ処理をすることができます。 まずはアニメーション画像を用意します。 ファイル名は !00○○.jpg~!16○○.jpg のように連番にしてください。 Wallyを起動し、.wadファイルを開いてください。 画像を追加して保存してください。 HammerEditorを開きます。 ブロックを用意します。 6面のうちの一つの面に「!00○○.jpg」を貼ります。残りの面には「sky.jpg」を貼ります。 ブロックを右クリック→「エンティティに変換」→「func_wall」にします。 コンパイルをして、SK上でアニメーション表示ができていれば成功です。 ---- &aname(5){} **疑似スポットライトの作り方 mixiのこいぬさんの記事を元に、一部修正したものを載せています。 以下引用 まずは基本的なライトエンティティの説明をします。 #image(00.jpg) 画像を見てください。エンティティの中から「light」を選択して配置してあります。 ウィンドウ内はBrightnessの指定になっています。 4つの数字はそれぞれRGGカラー、明るさを意味しています。 画像の場合は 255 255 128 200 R=255 G=255 B=128 明るさ=200 になっています。 #image(01.jpg) これはZHLT Falloffの設定です。 これは「光の減衰」を設定する場所です。 ちなみにこのライトはDefaultになってます。 選択できる項目は Default = 減衰無し Inverse Linear = 距離に応じて減衰 Inverse Square = 距離の二乗で減衰 となっており、下を選べば選ぶほど遠い場所が暗くなります。 (光の明るさそのものは変わりません) SK内で光を指定する場所はiniファイルの中の // ライト有効距離 光の有効距離(半径) LIGHT_LENGTH=40 この部分です。 機体に対して光の当たる距離がこの数字で設定できます。 ライトの減衰はコンパイルするときにテクスチャに適用されるので、これが見た目の光の範囲になるのですが、実際に機体に当たる光はiniファイルで設定します。 この数字を調整しないと「マップは暗いのに機体が光っている。」、「マップは明るいのに機体は暗い。」という現象が起こりますので注意してください。 #image(02.jpg) うまく設定ができていると、ゲームではこのようになります。 では疑似スポットライトの作り方について説明します。 #image(03.jpg) 疑似スポットライトは「ライトのグラフィック」「lightエンティティ」「Light_spotエンティティ」によって作られています。 「light_spot」は照らされた地面だけが明るくなるというちょっと変わったエンティティです。 空間が明るくなるわけではないので、それだけでは不自然になります。 「light」を追加して、発光しているように見せかけます。 #image(04.jpg) まず「light_spot」エンティティを配置します。 光の色や強さ、減衰に関しては通常の「light」と同一です。 「light」エンティティと違う部分は光の方向を指定できる事です。 ピッチ・ヨー・ロールがそれになりますが、ここでは数字を入力したりせず別の方法を使用します。 #image(05.jpg) #image(06.jpg) これは「info_target」と呼ばれるエンティティです。 光を向けたい位置にこれを置いて、プロパティ内で名前をつけます。 このターゲットは「target1」という名前がつけられています。 再びlight_spotエンティティに戻ります。 #image(07.jpg) プロパティでtargetを指定します。 ここの名前に先ほどのinfo_targetの名前「target1」を指定します。 これでlight_spotとinfo_targetが関連づけられました。 #image(08.jpg) #image(09.jpg) 関連づけられたエンティティは「表示→エンティティ間の連結を表示」で見ることができます。 英語表記の場合は「Show Connections」になります。 このコマンドを選択すると、関連づけられたエンティティ同士の間に線が引かれます。 関連づけの確認にとても便利です。 #image(10.jpg) 「light_spot」のすぐそばにlightを設置しています。 それらしく見せかけるためには「light_spot」の後ろに設置します。 色の指定は「light_spot」と同一にします。 光が球形であることをバレにくくするために、かなり暗めに設定してあります。 #image(11.jpg) 実際の画面ではこのように表示されています。 #image(12.jpg) ちなみに「light」エンティティを設置しない場合はこうなります。(右が設置しない場合) 「light」エンティティと「info_target」を関連づけると、「light」エンティティは自動的に「light_spot」エンティティ扱いになります。 「light」が発光しなくなりますので注意してください。 以上 不明な点がございましたら、こいぬさんに質問をお願いします。 ---- &aname(6){} **物体の変形(Vertex tool) mixiのこいぬさんの記事を元に、一部修正したものを載せています。 以下引用 #image(13.jpg) これが「Vertex tool」のアイコンです。 変形したい物体を選択し、このアイコンを押すと特殊な変形を行うモードに切り替わります。 Vertex toolは物体を自由に変形させることが可能ですが、そのために「ありえない形」に物体を変形させてしまうことも出来てしまいます。 コンパイルエラーの元になったり、単純にsaveすら出来なくなったりしてしまうことがありますので注意してください。 #image(14.jpg) これはグリッドの調整アイコンです 物体の変形や移動はグリッド単位でしかできません。 グリッドからずれた物体は動かすとグリッドに合わせて修正されます。 なので-や+を押してグリッドは使いやすいマス目まで調整しておくことをお勧めします。 #image(15.jpg) まず、Selection tool(斜めの↑)を使って移動させたい点や物体を囲むように周囲の物体も選択します。 #image(16.jpg) 今回の場合、選択された赤い部分の中心にある点を動かしたいわけです。 #image(17.jpg) 「Vertex tool」を押すとこのようにブロックが線で表現されます。 Vertex toolのアイコンを押すごとにこのように選択できるポイントが、接線のみ→頂点と接線→頂点のみ→接線のみ…、というように切り替わります。 頂点は白い点、接線は黄色い点で表現されています。 #image(18.jpg) 動かしたい点を左下の画面で"選択範囲"で指定しています。 単純な形状の物体の変形ならば通常、このグリッドのある画面で頂点や接線をクリックして選択します。 しかし複雑な形状の場合や多数の点が重なっている部分の場合、これでは一ヶ所しか選択してくれません。 そのため範囲で選択して、まとめて動かしてしまおうというわけです。 画像では動かしたいポイントを面で指定しています。 これは"奥行きが無限大"の面です。 同じ範囲内に別の点が存在してしまった場合、そちらも一緒に指定してしまうので注意してください。 奥行きなども合わせて指定したい場合には、他の角度からも範囲を指定してください。 #image(19.jpg) Enterを押すと決定です。選択された点が赤く表示されます。 選択された赤い点をマウスでドラッグすることで、変形をすることができます。 再び「Selection tool」を押して「Vertex tool」モードを解除します。 これで物体の変形が決定されます。 「Vertex tool」モード中は「やり直し(Undo)」などは使えません。 一度解除してからやり直しを行ってください。 #image(20.jpg) #image(21.jpg) 「Vertex tool」では接線を選択しctrl+Fを押すことによって、接線を分割することが出来ます。 このビルのように接線を選択します。(分割するので結果的に「面」を選択することになるようです。片方の接線だけを選択して移動などをするとコンパイルエラーの原因になります。 ctrl+Fによって接線が頂点(白い点)に、そして新しい接線が生まれています。 重要なテクニック「スケーリング」について説明します。 #image(22.jpg) #image(23.jpg) 「Vertex tool」モードで動かしたい範囲を選択した後に、Alt+Eを押すことによって、選択範囲の拡大や縮小が出来ます。 サークルが基準点です。通常選択範囲の中心に出現します。 サークルを動かすことによって拡大・縮小の基準点を変えることも出来ます。 大きさが決まったら「Selection tool」を押して決定します。 以上 不明な点がございましたら、こいぬさんに質問をお願いします。 ---- &aname(7){} **霧の表現 test.iniの中にある // クリッピング距離 物体が描画される最長距離。スカイドームの半径にも使用 CLIP_PLANE_FAR=260 // フォグ開始距離 0未満で未使用 ※色は背景色と同一 FOG_START=200 // フォグ終了距離 0未満で未使用 ※色は背景色と同一 FOG_END=210 を変更することで霧の表現を変えることができます。 #image(24.jpg) CLIP_PLANE_FAR=260 FOG_START=「4」「120」「200」の3段階 FOG_END=210 にしたときの結果です。 #image(25.jpg) CLIP_PLANE_FAR= 「100」「200」「400」「800」の4段階 FOG_START= CLIP_PLANE_FAR - 50 FOG_END= CLIP_PLANE_FAR - 20 にしたときの結果です。 #image(26.jpg) CLIP_PLANE_FAR=400 FOG_START=10 FOG_END=「80」「180」「280」「380」の4段階 にしたときの結果です。 #image(27.jpg) 霧の色を変えるには、下記を変更します。 // 背景色 色の3原色(赤・緑・青)を指定 BACK_COLOR_R=150 BACK_COLOR_G=50 BACK_COLOR_B=50 ---- &aname(8){} **半透明オブジェクトの作成 当たり判定のない半透明のオブジェクトを作成することができます。 木などに使われる方法と同じものですので、今後の仕様変更により使えなくなる可能性があります。 半透明にしたいオブジェクトには、「!○○.jpg」のように先頭に!をつけた画像ファイルを使用してください。 半透明にしたいオブジェクトを選択します。 右クリック→「エンティティに変換」を選択します。 「クラス」のところに「func_wall」と入力します。 #image(28.jpg) #image(29.jpg) 透明度の設定は「FX Amount(1 - 255)」の数値を変更します。 色の設定は「FX Color(R G B)」の数値を変更します。