見出し画像

第7回【コンポーネント紹介】Link

Resoniteのコンポーネント紹介記事を書きます。
7回目のテーマは『リンク』です。


Hyperlink(ハイパーリンク)

押すと、指定されたURLをブラウザで開いてくれるコンポーネント

使い方
適当なスロットにアタッチ。
Utility > Hyperlink
コライダーも必要です。
URLとReasonを入力。

通常のボタンと異なり、ハイライト表示やコントーローラー振動等は設定できませんが、TouchEventRelay等を組み合わせることで可能になります。(次のContactLinkコンポーネントも同じです。)

ハイパーリンクを開こうとすると、External Link(警告:外部リンク)画面が表示されます。
URLや理由を確認し、安全なリンクかどうか判断しましょう。怪しい場合は『キャンセル』しましょう。
『開く』ボタンを押すことで、PCのブラウザでハイパーリンクが開きます。(VRでも、ダッシュメニューのデスクトップ表示で簡単にブラウザを見れます。)
簡単にハイパーリンクを作る事ができるので、宣伝ポスターや名刺にリンクを貼ったり、制作物のクレジット表記に使ったりできます。

Enabled:
このコンポーネントを有効にするかどうか。

URL:
URL。

OpenOnce:
一枚だけ開く。

Reason:
理由。

Open()
Fluxの Function Proxy ノードでハイパーリンクを開く事ができる。
Fluxツールで摘まんで、セカンダリーを押すとProxyが取り出せる。


ContactLink(コンタクト リンク)

ダッシュメニューの連絡先画面を開いてくれるコンポーネント

使い方
適当なスロットにアタッチ。
Cloud > ContactLink
コライダーも必要です。

名刺を作って交換したりできます。名刺にハイパーリンクも組み合わせれば、自分のSNS等へのリンクも付けられるので、ぜひ試してみてください。
ちなみに、ユーザーのネームプレートにもこのコンポーネントが付いてるので、ネームプレートを押すと連絡先画面(フレンドメニュー)が表示されます。

フレンドメニューから、ユーザーの検索、フレンドの申請・許可・削除・BAN等ができます。
フレンドの居るセッションへJoin(参加)や、フレンドを招待したりもできます。(招待があれば、セッションの人数制限を上限突破して入れます。)
アバターの非表示設定も可能です。(非表示にすると、そのユーザーのアバターが簡易的な見た目になります。これはローカル(自分のみ)で見た目が変わります。)
画面右下のアイコンから、テキストメッセージ・ボイスメッセージ・アイテム等も送る事ができます。
この画面で送信したアイテム等もストレージ容量を使ってしまうので無駄遣いしないようにしましょう。(Botにコマンドを送信する事で消す事ができます。)

Enabled:
このコンポーネントを有効にするかどうか。

UserId:
ユーザーID。
アタッチしたユーザーのIDが自動的に設定されます。
nullだと、とりあえずフレンドメニュー画面が開かれる。


InventoryLink(インベントリー リンク)

受け渡し可能な、共有フォルダーリンクを作れるコンポーネント

使い方
ダッシュメニューのインベントリー画面で共有したいフォルダーを選択してから、画面上側の✉Shareアイコンを押すと、UI付きで出てきます。
共有フォルダーのUriをPC画面上にペーストするだけでも、作る事ができます。

手動で設定する場合は、適当なスロットにアタッチ。
Cloud > InventoryLink
コライダーも必要です。

自分のインベントリーに保存する事で、共有フォルダーのリンク(ショートカット的なやつ)ができます。
このコンポーネントがアタッチされたアイテムを保存すると、共有フォルダーリンクに化けちゃうので、気を付けましょう。

名刺等のアイテムに共有フォルダーを付けたい場合は、別のコンポーネント(GrabbableReceiverSurface)等と組み合わせて工夫する事で可能です。

Enabled:
このコンポーネントを有効にするかどうか。
Falseにすると、保存時に化けることが無いです。

TargetName:
共有フォルダーの名前。

