GodotでOS.has_featureを活用した 機能タグの確認と応用
このチュートリアルでは、Godotの
OS.has_feature
メソッドを使用して、動作環境やエクスポート設定に基づいた機能タグ(Feature Tags)の確認方法を学びます。公式ドキュメントの内容を踏まえつつ、実際のプロジェクトで活用できる具体例を交えて説明します。これにより、デバイスやプラットフォームごとに適切な動作を実装するスキルを身につけられます。
チュートリアル内容
1. 機能タグ(Feature Tags)とは
OS.has_feature
メソッドを使うと、プラットフォーム固有の特徴や、プロジェクトのエクスポート設定で指定したカスタムタグを簡単に確認できます。プラットフォーム:
"windows"
, "android"
, "web"
などフィーチャータグ | 説明 |
---|---|
android | Androidで実行中(ただしWebブラウザ内ではない) |
bsd | *BSDで実行中(ただしWebブラウザ内ではない) |
linux | Linuxで実行中(ただしWebブラウザ内ではない) |
macos | macOSで実行中(ただしWebブラウザ内ではない) |
ios | iOSで実行中(ただしWebブラウザ内ではない) |
windows | Windowsで実行中 |
linuxbsd | Linuxまたは*BSDで実行中 |
debug | デバッグビルドで実行中(エディタを含む) |
release | リリースビルドで実行中 |
editor | エディタビルドで実行中 |
template | 非エディタ(エクスポートテンプレート)ビルドで実行中 |
double | 倍精度ビルドで実行中 |
single | 単精度ビルドで実行中 |
64 | 64ビットビルドで実行中(任意のアーキテクチャ) |
32 | 32ビットビルドで実行中(任意のアーキテクチャ) |
x86_64 | x86の64ビットビルドで実行中 |
x86_32 | x86の32ビットビルドで実行中 |
x86 | x86ビルドで実行中(ビット数は任意) |
arm64 | ARMの64ビットビルドで実行中 |
arm32 | ARMの32ビットビルドで実行中 |
arm | ARMビルドで実行中(ビット数は任意) |
rv64 | 64ビットRISC-Vビルドで実行中 |
riscv | RISC-Vビルドで実行中(ビット数は任意) |
ppc64 | 64ビットPowerPCビルドで実行中 |
ppc32 | 32ビットPowerPCビルドで実行中 |
ppc | PowerPCビルドで実行中(ビット数は任意) |
wasm64 | 64ビットWebAssemblyビルドで実行中(まだ実現不可) |
wasm32 | 32ビットWebAssemblyビルドで実行中 |
wasm | WebAssemblyビルドで実行中(ビット数は任意) |
mobile | ホストOSがモバイルプラットフォーム |
pc | ホストOSがPCプラットフォーム(デスクトップ/ラップトップ) |
web | ホストOSがWebブラウザ |
web_android | ホストOSがAndroid上で動作するWebブラウザ |
web_ios | ホストOSがiOS上で動作するWebブラウザ |
web_linuxbsd | ホストOSがLinuxまたは*BSD上で動作するWebブラウザ |
web_macos | ホストOSがmacOS上で動作するWebブラウザ |
web_windows | ホストOSがWindows上で動作するWebブラウザ |
etc | ETC1圧縮を使用したテクスチャがサポートされている |
etc2 | ETC2圧縮を使用したテクスチャがサポートされている |
s3tc | S3TC(DXT/BC)圧縮を使用したテクスチャがサポートされている |
movie | Movie Makerモードがアクティブ |
2. Godotプロジェクトの準備
Godot 4.3で新しいプロジェクトを作成します。
ルートノードを
Node
としてシーンを作成します。プロジェクト -> エクスポートを開き、各プラットフォーム向けにエクスポート設定を行い、「機能タグ」を設定します。
3. 基本的なスクリプトの実装
以下のコードをメインシーンのスクリプトに追加します。
extends Node
func _ready(): # プラットフォームを確認 if OS.has_feature("windows"): print("このプロジェクトはWindowsで動作しています。") elif OS.has_feature("android"): print("このプロジェクトはAndroidで動作しています。") elif OS.has_feature("web"): print("このプロジェクトはHTML5で動作しています。") else: print("未知のプラットフォームです。")
4. 実行とテスト
エディタで実行: プロジェクトを実行し、ログ出力を確認します。
プラットフォームごとの確認: エクスポート後、各プラットフォームで実行してログを確認します。
5. 応用例
5.1 特定のプラットフォーム向けの設定
if OS.has_feature("Android"): print("モバイル向け最適化を有効にします。") # モバイル専用のUIを表示 $MobileUI.visible = true
5.2 HTML5特有の処理
if OS.has_feature("web"): print("HTML5向けのUIを適用します。") enable_web_ui()
チュートリアルのまとめ
OS.has_feature
を使えば、プラットフォームやカスタムタグに基づいた動作を簡単に実装可能です。
- 各プラットフォームごとに動作を調整することで、最適なパフォーマンスを提供できます。
- 本チュートリアルを活用して、柔軟な環境対応機能を実現しましょう。
この知識を活かし、プロジェクトをさらに拡張してみてください!