よくある質問(FAQ)💡
Last updated
Last updated
Needle Engine 4.x
Project Settings/Needleに進み、ログインボタンをクリックします。手順に従って、Needleアカウントにログインしてください。 その後、Unityのプロジェクト設定ウィンドウにアカウント情報が表示されます。ドロップダウンからライセンスを持つチームを選択してください。
Needle Engine 3.x
Edit/Project Settings/Needle
を開き、Needle Engineプラグイン設定を取得します。ウィンドウの上部にライセンス情報を入力するフィールドがあります。
Email
- ライセンスを購入したメールアドレスを入力します
Invoice ID
- メールで受け取った請求書IDのいずれかを入力します
注意:ライセンスを適用するために、ローカルウェブサーバーを再起動する必要がある場合があります。
Addon Preferences/Needle Engine
を開き、Needle Engineアドオン設定に移動します。
Email
- ライセンスを購入したメールアドレスを入力します
Invoice ID
- メールで受け取った請求書IDのいずれかを入力します
注意:ライセンスを適用するために、ローカルウェブサーバーを再起動する必要がある場合があります。
ローカル設定によっては、ブラウザにSSLセキュリティに関する警告が表示されることがあります。
これは、接続は暗号化されていますが、デフォルトではブラウザが検証できるSSL証明書がないためです。
その場合は、Advanced
をクリックし、Proceed to Site
をクリックしてください。Safariでは、自動的に進まないため、その後ページを再読み込みする必要がある場合があります。これで、ブラウザにシーンが表示されるはずです!
このダイアログは、同じローカルサーバーに対して一度だけ表示されるはずです。
::: tip Connections are secured, because we're enforcing HTTPS to make sure that WebXR and other modern web APIs work out-of-the-box. Some browsers will still complain that the SSL connection (between your local development server and the local website) can't be automatically trusted, and that you need to manually verify you trust that page. Automatic Page Reload and Websocket connections may also be affected depending on the browser and system settings.
通常、これはEngineコードまたはあなたのコードに例外がある場合に発生します。開発者ツール(ChromeではCtrl + Shift + IまたはF12)を開き、Consoleでエラーを確認してください。 特にNeedle Engineパッケージのバージョンをアップデートしたばかりの場合、ローカル開発サーバーを停止して再起動することでこれが修正されることがあります。 そのためには、Editorの右下隅にある実行中のプログレスバーをクリックし、小さなXをクリックして実行中のタスクをキャンセルします。その後、再度Playを押すだけです。
これは通常、カスタムシェーダーまたはマテリアルを使用しており、そのプロパティがglTFエクスポート用の既知のプロパティ名にうまく変換されない場合に発生します。 glTF互換のマテリアルとシェーダーを使用するか、シェーダーを「custom」としてマークして直接エクスポートすることができます。
推奨されるglTFワークフローについてもっと読む:
カスタムシェーダーについてもっと読む:
viteやnext.jsを使用している場合は、Needle Engineプラグインをconfigに追加してください。 viteの例:
next.jsの例:
または、例えばルートのindex.html
にスクリプトタグで不足している変数を宣言するだけでもかまいません。
Lightmap EncodingがNormal Qualityに設定されていることを確認してください。 設定変更にはEdit/Project Settings/Playerに進んでください。
これには多くの理由がありますが、いくつかの一般的な理由は以下のとおりです。
テクスチャが多すぎる、またはテクスチャが大きすぎる
メッシュの頂点が多すぎる
メッシュに実際には必要ない頂点属性がある(例:法線と接線があるが使用していない)
オブジェクトが無効になっており、無視されていない – 無効なオブジェクトも実行時にオンにしたい場合に備えてエクスポートされます!エクスポートから完全に無視するには、TagをEditorOnly
に設定してください。
シーンに複数のGltfObject
コンポーネントがあり、それらすべてにEmbedSkybox
が有効になっています(エクスポートするシーンごとにスカイボックスは1つだけにする必要があります)
Unityの場合:UI/Legacy/Text
コンポーネントを使用し、TextMeshPro - Text
コンポーネントは使用しないようにしてください。
既存のC#コードはそのままではエクスポートされません。対応するtypescript / javascriptを記述する必要があります。
Needleはコンポーネントにtypescript / javascriptを使用し、それらのC#スタブを生成します。
対応するJSがすでに存在するコンポーネントは、Inspectorにそれが表示されます。
ライトが「Baked」または「Realtime」に設定されていることを確認してください。「Mixed」は現在サポートされていません。
Mixed(ライトマッピングあり)に設定されたライトは、three.jsではオブジェクトに二重に影響を与えます。現在、ライトマップされたオブジェクトをライティングから除外する方法がないためです。
three.jsの制限により、ライトシャドウの強度は現在変更できません。
カスタムキューブマップを使用している場合:スカイボックステクスチャ(キューブマップに割り当てられている)のテクスチャインポート設定をオーバーライドできます。
デフォルトのスカイボックスを使用している場合:シーンのどこかにSkyboxExportSettings
コンポーネントを追加して、デフォルトの解像度をオーバーライドします。
以下の点を確認してください。
ライトにシャドウが有効になっていること(Soft ShadowまたはHard Shadowのいずれか)
オブジェクトが「Cast Shadows: On」に設定されていること(MeshRendererコンポーネントを参照)
ディレクショナルライトの場合、シャドウカメラはシーン内のライトの位置に配置されるため、ライトの位置が現在重要です。
プロジェクトがLinear colorspaceに設定されていることを確認してください。
Glitchでのデプロイはプロトタイプ作成の高速な方法であり、小規模なプロダクションにも機能する場合があります。そこの小さなサーバーには、永続的なセッションで多くの人々をホストするだけの能力と帯域幅はありません。
ルートのGltfObject
内のどこかにWebXR
コンポーネントを追加していることを確認してください。
オプションで、WebXRの配置、スケール、向きを指定するために、ルートのGltfObject
または子ヒエラルキー内にAR Session Root
コンポーネントを追加します。
オプションで、VRでユーザーがどこから開始するかを制御するために、XR Rig
コンポーネントを追加します。
サブシーンのnpmdefs(ルートエクスポートシーンのスクリプトから参照としてエクスポートされるシーン)で新しいスクリプトを作成する場合、現在、ルートシーンを再度エクスポートする必要があります。これは、新しいスクリプトを登録するコード生成が、現在ExportInfo
コンポーネントを持つシーンでのみ実行されるためです。これは将来修正される予定です。
最も可能性の高い理由は、インストールが正しくないことです。
ConsoleおよびExportInfo
コンポーネントでエラーまたは警告を確認してください。
これらの警告/エラーが解決に役立たない場合は、以下の手順を順番に試してください。完了には時間がかかる場合があります。問題が解決したら停止してください。Consoleで警告とエラーを確認してください。
ExportInfo
コンポーネントを選択し、Install
をクリックしてプロジェクトをインストールしてください。
ExportInfo
コンポーネントを選択し、Altキーを押しながらClean Install
をクリックしてクリーンインストールを実行してください。
ウェブプロジェクトディレクトリをコマンドラインツールで開いて、以下の手順を試してください。
npm install
を実行し、次にnpm run dev-host
を実行してください。
ローカルランタイムパッケージ(node_modules/@needle-tools/engine
)とthree.js(node_modules/three
)の両方がインストールされていることを確認してください。
これらの両方のディレクトリでもnpm install
を実行してもかまいません。
技術的には、バニラJavaScriptでもC#コンポーネント生成は実行されますが、ジェネレーターがJavaScriptクラスに対してどのC#タイプを作成するかを知ることは推測が多かったり、単に不可能だったりするため、推奨せず、完全にサポートしていません。本当に必要であれば、JavaScriptからUnityコンポーネントを生成する方法の最小限の例を以下に示します。
Windowsの場合:toktxをシステム環境変数に追加していることを確認してください。環境変数を更新するためにコンピュータを再起動する必要がある場合があります。デフォルトのインストール場所はC:\Program Files\KTX-Software\bin
です。
exFATとしてフォーマットされたドライブにプロジェクトを作成しないようにしてください。exFATはsymlinksをサポートしておらず、Needle Engine for Unityバージョン3.xより前では必須です。 以下の手順でドライブのフォーマットを確認できます。
「システム情報」を開く(Windowsキーを押して検索するか、cmdで「msinfo32」と入力)
Components > Storage > Drivesを選択
画面右側で全て選択(Ctrl + A)し、コピー(Ctrl + C)してここにペースト(Ctrl + V)
プロジェクトがnode.jsで動作することが知られているディスク上にあることを確認してください。失敗の主な理由は、ディスクがsymlinks(symbolic links / softlinks)をサポートしていないことであり、これはnode.jsの適切な機能のために必要です。NTFSフォーマットは常に動作するはずです。問題があることが知られているファイルシステムフォーマットはexFATとFAT32です。
ドライブのフォーマットを確認するには:
「システム情報」を開く(Windows keyを押して「System Information」と入力するか、cmd(Windows + R)でmsinfo32
と入力)
「Components > Storage > Drives」を選択
そこに、全てのドライブとそのフォーマットが一覧表示されます。プロジェクトはNTFSフォーマットのドライブに置いてください。
@
. Expected identifier, string literal, numeric literal or ..." というエラーが発生しますNeedle Engineはシリアライズにtypescript decoratorsを使用しています。
このエラーを修正するには、tsconfig.jsonでexperimentalDecorators
を有効にしてください。
(ARM) Apple Siliconプロセッサ上でx86_64バージョンのUnityを使用している可能性が高いです。Unity 2020.3はx86_64版のみ利用可能で、それ以降のバージョンにはApple Silicon版もあります。 したがって、Unity統合がnpmを呼び出す際にはx86_64プロセスから行われるため、nodeとvite/esbuildのx86_64版が使用されます。その後、同じプロジェクトでApple Siliconアプリ(例: VS Code)からnpmコマンドを実行しようとすると、長いエラーメッセージと共にアーキテクチャの不一致に関するnpmの苦情が発生します。
これを修正するには、Apple Silicon版のUnity(2021.1以降)を使用してください。
2020.3でも一時的に修正するには、node_modules
フォルダを削除し、VS Codeから再度npm install
を実行してください。Unityに戻す際には、再びnode_modules
を削除する必要があります。
これは、例えばSceneSwitcher
(またはシーンやアセットをロードする他のコンポーネント)があり、参照されたUnityのアセットに、元のSceneSwitcher
を含むシーンと同じ名前のGltfObject
が含まれている場合に発生することがあります。以下のようなエラーが表示された場合、Unityで再度確認できます。
これを修正するには、以下のいずれかを実行します。
参照されたPrefabまたはSceneのGltfObject
を削除します。
参照されたシーンをロードするコンポーネントを持つGameObjectの名前を変更します。
問題を起こすことが知られているデバイス:
Lenovo Thinkpad - T495
AIをローカルで実行したい(または実行する必要がある)場合は、ローカルAI(例: Ollama)のコンテキストとしてNeedleのllms.txtファイルを使用できます。
このページはAIによって自動的に翻訳されました
See for information on how to set up a self-signed certificate for a smoother development experience. :::
読み込み時間自体が問題の場合は、コンテンツを複数のglbファイルに分割し、オンデマンドで読み込むことができます(これは当社のウェブサイトで行っていることです)。そのためには、コンテンツをPrefabまたはSceneに入れ、スクリプトからそれらを参照できます。ドキュメンテーションのをご覧ください。
に従っていること、およびについて読んでください。
Lighting/Environment
のSkyboxのIntensity Multiplier
ファクターは現在サポートされておらず、Needle Engineでは効果がありません。
に関するドキュメントも参照してください。
他のネットワーキングアイデアに取り組んでいますが、それまでの間は、他の場所(node.jsサポート付き)でウェブサイトをホストするか、単にそれをリミックスして複数のサーバー間で負荷を分散させることができます。また、自体を、たとえばGoogle Cloudのようなスケーリング可能な場所にホストすることもできます。
に従っていることを確認してください。
誤ってInspectorのDebug
モードになっていないか確認してください – Normal
に戻してください。
していることを確認してください。
これで問題が解決しない場合は、でお問い合わせください。
セクションを参照してください。
お使いのデバイスがWebGL 2をサポートしているかを確認するには、を使用してください。これにより、問題の原因のヒントも得られますが、一般的にはブラウザとドライバーを更新していることを確認してください。WebGL 1はサポートされていません。