Target:
共有フォルダーのUri。

インベントリーの共有について
黄色が自分のフォルダーで、左上に三角マークがついている物は共有中です。
青色は共有フォルダーです。(原則、他人の共有フォルダーにはアイテムを保存できません。グループ機能等を使うとグループメンバー用の共有フォルダーを作る事ができます。)

既にアイテムが沢山保存されているフォルダーを共有化すると、シンク(同期処理)が大変なことになるので、お勧めしません。共有フォルダーを作る際は、💾Create Folderアイコンを押して新しいフォルダーを名前を付けて作成してから、共有したいアイテムを入れるのがお勧めです。
フォルダーの名前には日本語も使用できます。スペースで改行もできます。簡潔で分かりやすい名前を付けましょう。

共有するアイテムの規約は遵守しましょう。再配布不可なモノを共有するのは絶対にダメです。必要に応じてライセンスやクレジットを表記しましょう。
共有を中止する場合は🔒Unshareアイコンを押すか、🗑️Deleteアイコンを押して削除しましょう。(しばらくするとサーバーから消えます。)


StringQRCodeTexture(ストリング QRコード テクスチャー)

QRコードが作れるコンポーネント

使い方
適当なスロットにアタッチ。
Assets > Procedural Textures > StringQRCodeTexture
PayloadにURL等を入力。

コンポーネントの名前を掴むと、テクスチャを取り出せる。
QRコードリーダーは無いので、PC画面に表示してスマホ等で読み取るしかない。
プロシージャルテクスチャ類はFormat等を変更すると、たまに動かなくなっちゃうので気を付けましょう。(その場合は、複製して古い方は消しましょう。)

Enabled:
効果なし。

FilterMode:
テクスチャの補間方法。

0  Point ポイント フィルタリング
補間無し(ドット絵等に適してる。)
今回はQRコードなので、この補間方法が適している。

1  Bilinear バイリニア フィルタリング
ピクセル間で補間する(標準的な補間。小さな物に適してる。)

2  Trilinear トライリニア フィルタリング
ピクセル間&ミップマップ間でも補間する(床や壁等の連続する大きな物に適してる。)

3  Anisotropic アニソトロピック フィルタリング
異方性フィルタリング。補間度合は下の設定で行う。(一番良い補間方法。ただしこの中で比べると、ちょっとだけ負荷が高め。)

詳しくは アニソトロピック フィルタリング 等で検索してください。

AnisotropicLevel:
異方性フィルタリングのレベル。

2の倍数で設定する。
×2、×4、×8、×16が一般的。ただし、×16は処理負荷が高いのでお勧めはしません。×4か×8がお勧めです。

WrapModeU:
U軸(左右)の、はみ出した時の繰り返し設定。

0  Repeat 繰り返す。
1  Clamp 端が引き延ばされる。
2  Mirror 反転して繰り返す。
3  MirrorOnce 一回だけ反転して、その先は端が引き延ばされる。

豆知識:透明の切抜き(カットアウト)を使用する際は、Clampにすると端の線が消えます。

WrapModeV:
V軸(上下)の、はみ出した時の繰り返し設定。

MipmapBias:
ミップマップのバイアス。

詳しくは ミップマップ で検索してください。

Profile:
色空間。

Profileは3種類(カラープロファイルの詳細は公式Wikiをご確認ください。)
0  Linear
1  sRGB
2  sRGBAlpha (非推奨)

Format:
画像形式及び圧縮形式。(32種類ある)
適切に設定すれば、画像を効率的に扱える。

今回はQRテクスチャの生成なので、画像形式 RGB565 でもOK。

例えば8ビットだと、色を256段階で表現できます。
グラデーションの綺麗さを重視するなら、16ビットや32ビットを使用します。(ただし、容量が大きくなります。)

0  Unknown 不明

Alpha8 透明のみ(8ビット)
透明のみの画像ならコレでOK。

2  R8 赤色のみ(8ビット)
赤色のみの画像ならコレでOK。

