I would like to say that ever since i saw the video on NineLives i decided to play Triglav.
Have you considered opensourcing Ninelives?
2010-01-18 22:30:48 | Querbok
UnityのTerrain機能は便利で強力だがHeightMapなので、横穴を開けることができない。
Unity Wikiにも穴が開いているように見えるマスク処理が紹介されているが、穴の向こうに表示したいものは専用のshaderを使用しないといけないという制限があるので、シンプルなものにしか使えない。特にTPSで装備などで自キャラの構成も複雑だと簡単に切り替えるというわけにもいかない。そんなわけで、できるだけshaderの制約を受けない方式で作ってみた。
Terrainのメッシュ自体をいじって穴を開けることはできないので、穴を開けたい場所にメッシュを置いて、その部分だけTerrainを除いてレンダーしたものを貼りつけちゃおうというもの。
穴の通過を考えると、Terrainとの間に隙間があるとノイズとなるので、できるだけ密着するメッシュが必要になる。そこでまずTerrainデータから自動でメッシュを吸い出す機能から。
指定Terrainとこのスクリプトが入ったオブジェクトに隣接する箇所を起点に、Terrainメッシュの一部を複製する処理。
TerrainPoly.js
次にメッシュにカメラマトリクスで投影描画する処理。
LayerFilteringController.js (update 2010/11/06)
透過部分のレンダー時に、Terrainをレイヤー的にレンダー対象から省くことで透明化するので、
あらかじめ対象のTerrainを専用のレイヤーに(「terrain」Layerなどを作って)設定しておく必要がある。それをLayerFilteringController > renderingLayers設定から選択を外す。このメッシュ自体もIgnore Raycastなどに設定しておき、レンダー対象から外しておく。あとは対象のTerrainをTerrainPolyに設定。
穴を覆うようにメッシュを配置
あくまで向こう側が描画されているだけでTerrainのColliderは有効なままなので、このままだと通過はできない。以下の様に貫通する形でColliderを設置してやり、OnTriggerEnter時にPhysics.IgnoreCollisionを使って対象とTerrainの当たり判定を一時的に無効化し、OnTriggerExitで戻してやれば、通過が可能になる。(TPSでカメラの遮蔽物よけ処理がある場合はそれらのチェックも一時的に無効化が必要。)通過時はTerrainは床として使えないので代わりとなる床が必要。
Unity Wikiにも穴が開いているように見えるマスク処理が紹介されているが、穴の向こうに表示したいものは専用のshaderを使用しないといけないという制限があるので、シンプルなものにしか使えない。特にTPSで装備などで自キャラの構成も複雑だと簡単に切り替えるというわけにもいかない。そんなわけで、できるだけshaderの制約を受けない方式で作ってみた。
Terrainのメッシュ自体をいじって穴を開けることはできないので、穴を開けたい場所にメッシュを置いて、その部分だけTerrainを除いてレンダーしたものを貼りつけちゃおうというもの。
穴の通過を考えると、Terrainとの間に隙間があるとノイズとなるので、できるだけ密着するメッシュが必要になる。そこでまずTerrainデータから自動でメッシュを吸い出す機能から。
指定Terrainとこのスクリプトが入ったオブジェクトに隣接する箇所を起点に、Terrainメッシュの一部を複製する処理。
TerrainPoly.js
次にメッシュにカメラマトリクスで投影描画する処理。
LayerFilteringController.js (update 2010/11/06)
透過部分のレンダー時に、Terrainをレイヤー的にレンダー対象から省くことで透明化するので、
あらかじめ対象のTerrainを専用のレイヤーに(「terrain」Layerなどを作って)設定しておく必要がある。それをLayerFilteringController > renderingLayers設定から選択を外す。このメッシュ自体もIgnore Raycastなどに設定しておき、レンダー対象から外しておく。あとは対象のTerrainをTerrainPolyに設定。
穴を覆うようにメッシュを配置
あくまで向こう側が描画されているだけでTerrainのColliderは有効なままなので、このままだと通過はできない。以下の様に貫通する形でColliderを設置してやり、OnTriggerEnter時にPhysics.IgnoreCollisionを使って対象とTerrainの当たり判定を一時的に無効化し、OnTriggerExitで戻してやれば、通過が可能になる。(TPSでカメラの遮蔽物よけ処理がある場合はそれらのチェックも一時的に無効化が必要。)通過時はTerrainは床として使えないので代わりとなる床が必要。
About
SmokymonkeySとは、2名からなるインディチームです。
ゲームやその他作品を無所属で個人開発しています。
2002年 WebゲームTRIGLAVを公開。総勢50万アカウントを超える長寿ゲーム。
2015年 3DアクションRPG Ninelivesを開発。現在休止中。
2018年 TRIGLAV モバイル版をリリース。70万ダウンロード達成。
2021年 作場知生氏と共同開発したガラージュ 完全版をリリース。
SmokymonkeyS is a two-man indie team by a programmer and a graphic designer, formed for creating games.
Our 1st game TRIGLAV, a web RPG that has been made with JavaScript has passed over half a million accounts since launched 2002.
2015, Ninelives suspended the development after the alpha phase.
2018, released Triglav for Mobile. Reached 700 thousand download.
2021, released Garage: Bad Dream Adventure. Developed with Sakuba Tomomi.
Any Comment?
1586 Posts | Page 1/265
john
jojo
Sorry for typos below. Basically I love your artwork and gamestyle. Do you have any other games in the works?
jojo
Hi
I just want to know I love your artstyle and game. If there is any way nine lives can live on as a single player game. I would love to buy it to support your team.
I just want to know I love your artstyle and game. If there is any way nine lives can live on as a single player game. I would love to buy it to support your team.
SmokymonkeyS
Thank you. Hope you enjoy the works.
Talent
Just discovered ninelives and your indie studio. i absolutely love it. it is such a surreal, beautiful melancholic world. i'm so captivated.
SmokymonkeyS
Could you join Triglav Discord and send me a direct message?