16  RGB24 カラー(赤、緑、青、それぞれ8ビット)
透明無しのカラー画像ならコレでOK。

17  ARGB32 透明+カラー(透明、赤、緑、青、それぞれ8ビット)
RGBA32の方が良いかも。

18  RGBA32 カラー+透明(赤、緑、青、透明、それぞれ8ビット)
透明有りのカラー画像ならコレでOK!(迷ったらとりあえずコレ)

19  BGRA32 カラー+透明(青、緑、赤、透明、それぞれ8ビット)
RGBA32の方が良いかも。

24  RGB565 カラー(赤5、緑6、青5ビット)
透明無し、グラデーション無しのカラー画像ならコレでOK。

32  RGBAHalf カラー+透明(赤、緑、青、透明、それぞれ16ビット)
33  ARGBHalf 透明+カラー(透明、赤、緑、青、それぞれ16ビット)
34  RHalf 赤色(16ビット)
35  RGHalf 赤色、緑色(それぞれ16ビット)

48  RGBAFloat カラー+透明(赤、緑、青、透明、それぞれ32ビット)
49  ARGBFloat 透明+カラー(透明、赤、緑、青、それぞれ32ビット)
50  RFloat 赤色(32ビット)
51  RGFloat 赤色、緑色(それぞれ32ビット)

ここから下は圧縮方式。
(あんまり詳しくないので、計算間違ってたらごめんなさい。)

■ Block Compression(DirectX)形式
(4×4ピクセルを1つのブロックにして圧縮します。)
64  BC1 カラー+透明(0~1ビット)を1ブロック8バイトまで圧縮する
65  BC2 カラー+透明(4ビット)を1ブロック16バイトまで圧縮する
66  BC3 カラー+透明(8ビット)を1ブロック16バイトまで圧縮する

67  BC4 赤色を1ブロック8バイトまで圧縮する
ハイトマップとかマスクテクスチャとかに使う

68  BC5 赤色、緑色を1ブロック16バイトまで圧縮する
ノーマルマップとかに使う

69  BC6H HDRカラーを1ブロック16バイトまで圧縮する
スカイボックスとかに使う

70  BC7 カラー+透明(0~8ビット)を1ブロック16バイトまで圧縮する
高品質

■ Ericsson Texture Compression 形式
(4×4ピクセルを1つのブロックにして圧縮します。)
96  ETC2_RGB カラーを1ブロック8バイトまで圧縮する
97  ETC2_RGBA1 カラー+透明を1ブロック8バイトまで圧縮する(透明は1ブロック1ビットだけ?)
98  ETC2_RGBA8 カラー+透明を1ブロック16バイトまで圧縮する

■ Adaptive Scalable Texture Compression 形式
128  ASTC_4×4 4×4ピクセルを一つのブロックにして、カラー+透明を16バイトまで圧縮する
129  ASTC_5×5 5×5 〃
130  ASTC_6×6 6×6 〃
131  ASTC_8×8 8×8 〃
132  ASTC_10×10 10×10 〃
133  ASTC_12×12 12×12 〃

Payload:
QRコード化する文字列。

ECCLevel:
誤り訂正レベル。
L(7%)~H(30%)で選択可能です。(M以上がおススメです。)

Color0:
背景色。

Color1:
QRコードの色。

Bake Texture()
Fluxの Method Proxy ノードでテクスチャをベイクできる。
ButtonActionTriggerコンポーネントに繋がる。

テクスチャをベイク
押すと、ベイクしてStaticTexture2Dに変換される。


おわり

この記事がお役に立てたのなら、『スキ』『サポート』『フォロー』してくれると嬉しいです。
皆様のご支援と応援が活動継続の力となります。

コンポーネントに関するご質問やご要望、豆知識等も募集しております。
ぜひ、コメント欄にお書きください。

他のコンポーネント紹介記事はこちら↓
『Resonite コンポーネント紹介』マガジン

この記事内容が良いと思ったら、ぜひサポートをお願いいたします。 頂いたご支援(お金)は、活動を継続するためのモチベーションとなります。