Omeka SのIIIF Serverモジュールで、PLYファイルがIIIFマニフェストのitemsに出力されない問題の調査

概要 Omeka SのIIIF Serverモジュールで、PLYファイルがIIIFマニフェストのitemsとして出力されないが、GLBファイルは正常に出力される問題を調査しました。 前提条件:Omeka Sの設定 デフォルトでは、PLYファイルはOmeka Sにアップロードできません。以下の設定が必要です。 PLYファイルアップロード時のエラー デフォルト設定では、PLYファイルのメディアタイプ(application/octet-stream)と拡張子(.ply)が許可されていないため、アップロードエラーが発生します。 設定の追加 管理画面の「設定」→「セキュリティ」で以下を追加してください: 許可されるメディアタイプ : application/octet-stream を追加 許可されるファイル拡張子 : ply を追加 原因 PLYファイルの処理コードがモジュールに実装されていませんでした。 GLBファイルには明示的な拡張子チェックと型変換のコードが存在しますが、PLYファイルには同様のコードが存在しませんでした。 技術的詳細 GLBファイルの処理(修正前から存在) TraitMedia.php (format()メソッド) i } f ( $ $ i } m e f e x d t ( i e $ r a n e e T s x t y i t u p o e r e n n n s = = i ' = o m = s n o t d ' r = e a t = l p o = / p l g l o ' l i w g t c e l f a r b - t ( ' b i p ) i o a n n t { a / h r o i y c n ' t f ; e o t ( - ( s s t t r r e i a n m g ' ) ) $ { t h i s - > r e s o u r c e - > s o u r c e ( ) , P A T H I N F O _ E X T E N S I O N ) ) ; IiifTypeOfMedia.php i } f ( $ $ i } m e f e x d t ( i e $ r a n e e T s x t y i t u p o e r e n n n s = = i $ = o m = s n e t d ' r = i a t = a p o = I p l i l o ' i i w g f c e l T a r b y t ( ' p i p ) e o a s n t { [ / h $ o i m c n e t f d e o i t ( a - ( I s s d t t ] r r e i = a n m g ' ' ) M ) o $ d { m e e l d ' i ; a - > s o u r c e ( ) , P A T H I N F O _ E X T E N S I O N ) ) ; IIIFマニフェストのitems生成フロー メディアタイプの判定 (TraitMediaInfo.php) ...

2026年2月6日 · 9 分 · Nakamura

3D Gaussian Splatting Viewer の開発 - Spark.jsを使ったブラウザ実装

3D Gaussian Splatting(3DGS)ファイルをブラウザで閲覧できるビューアを開発しました。本記事では、3DGSの概要と、通常のPLY Viewerでは表示できない理由、そして専用ビューアの実装について解説します。 デモ: https://3dtiles-viewer.vercel.app/3dgs-viewer.html?manifest=https://3dtiles-viewer.vercel.app/iiif/ply/manifest.json なぜ通常のPLY Viewerでは3DGSを表示できないのか 3DGSファイルは拡張子が.plyであるため、一見すると通常のPLYファイルと同じように扱えそうに見えます。しかし、Three.jsのPLYLoaderで読み込んでも正しく表示されません。 通常のPLYファイルと3DGS PLYファイルの違い 通常のPLY(メッシュ/点群): e p p p p p p e p l r r r r r r l r e o o o o o o e o m p p p p p p m p e e e e e e e e e n r r r r r r n r t t t t t t t t t y y y y y y y v f e f f f u u u a l r l l l c c c c i t o o o h h h e s e a a a a a a t x t t t r r r 5 0 u 1 x y z r g b 0 c 0 e r l h 0 d e u a 0 e e r n i n t v e r t e x _ i n d i c e s 3DGS用PLY: ...

2026年2月6日 · 15 分 · Nakamura

3D点群データの世界:PLY、ガウシアンスプラッティング、Potreeの関係を整理する

! 本記事はAI(Claude)との対話をもとに構成・執筆しています。内容の正確性には注意を払っていますが、誤りや不正確な記述が含まれている可能性があります。お気づきの点があれば、コメントでご指摘いただけると助かります。 3D点群データを扱う場面が増えています。文化財のデジタルアーカイブ、都市の3Dスキャン、自動運転のためのLiDAR計測など、応用分野は広がる一方です。しかし、PLY、LAS、ガウシアンスプラッティング、Potreeといった関連する用語が多く、それぞれの位置づけや関係性が掴みにくいと感じる方も多いのではないでしょうか。 本記事では、これらの技術やフォーマットがどのようにつながっているのかを整理してみます。 点群(Point Cloud)とは 点群とは、3D空間中の点の集合によって物体や空間の形状を表現するデータ形式です。各点は最低限の位置情報(x, y, z)を持ち、それに加えて色(r, g, b)、法線ベクトル、反射強度などの属性を付与できます。 点群の取得方法は主に以下のようなものがあります。 LiDAR(Light Detection and Ranging) :レーザー光を照射し、反射光の往復時間から距離を計測します。航空測量、自動運転、地形調査などで広く利用され、1回のスキャンで数億〜数十億点のデータが得られることもあります。 SfM(Structure from Motion) :複数の写真から3D構造を復元する手法です。カメラ位置の推定と三角測量を組み合わせて密な点群を生成します。比較的安価な機材で実施でき、文化財のデジタル記録などで活用が広がっています。 3Dスキャナ :構造光やレーザーを用いて対象物の表面形状を直接計測します。建築物の現況調査や製造業での品質管理に用いられます。 取得方法によって点群の密度、精度、付随する属性が異なり、それが後段のファイル形式選択にも影響します。 PLY(Polygon File Format) 汎用的な3Dデータの器 PLYはスタンフォード大学で3Dスキャンデータの保存用に開発されたフォーマットです。正式名称は「Polygon File Format」で、もともとはポリゴン(メッシュ)データの保存を主な目的としていました。 PLYの最大の特徴は汎用性 にあります。ヘッダ部に属性の定義を記述し、データ部に頂点ごとの値を格納するシンプルな構造で、ASCII形式とバイナリ形式の両方をサポートしています。そして重要なのは、PLYは点群専用の形式ではない ということです。同じ .ply という拡張子であっても、中身はまったく異なるデータを格納できます。 PLYが格納できる3種類のデータ PLYファイルは、ヘッダの内容によって大きく3種類のデータを表現します。 ① メッシュ(Mesh) 頂点(vertex)に加えて面(face)の情報を持ちます。面は通常、三角形の頂点インデックスのリストとして記述されます。3Dスキャナの出力やCGモデルの保存に用いられます。 p f e p p p e p e l o l r r r l r n y r e o o o e o d m m p p p m p _ a e e e e e e h t n r r r n r e t t t t t t a a y y y y d s v f e c e f f f a l r i r l l l c i i t o o o e s e a a a t 1 x t t t 1 . 3 u 0 6 x y z 5 c 7 7 h 8 7 a 8 2 r 6 8 6 i n t v e r t e x ← _ i f n a d c i e c が e あ s る → メ ッ シ ュ このようなファイルは135万以上の三角形で構成されたメッシュデータであり、ビューアで開くと滑らかな表面として描画されます。 ...

2026年2月5日 · 10 分 · Nakamura

GLBファイルのDraco圧縮 - 87%のサイズ削減と精度への影響

3DモデルをWebで配信する際、ファイルサイズは重要な課題です。本記事では、Draco圧縮 を使ってGLBファイルを87%削減した事例と、圧縮時の注意点(特にUV座標)について解説します。 https://3dtiles-viewer.vercel.app/glb-viewer.html 使用データ モデル : Rotunde Brunnen(噴水のある円形建築物) 出典 : Sketchfab 形式 : GLB (glTF 2.0 Binary) Draco圧縮とは DracoはGoogleが開発したオープンソースの3Dメッシュ圧縮ライブラリです。glTF 2.0ではKHR_draco_mesh_compression拡張として標準サポートされています。 圧縮の仕組み 量子化(Quantization) : 頂点座標やUV座標を指定ビット数に丸める 予測符号化 : 隣接頂点との差分を予測して符号化 エントロピー符号化 : 予測誤差を効率的に圧縮 圧縮コマンド # n # n p p g x オ x l プ - - - t g シ g q q q f l ョ l u u u - t ン t a a a t f 付 f n n n r - き - t t t a t ( t i i i n r 高 r z z z s a 品 a e e e f n 質 n - - - o s 設 s p n t r f 定 f o o e m o ) o s r x を r r i m c 使 m m t a o 用 i l o d d o r r r n 1 d a a 0 c c 1 1 o o 4 \ 2 i i \ n n p p u u t t . . g g l l b b o o u u t t p p u u t t - - d d r r a a c c o o . . g g l l b b \ 圧縮結果の比較 ファイルサイズ ファイル サイズ 削減率 rotunde-brunnen.glb(元) 94.7 MB - rotunde-brunnen-draco.glb 12.5 MB 87%削減 メッシュ構造 項目 元ファイル Draco圧縮後 メッシュ数 38 2(統合) 三角形数 約175万 約167万 テクスチャ 1024x1024 PNG 同一 バウンディングボックス ほぼ同一 ほぼ同一 精度 視覚的な精度低下はありません 。 ...

2026年1月17日 · 8 分 · Nakamura

300万点超の点群データをブラウザで快適に表示する - Potree LODビューアの構築

大規模な点群データ(LiDAR/LAZ)をWebブラウザで表示しようとすると、メモリ不足でクラッシュしてしまうことがあります。本記事では、Potree のLOD(Level of Detail)技術を使って、数百万点の点群をストレスなく表示する方法を紹介します。 https://3dtiles-viewer.vercel.app/potree-lod-viewer.html 使用データ データ名 : Utah State Capitol(ユタ州議事堂) 出典 : OpenTopography ダウンロードURL : https://object.cloud.sdsc.edu/v1/AUTH_opentopography/www/education/MatlabTopo/Utah_state_capitol.laz ファイルサイズ : 15MB(LAZ圧縮) 点数 : 3,481,512点 位置 : Salt Lake City, Utah, USA 課題 このデータをそのままThree.jsなどで読み込もうとすると、ブラウザがフリーズする可能性があります。 解決策:Potree Potreeは、大規模点群データのためのWebGLベースのビューアです。**LOD(Level of Detail)**により、カメラに近い部分は詳細に、遠い部分は粗く表示することで、数十億点のデータでもスムーズに動作します。 仕組み 点群をオクトリー構造 で空間分割 各ノードに異なる詳細度のデータを格納 視点に応じて必要なノードのみ動的に読み込み 手順 1. LAZファイルのダウンロード c u r " l h t - t L p s : / / u o t b a j h e _ c c t a . p c i l t o o u l d . . l s a d z s c \ . e d u / v 1 / A U T H _ o p e n t o p o g r a p h y / w w w / e d u c a t i o n / M a t l a b T o p o / U t a h _ s t a t e _ c a p i t o l . l a z " 2. LAZからPotree形式への変換 PotreeConverterをDockerで実行します。 ...

2026年1月17日 · 26 分 · Nakamura

IIIF 3D Viewerを試作しました。

! 本記事はAIが作成しました。 はじめに デジタルヒューマニティーズの分野において、文化財や歴史的資料の3Dデジタル化が急速に進んでいます。しかし、3Dモデルを単に閲覧するだけでなく、学術的な分析や教育に活用するためには、適切なツールが必要です。本記事では、IIIF(International Image Interoperability Framework)規格に準拠した3Dモデルビューア「IIIF 3D Viewer」について紹介します。 IIIF 3D Viewerとは IIIF 3D Viewerは、IIIF Manifestフォーマットに基づいて3Dモデルを表示し、アノテーション機能を提供するウェブアプリケーションです。 主な特徴 標準規格への準拠 IIIF Presentation API 3.0に準拠 既存のIIIFエコシステムとの親和性 インタラクティブな3D表示 GLB/GLTFフォーマットのサポート マウスやタッチ操作による直感的な操作 WebGLを活用した高速レンダリング アノテーション機能 3Dモデル上の任意の点にアノテーションを追加 3DSelectorタイプによる空間座標の記録 学術的な注釈や解説の付与が可能 多言語対応 日本語・英語のインターフェース 国際的な研究プロジェクトでの利用を想定 静的サイト生成 Next.jsの静的エクスポート機能を活用 GitHub PagesやNetlifyなどで簡単にホスティング可能 技術的な実装 アーキテクチャ 本アプリケーションは、以下の技術スタックで構築されています: フロントエンドフレームワーク : Next.js 15(App Router) 3Dレンダリング : React Three Fiber + Three.js 国際化 : next-intl スタイリング : Tailwind CSS 型安全性 : TypeScript IIIF Manifestの構造 3Dモデルを含むIIIF Manifestの例: { } " " " " " ] @ i t l i c d y a t { } o " p b e n : e e m " " " ] t " l s i t i e " : " " d y t { } x h : : " p e t t " : e m " " " ] " t M { [ " s i t i : p a " : " d y t { } s n " h : " p e " : i j t " : e m " " " " } " h / f a t C [ " s i t m b , t t / e " p a " : " d y o o " " " a t e s : s n h : " p t d i t f r p x t : t " : e i y d y o g : a " [ / a t A [ " v " " p r e / m , " / s p n " : a : : e m t / p 石 e " s n h t " a " i l 淵 x , : t " i { " : t : i e 家 a t t A o h " i . 地 m / a p n n t " : " f c 球 p e t s n " t M h . o 儀 l x i : : p o " t i m " e a o t s d m t o ] . m n / a " : e o p m c p P e t p / l d s a a } o l a x i a / " e : p n , m e g a o i e , l / i i / . e m n n x / / / f c c " p " t a g e p e a o , l , i m l x r s n m e n p t a e t v / . g l f m s . a a c " e - p e j s n o , . b l n s / n m c i e t o 1 o / o n . a n " t a m a c t " , a n / r o i , t n m y m o i o o " / n o t d c / n a e a 3 p t l n / a i . v c g o g a o e n l s n / / b / t 1 1 " 1 e " " , " x , , t . j s o n " , アノテーションの実装 3D空間におけるアノテーションは、以下のような構造で表現されます: ...

2025年7月29日 · 4 分 · Nakamura

Kompakkt Standalone Viewerを試す

概要 Kompakkt Standalone Viewerを試す機会がありましたので、備忘録です。 以下のように説明されています。 This repository hosts a JavaScript file which can be included on any website to use the Kompakkt Viewer without needing to use the Kompakkt Repository or the Kompakkt Server. (機械翻訳)このリポジトリには、Kompakkt Viewerを使用するためのJavaScriptファイルが含まれており、このファイルをウェブサイトに組み込むだけで、Kompakkt RepositoryやKompakkt Serverを使用せずにビューアを利用することができます。 リポジトリ 以下で公開されています。 https://github.com/Kompakkt/StandaloneViewer またGitHub Pagesでビューアにアクセスすることができます。 https://kompakkt.github.io/StandaloneViewer/ 表示例 以下のように、3Dモデルとアノテーションを表示することができました。 https://kompakkt.github.io/StandaloneViewer/?state=eyJyZXNvdXJjZSI6Imh0dHBzOi8vc3VraWxhbS5hd3MubGRhcy5qcC9maWxlcy9vcmlnaW5hbC8yNTNlZmRmMzQ0Nzg0NTk5NTRhZTA0ZjZiM2JlZmE1ZjM4MjJlZDU5LmdsYiIsImFubm90YXRpb25zIjpbeyJfaWQiOiI2NzcwYTE1NDRjZTFmZDAyMzQ4OGVkODAiLCJib2R5Ijp7InR5cGUiOiJhbm5vdGF0aW9uIiwiY29udGVudCI6eyJ0eXBlIjoidGV4dCIsInRpdGxlIjoibXkgdGl0bGUiLCJkZXNjcmlwdGlvbiI6Im15IGRlc2NyaXB0aW9uIiwicmVsYXRlZFBlcnNwZWN0aXZlIjp7ImNhbWVyYVR5cGUiOiJhcmNSb3RhdGVDYW0iLCJwb3NpdGlvbiI6eyJ4IjoyLjI5NzE5OTgyNzA3MzIxLCJ5IjoxLjA0NjMzMzI0ODg4Njk0LCJ6IjoxLjYzNjAwODMyNDk5NDF9LCJ0YXJnZXQiOnsieCI6MS4wMTMxMDUwMzQ4MjgxOSwieSI6MS4xNzkwMzM5OTQ2NzQ2OCwieiI6MS4wMTQ0NDIwMjY2MTUxNH0sInByZXZpZXciOiJwcmV2aWV3cy9hbm5vdGF0aW9uLzY3NzBhMTU0NGNlMWZkMDIzNDg4ZWQ4MC5wbmcifX19LCJjcmVhdGVkIjoiMjAyNC0xMi0yOVQwMTowOTo0MC4yODZaIiwiY3JlYXRvciI6eyJ0eXBlIjoicGVyc29uIiwibmFtZSI6IlNhdG9ydSBOYWthbXVyYSIsIl9pZCI6IjY3NWE5Y2U0N2QxZmIyNDUzZjBmYjNjMSJ9LCJnZW5lcmF0ZWQiOiIyMDI0LTEyLTI5VDAxOjA5OjQyLjk3NFoiLCJnZW5lcmF0b3IiOnsidHlwZSI6InNvZnR3YXJlIiwibmFtZSI6IktvbXBha2t0IiwiX2lkIjoiNjc1YTljZTQ3ZDFmYjI0NTNmMGZiM2MxIiwiaG9tZXBhZ2UiOiJodHRwczovL2dpdGh1Yi5jb20vS29tcGFra3QvS29tcGFra3QifSwiaWRlbnRpZmllciI6IjY3NzBhMTU0NGNlMWZkMDIzNDg4ZWQ4MCIsImxhc3RNb2RpZmljYXRpb25EYXRlIjoiMjAyNC0xMi0yOVQwMToxMToyNC4zNjBaIiwibGFzdE1vZGlmaWVkQnkiOnsiX2lkIjoiNjc1YTljZTQ3ZDFmYjI0NTNmMGZiM2MxIiwibmFtZSI6IlNhdG9ydSBOYWthbXVyYSIsInR5cGUiOiJwZXJzb24ifSwibW90aXZhdGlvbiI6ImRlZmF1bHRNb3RpdmF0aW9uIiwicmFua2luZyI6MSwidGFyZ2V0Ijp7InNvdXJjZSI6eyJyZWxhdGVkRW50aXR5IjoiNjc3MDllODYwY2I4ZDA2NGZhMDc1NWI3IiwicmVsYXRlZENvbXBpbGF0aW9uIjoiIn0sInNlbGVjdG9yIjp7InJlZmVyZW5jZVBvaW50Ijp7Il9pc0RpcnR5Ijp0cnVlLCJfeCI6MC40MzI0MjIyMjQwNDc5MDksIl95IjoxLjY3NDQzMTE3MTYxNjA1LCJfeiI6MS42NTQ2MTgxODc1NDE1OH0sInJlZmVyZW5jZU5vcm1hbCI6bnVsbH19LCJ2YWxpZGF0ZWQiOnRydWV9XX0%253D ただし、アノテーションに日本語が含まれているとエラーが発生してしまいました。 また、アノテーションが3Dモデル上に表示されないなど、使用方法に誤りが含まれるようでした。 補足 入力するアノテーションのフォーマットとして、Kompakktで付与したアノテーションをエクスポートしたものが利用できるようでした。 例えば、以下です。 [ ] { } " " } " " } " " } " " " } " " " } " _ b , c c , g g , i l l , m r t , v i o " " } r r " " " e e " " " " d a a " " " o a a " } " } a d d t c e e t n _ n n t n _ h e s s _ n t t n r s , s l " y y o " " " " } a a y a i e e y a i o n t t i a y i k g o " " e " } " i : " p n t t d r t t p m d r r p m d m t M M d m p v i e u r r l r , r d : e t y i e e " " } " } " e o e e " a a e e " e i o o " e e a n t r e e e e " " " " e a " " e p t s l c p , t , p d r " " : t t " " : p f d d : " " t g " c l l c f _ _ _ _ f t 6 { : n e l c a a o " " " a " " " r " " : : e o : : a i i i : : i " : e a a t e i x y z e e 7 t " e r t m s x y z r x y z e : : " d r " g e f f " o : " t t o r s " " " r d 7 " " : " i e e i " " " g " " " v " " 6 " " " " 6 e r i i 6 " " n { : e e r e D : : : e " 0 a : : p d r t : : : e : : : i " { p S 7 : : s K 7 " " c e 7 S p " 1 d d " n i n : a n " t P a i t e 2 e a 5 o o 5 : : a d 5 a e : , { E C : c r 0 1 1 c 1 n { t " i e T o 2 1 1 " 1 1 1 w 0 r t a " { f m a t B a t r n o e t . . . e t 5 o e a o r y n . . . : . . . " 2 s o 9 2 t p 9 " " i y 9 o s " t m { P y 4 6 6 N r 4 t x a n s p " 2 0 6 0 1 0 : 4 o r c 0 w a c h 6 o " c r o d i p o " 3 7 5 o u 4 a t a " p e : 9 4 3 { 1 7 1 - n u e 2 a k e t 7 n : e u n e t i i : 2 4 4 r e c t " " : e " 7 6 6 3 9 4 " 1 " 4 4 r k 4 t 7 D 4 " f y l n 4 4 6 m e i , , c : { 1 3 0 1 0 4 p 2 , N 7 - e t 7 p 0 a { 7 N a " a t t 2 3 1 a 1 o " t 9 3 0 0 3 4 r - a d 1 " " d s a t d a u : t " r 2 1 8 l f n b i " 9 3 8 5 3 2 e 2 k 1 2 , , 1 : 1 e 1 k l i : u 2 1 1 " d " b v a 8 2 3 0 9 0 v 9 a f - f / 5 " f a t " o e 2 7 8 : 0 , b e r 2 4 2 3 9 2 i T m b 2 b / 4 : b m M 6 n { , 4 1 7 2 " " c 7 8 4 4 4 6 e 0 u 2 9 2 g 4 2 u o 7 " 0 6 5 n 3 , : R 0 8 9 8 6 6 w 1 r 4 T 4 i c " 4 r t 7 : 4 1 4 u 4 o 7 8 9 2 7 1 s : a 5 0 5 t e 2 5 a i 0 7 6 1 l 8 { t 3 6 4 8 4 5 / 0 " 3 1 3 h 1 0 3 " v 9 " 9 0 5 l 8 a 2 9 1 1 6 1 a 9 , f : f u f 2 f , a e " 0 5 8 e t 1 4 9 8 4 n : 0 0 0 b d 5 0 t 8 9 , d e , , , , n 4 f 9 f . 0 - f i 6 , 8 C o 0 b : b c 2 0 b o 0 0 a t . 3 4 3 o 3 1 3 n c " m a 2 c 2 c m 4 - c " b , " t 8 1 . 1 / 8 0 1 , 8 , i 6 " 9 " K 8 4 " d o Z 7 , o e T , 0 n " 4 m d 2 6 / , Z p 8 2 4 6 " a 0 : f 7 , k " 4 a 7 k , 7 0 0 t : 7 a / 4 5 1 K 4 5 5 o . b 4 m 9 7 4 p 4 " c a 9 , e k Z 1 k " f t , d " 0 2 3 4 8 8 e d 8 0 . p n g " ただし、Kompakktでも3Dモデル上にアノテーションが表示されず、使用方法のどこかに誤りがありそうです。 ...

2025年1月5日 · 6 分 · Nakamura

Sketchfabのアノテーションを試す

概要 Sketchfabのアノテーションを試してみましたので、備忘録です。 最終的に、以下のようなビューアを作成しました。 https://nakamura196.github.io/SketchfabAnnotationViewer/ https://youtu.be/iEe6TbI3X70 使用データ 「菊池市/デジタルアーカイブ」の「石淵家地球儀」を対象とします。 https://adeac.jp/kikuchi-city/catalog/e0001 使用例 まずSketchfabに3Dデータをアップロードしました。 https://skfb.ly/pt8oU そしてアノテーションを付与しました。結果、以下のようなページが用意されました。 APIを利用する 以下のリポジトリも参考にしてください。 https://github.com/nakamura196/SketchfabAnnotationViewer 以下のようなスクリプトにより、アノテーションの一覧取得や、初期表示に使用するアノテーションの指定、選択したアノテーションへのフォーカスなどを行うことができました。 < < ! h / D t < < h O m h / b / t C l e < < < < h o < < < < b m T a m m t s e d ! d / s s o l Y l d e e i c a y - i < < < < < < < d c c d > P a > t t t r d - v ! h / ! d / ! h u / i r r y E n a a l i > c - 1 S h - i < d - 2 l < u v i i > g e p l メ c - k 1 - v i i - ! l > p p h = c n > t a イ l c e > f i w h c s a / v c i - > t t t " h a S s ン a ヘ l t 3 c r d i e l r l i > ア l d - m e a m k s s コ s ッ a c D l a = d i a c l f ノ a = s s l n r e e r = ン s ダ s h ビ a m " t g s = o r テ s " ア r r > " s = t c " テ = ー s f ュ s e a h h s " w a ー s a ノ c c > e " c = b ナ " = a ー s p = t = " f m シ = n テ = = t v h " g m " b ア = i " = " u e ョ " n ー " " = i f h - a t " - 1 " r l > ン t o シ h s " e a t g x e A m f 0 4 o l リ e t ョ t c U w b t r - x n b r 0 8 u s ス x a ン t r T p p a w t n - a % 0 n c ト t t 項 p i F o A s y - - o 6 m " " d r - i 目 s p - r n : - 4 2 t " e e e x o は : t 8 t n 1 x x a > " d e l n J / . " " / 0 l l t n - a j t c 0 i s f l v s s c a d m f o h o i a t " o t n f x o n a n s S a > n i . o - n d t t c t < t o t n a t V o - " r i / e n a t u - i w s i c s n i - t b e - e c p . c t V l s o o w m m l t s r = i w a l e d i a で k i " e i n p d r b s 追 e p w w n s y b o s 加 t t i e d " - t o l = c > d r c > 1 e r d " h t < s 0 x d s f h / s t e t p a = t . p - r e a b d i c x g x c . e t o - r b t e c v l m 4 a o - - o i e " " y r g y m c > > > - d r - / e < 8 e a 2 a - / 0 r y " p w s 0 - - > i i c g 7 / d r t r 0 s t i e a 0 k h p x y e , t t - m t > - 3 b c i c 0 - h n e 0 4 f i n " " a t t > b i e A - a r n v l n i - m o e s b t w c - a e a 6 t r l " i - e > o 1 = n . 1 s 1 . < 2 0 / . " h 1 2 . > j s " > < / s c r i p t > c c c c c c } f } f } o o o o l ) u u n n n n n i ; n n S s s s S s s A e c c k t t t k t t P n s } e } t a } t a } e e I t u , r , i p ) i p ) t i c u t m p の . c r o i ; o i ; c f l r c o o オ i c o n . n . a a h r i l h d s プ n e a a } r c g i } c a } g p p p f a e P f e シ i s p p ) : o s e f o n ) f o r i i a m n a a l = ョ t s i i ; n e t n n ; o t e . . b e t r b I ン ( : . . f s t A ( ア s o c o v s s a モ d p を m s a s f u o u n e c r ノ t t c a a } a u A e h h V = = m デ a 指 o f t d e o n l p n r o e テ a o n n ) n s n n o o i s ル = r 定 d u a d t c c e A o r n t ー a t n n n ; n A n t w w e d n I s し e n r E u u t . n t ) s u シ n i s o o o n o C A A w o e = D u e て l c t v p s i e n a o r ョ n o t t t f t n t a n n e c w を r I モ I t ( e A A o r o t { l n ン o n a a o a o a m n n r u n 指 l n デ d i ) n n n n r t i e ; 一 t s a t t c t t t e o o を m S e 定 P t ル , o ; t n n o a o . 覧 a . n i i u i a i r t t 埋 e k w a ( を n L o o r t n e を t f n o o s o t o a a a め n e r u ロ { i t t ( i L r H i o o n n A n i n A t t 込 t t U a r ー ( s a a ' o i r T o r t I I n L o ( n i i む . c R m l ド a t t t { S n s o M n E a t t n i n a i o o た g h L s P p e i i k s t r L L a t e e o s ( n m n n め e f S . a i n o o e ( ( ( に i c i m m t t a n a ( T の t a e g r ) e n n t a f ' 追 s h o . . a C p o t a o i E b a e a r s ( c p u F 加 t ( n t a t o i t i n o f l ( r t m { ( ( a h i n a C ( I e d i n , a o n l r e i c ( s ' a p f ) c i o a t x d o t t n o t a m f h ' . v p i a t l n n e t E n a a i : t i m e r P i g i i , b { i e t n m C v ( i n o a p e n a a d e e ) o d a o o e a n n n f t ( を t m r ' t w ; p V n i t = n n p e o I a i a 取 B e a ) ( e o i t n a t t i r t n l o n 得 y ) m ' r s e ( o e t d e L , . a d s n n I ; s p r ) w e r i o n i a t e e I o d ( e ; e r f o c t s i p i x , n t ( w s a r r e = n u t n p o , d a ' i ' ' d , t , m = e d e n e t a n 0 ) y f c d e n e n I { x i p d 2 , ' a a h o i n a e x d n ) o i o a , 最 i n c n t n r ) C d ア ; n - w d 1 初 l n a u d . n ( ; h e ニ I f . d 0 f の e o n m e c o ' i x メ n r l 9 ) u ア d t n e x r t c l ) ー d a o 0 n ノ a o n ) e a l d シ e m c 5 c テ t t t t a t i ( { ョ ア x e a e t ー o i a . = t i c ク a ン ノ ) ' t 7 i シ o t g > e o k リ n を テ ; ) i 9 0 o ョ l n i e E n ' ッ n 許 ー ; o c ; n ン o s o t { l . , ク o 可 シ n 4 に a ) n E e n 時 t ョ . 4 フ d s l m a に a ン s 6 ォ ' { ' e e m フ t を ア e 9 ー ) ) m n e ォ i 表 ノ a 9 { カ ; ; e t ; = ー o 示 テ r 4 ス n ( > カ n ー c f t ' ス I シ h 9 B l { t ョ ) 7 y i e ン ; 1 I ' ア m ツ c d ) ノ ) ー b ( ; テ ; ル c ' ー チ f a シ ッ 4 n ョ プ 4 n ン を 3 o タ 表 8 t イ 示 1 a ト 5 t ル ' i ; o n - l i ' s i t d ' ' ) パ ; ラ メ ー タ を 取 得 まとめ 3Dデータへのアノテーションの応用にあたり、参考になりましたら幸いです。 ...

2025年1月2日 · 11 分 · Nakamura

objファイルをgltf, glbファイルに変換する

概要 objファイルをgltf, glbファイルに変換する方法の備忘録です。 対象データ 「菊池市/デジタルアーカイブ」の「石淵家地球儀」を対象とします。 https://adeac.jp/kikuchi-city/catalog/e0001 objファイルは以下のURLからアクセスできます。 https://adeac.jp/viewitem/kikuchi-city/viewer/3d/dc-e0097/models/Kikuchi_Globe_180820.obj 対象データのダウンロード ライブラリをダウンロードします。 n p m i a x i o s 以下のファイルを用意します。 c c c a } a } c c i } p o o o s s o o f r n n n y y n n o s s s 指 n n 使 s s ( c t t t 定 c c c } r r } o c t } } 用 t t ! f e さ o o ) e e ) b r 例 f s s a f p れ f n n ; s t ; j f y c o o s . s x s a た u s s p u u a b u . m O i t U n t t u m r o r w w フ n { c c c c f c c i } } t c j t e k b o = h R c r e e n n r r ァ c o o o o s o o f c o U p x d j s L t w r l t s s i i イ t n n n n . n n e h n r u i i F r = か i r e , h p e n t t ル i s s s s w s . s ( l s l t s r i = e ら o i s o o . e e e を o o t t o t t r o m t m c c c a c c c f } s c ( o D t S l q r フ n t p d n d w r r ロ n b b i l t t o o o w o o o o e o e l = i s y e r u e ァ e o : s a . . ー j o o j o o t e l m l n n n a n n n r n r e r S n ( e i q イ d r n e t P o o ド p b b b b e . t M s s s . i s . s s { s r . ' y c o q r u ル o s ' T a r n n し r フ j j フ j j F l フ l a t t t m t o m t t ( c c c a c o o e h = n ( b u e i を w = e G y . o ( ( 、 o ァ R C ァ F F i o ァ M t t l t c o o o w o l r r t c o j i ( r ダ n E p p m ' ' 関 c イ e o イ i i l g イ a c m m m l d e l m t o n n n a n e ) r t ( u U r ' e ウ l f = T e i i f e 連 e ル s n ル l l e ( ル t h t t t o . t e n s s s テ i s . o p o t r e f ( ン o s ' : p s i r フ s を p t を e e S ` の c ) l l l フ w l フ l x s t t t ク t o l { r s / u p l ( s ' ロ a . a , e e n r ァ s ダ o e 保 N P y D パ h F U F ァ n o ァ C t t ス l o ( : d t u , ' ' p ー d c w ' ( ( i o イ O ウ n n 存 a a n o ス { i r i イ l g イ o u t t t チ d e g ` / p t a ) a ド F r a s w ( s r ル b ン s t m t c w を = l l l ル o ( ル n r m e e e ャ o . ( E w u D o x ; t す i e i t r r h ' を j ロ e e h ( n 検 e e を a ` の t e a x x x 画 w l ' r a n t i u i h る l a t r i e ' , ダ F ー = o l 索 o N = P ダ d D 内 e M t t t t 像 n o N r d l D r t o ' 関 e t e t s , ウ i ド = = = b o b a a ウ F o 容 n a c u u u を l g o o e o i , p s ) 数 ( e a a e o r ン l し o j a j m n t ン i w を t t h r r r ダ o ( r a a r u ' ; u W x m r l r e ロ e て a b p p F d C e e h ロ l n 取 c e e e ウ a ` M c d ) { t ) r r i ' ) v e j ー ( 内 w j a a i e o w ー e l 得 = h o F U F ン d D T p . s ) D ; l i o , ; e s e ド o 容 a R t t l d n = = ド ( o し e f i r i ロ F o L r j ' r i , t s , o c す b を i e h h e t U m a て f s l l l ー i w o p ; { e r e ( l t る j 取 t s . . P O e m R p t d 関 s t e e ド l n f c / c ) o S { r v ) U 得 p b j a B n t L a l e 連 . = e N = P e l i e v u ; u t e e ; r a o a o t J t l ( t U d フ r x a a ( o l s i r t r j ) l x n s i h . M m h r ァ e [ t m n t t a e s e s p e e ; , i s e n , f m a t . l M イ a . u e e h e d i w i u a c o e n ( i a t l j , T ル d . r w x e r n i v t m t o s . a o o l t c F o L を F . e = = t d e g t e P ( ) u . d m u b e c h i i m 探 i m M U u f e : a o t g a e t j : h [ l n t f す l t a m R p r t e O m t u = p e t ( p C ( 1 e ( l i e l t a L a e e r B / t h t > u t a o u o $ / ] N o F l S C c t ( t U x e J k r ) p t ( ; b t n { ^ ; a u i e y o h c t h r t n i u u { D o j D t o m m t l : n n e h e . l u c f k e { t i b U i e b t e p e c t s [ x j , r e i u P r j r r n j l , u P $ ( e ) 1 t o e d l c } a ) U l , t F l t a { m n ] u i t e h ) t r ) ) i i o D t m t t { ; r n e f i : i ; h { l ; o ; l b b i h t l . e ( x i n - ) ) b e \ j r ) l F m F o t l $ c ; ; j P s U , ; F i a i u u e t { i F a + r i l t l t r : h e t i t ( l m l e c e p e e r y l h . ) t e P h N u F $ r / e } + . l P a A a t i { O o v N ` ) h F a t l m D l t B r i a ) $ r i t h l e i e e J . e m ; / e l h , ( , r P x m w e m f e } , a t f e e ) ) ; N ` ' ^ o t u i s r ; ; a ) u m b p h r l s / m ; t a j a ) e e a 3 e f p U t ; F . g d ) - _ r h i ' e / ; 8 K l . l ) } d ' d ) b e ; ` c ) . a P ) - ; s h s a ; e + r e t 0 ( e n h 0 . f a } 9 + ; m ` 7 ) e ) / $ ( ; m / t o g e d m x e ) t l ] u s ; r / e K F i i k l u e c N h a i m _ e G ) l ) o ; b e _ 1 8 0 8 2 0 . o b j ' ; 実行します。 ...

2024年12月30日 · 11 分 · Nakamura

aleph-r3fを試す

概要 以下の記事で、Aleph 3D viewerを紹介しました。 その後調べた結果、以下のリポジトリの存在も知りました。 https://github.com/aleph-viewer/aleph-r3f 以下のように説明されており、react-three-fiberとshadcn/uiを使用している点に違いがあるようでした。 Aleph is a 3D object viewer and annotation/measurement tool built with react-three-fiber and shadcn/ui 以下のように、アノテーション付与機能なども改良されているようでした。 今回の記事でも、菊池市デジタルアーカイブで公開されている「石淵家地球儀」の3Dデータを使用します。 https://adeac.jp/kikuchi-city/catalog/e0001 使い方 以下で閲覧いただけます。 https://iiif-aleph-r3f.vercel.app/ アノテーションタブで、アノテーションの付与を行うことができました。 アノテーションデータのインポート/エクスポートを行うことができ、JSON形式でのエクスポート結果は以下でした。 [ ] { } " } " } " } " } " } " " p , n , c , c , r , l d o " " " o " " " a " " " a " " " o " " " " " a e s x y z r x y z m x y z m x y z t i _ _ _ _ b s i " " " m " " " e " " " e " " " a s x y z o e c t : : : a : : : r : : : r : : : t E " " " r l r i l a a i u : : : d " i o - 0 - " - 0 - P - 1 - T - - - o l e : p n 0 . 0 : 0 . 0 o 0 . 1 a 0 0 0 n e 0 0 0 r t " . 6 . . 6 . s . 1 . r . . . " r , , , " " i : 0 2 7 { 1 4 7 i 1 7 4 g 0 0 0 : " : 大 o 6 5 4 1 3 5 t 5 6 3 e 0 0 1 : 西 n { 6 6 2 6 0 6 i 9 7 7 t 2 0 1 { " 洋 " 9 8 4 2 0 9 o 2 0 8 " 3 9 6 t X " : 0 1 5 7 3 8 n 2 7 8 : 6 7 8 r Y , 3 7 4 7 1 5 " 1 1 4 4 8 4 u Z " 9 3 4 5 0 1 : 8 1 2 { 9 9 0 e " 初 2 5 3 3 1 6 8 5 1 9 4 0 , め 6 2 8 9 1 8 { 7 8 4 3 6 0 て 8 7 7 5 9 7 9 1 4 0 6 4 の 1 8 0 8 7 0 9 1 4 9 8 9 ア 7 4 0 2 9 4 5 4 4 5 5 2 ノ 0 1 1 5 0 4 9 8 4 3 7 0 テ 2 5 0 4 3 5 2 4 1 9 9 9 ー 0 4 9 5 2 2 0 3 0 7 1 5 シ 0 , 7 9 , 9 5 , 4 9 0 9 ョ 4 7 5 4 1 4 ン , , , 9 6 7 " 2 5 , , カスタマイズ 「石淵家地球儀」を表示するにあたり、以下のようにソースコードを編集する必要がありました。 ...

2024年12月29日 · 12 分 · Nakamura

Aleph 3D viewerを試す

概要 3D object viewerの一つであるAlephを試してみましたので、備忘録です。 https://github.com/aleph-viewer/aleph 菊池市デジタルアーカイブで公開されている「石淵家地球儀」の3Dデータを使用しています。 https://adeac.jp/kikuchi-city/catalog/e0001 背景 IIIF対応の3Dビューアを調査する過程で、以下の記事を見つけました。 https://pro.europeana.eu/post/iiif-for-3d-making-web-interoperability-multi-dimensional こちらで紹介されているビューアの一つとして、Alephを知りました。 使い方 GitHubリポジトリをForkして、Vercelにデプロイしました。 https://aleph-coral.vercel.app/ 初期表示は以下です。 画面左部の入力フォームにあるglbファイルへのURLを変更することで、指定した3Dモデルが表示されました。 まとめ 3Dビューアの調査にあたり、参考になりましたら幸いです。

2024年12月29日 · 1 分 · Nakamura

Omeka SのModel Viewerモジュールを試す

概要 Model Viewerは、Omeka S向けのモジュールであり、3Dモデル用のビューワーであるthree.jsを統合しています。 https://github.com/Daniel-KM/Omeka-S-module-ModelViewer 本記事では、本モジュールの使用方法について説明します。 参考 以下で、IIIFを用いた3Dモデルの公開方法を紹介しています。こちらも参考にしてください。 インストール 他の一般的なモジュールのインストール方法と同じです。 使用方法 メディアの詳細画面において、以下のように、3Dビューアが表示されます。 まとめ 操作性についてはUniversal Viewerのほうが優れているように感じましたが、参考になりましたら幸いです。

2024年10月18日 · 1 分 · Nakamura

Omeka Sで3Dモデルを公開する

概要 Omeka Sで3Dモデルを公開する方法について調べてみましたので、備忘録です。 結果、以下のように3DモデルをOmeka Sで扱うことができました。 https://omeka.aws.ldas.jp/s/sample/item/43 バージョン 使用するOmeka Sおよびモジュールのバージョンは以下です。 Omeka S 4.1.1 Common 3.4.62 IIIF Server 3.6.21 Universal Viewer 3.6.9 モジュールのインストール Common, IIIF Server, Universal Viewerモジュールをインストールします。 モジュールの設定 IIIF Serverモジュールについて、設定を2点行います。 まず、Default IIIF api version of the manifestを3にします。 また、Default IIIF image api versionをNo image serverにします。 glbファイルのアップロード 以下で公開されているglbファイルを利用させていただきます。 https://ft-lab.github.io/gltf.html 以下のように、apple.glbをメディアとして、新規のアイテムを登録します。 結果、サイトの詳細ページにおいて、Universal Viewer上に3Dモデルが表示されます。 https://omeka.aws.ldas.jp/s/sample/item/43 作成されるマニフェストファイルは以下です。 { } " " " " } " ] " " ] " " ] " ] " ] @ i t l , m , r p , v s , h , i c d y a e i r i e o t o " p b t g o e e m e n : e e " ] a { } h v { } w A { } e { } m { } t " l n d t i i l p s e " : " o a s d n s a " x h : n t " e g o g : t t " e " a " } " } : r " " " } D " " " " } " " e " " " } " " ] " " " " } " " ] " t M { " g " l , v " i t l i : i t l , f p " i t l , f l [ @ i t l , r i : p a : l : a a " : d y a r d y a o r : d y a o a c d y a i t s n b b l h " p b e [ " p b r o " p b r n o " p b g e " : i [ " [ e " ] u " ] t [ : e e " ] c : e e " ] m f [ : e e " ] m g " n : e e " ] h m { } h / f l n e n t " l n t " l n a i " l n a u j t " l n t s t / e " o " o p " : " o i " : " o t l " : " o t a a e " : " o s " t o s : n : n s h : n o h : n " e h : n " g " x h : n " : p m t e " e " : t " e " n t " e " : " t " e " : e t t " e " : " " " ] : e " { " T { " g / t A { " O " t D { " A : t T { " R " " t C { " 1 [ i t i / k , : i : l / p g : m : p a : p " p e : e " : : p a : " " d y t / a t b r s e e s t i a " s x s t s n h " p e i . [ l [ " i : n [ k " : a [ p h : t [ o e [ " : [ t : e m { } i a e g / t a l / s r p t / " u x h / a t " s i w " h / " e / e e l t / , r t t / s p " : " f s t o , S f o t s i p o c / t o " s h : . . s m " t m " t c s m e h p m , : t " " " " " } " " } i l s e - e , a : e t : e / t A [ i t m b , t l o d t k t k j t / k i m / k / p n d y o o a a / a a a o a s i a n l / a r s n " p t d r b a s t . - . o o . " i . i : : e i y " " " " " " " g e " ] p . e a r a n n m a s , i a g t " v " i t f s h w d e l n i j m w i w - / e w i i w h a " : a : d y o e e i u t " o / p e s g s l l k s t f s t o t h t " p r r i d r " : n p / n . h . d d a . e . . s m i t " i { : e m v g t a : e " r i t l t l " + . l : i l s e o t A o " a i h h t { " [ e i s d " d j a d o d t k n p n n " : t c t " i " : U s i . a , a s w a a / a a a P s n " h " e " : o h n e f o s s o s s a a s t . a : : t " : " : n t [ t n / r . . n . . a p . e a g t t M : n " t i t 3 g j j " l j " i j m w e a " p o " n u : p t a / / p p , d p / p e s " o t p s d m [ u l s l t 4 v / / a / p / n . , m i a : e o ] l l n : e i 3 o " a s s r i t l e o i / l d , l , u / d o / c , p . / e i s d k n n / " e , l / ] n m a i j a s i . a a " t o , l l o " / a b / p a e f o s . , i m / m 3 n / i / a n / r . a n e g e / i C t a / t 3 g j w g k l k c f N e p i a / / p s " a t a o e E m i t t 4 v / . , . f . n s / s - e i 3 o i l a - a t t 1 / c m o / c i d w b w e " . 4 o / n c a i a s i s x , 0 3 n 4 / a b f s . n . t / " t 3 3 n / / . l a l . " , e " / v C 3 j d r d j , x , c a N / p a y a s t o s E 4 / s " s o " n / / 3 i . , . n t p 1 / i j j " e 1 . a i p p , x " 0 n f / / t , / n / f i . " o 3 i i j , t / l i s a 4 e f o t 3 s / n i / / 3 " o a o / , n n r 4 - n i 3 p o g / a t i c g a n a e t a n / i l v 4 o / a 4 n c s " / 2 / , 4 8 p 4 f 1 " 7 " , 1 , 0 7 5 2 5 2 7 0 b 0 3 b 4 3 1 4 e 7 3 4 b b d d 3 1 8 d 0 3 4 2 a 4 . g l b " , まとめ Omeka Sと関連モジュールを使用することで、比較的に3Dモデルを公開することができました。 ...

2024年10月4日 · 8 分 · Nakamura

vue3とbabylon.jsの双方向のやりとり例(その2)

概要 以下の記事で、vue3とbabylon.jsのやりとりを行うプログラムを作成しました。 今回は上記の発展版として、sceneに渡すmeshをvueから指定しています。以下のリンク先で内容をご確認いただけます。(途中、meshをうまく削除できていない箇所があります。今後修正予定です。) https://youtu.be/-dyQp-QX42I デモサイト https://nakamura196.github.io/nuxt3-babylonjs/10 ソースコード https://github.com/nakamura196/nuxt3-babylonjs/blob/main/pages/10/index.vue まとめ 参考になりましたら幸いです。

2023年3月29日 · 1 分 · Nakamura

Nuxt3 x babylon.jsで.glbファイルをロードする

概要 Nuxt3 x babylon.jsにおいて、.glbファイルのロードを試みた際にエラーが発生しましたので、その備忘録です。 エラーの内容 以下のエラーが発生しました。 Unable to load from ./models/test.glb: importScene of undefined from undefined version: undefined, exporter version: undefinedimportScene has failed JSON parse 対応内容 以下を追加でインストールすることで対応できました。 n p m i n s t a l l @ b a b y l o n j s / l o a d e r s 結果、以下のようなjsファイルで表示することができました。 i } i c } e m m o ; x p E S F V H S f p n e s c } p o n c r e e c r o s n c r , o r g e e c m e o r t g e e c c m m c c c n S ) e } r t i n e t i n m t i n シ a o o y y o a a e c ; n ) t n e C o s e m n e ー t n n S S n m m w e " " s f } g s ; { e , a r p L " " y e : ン e エ s s c c カ s e e 光 G n . t c u レ i c d , m 3 h o @ @ S : を S ン t t e e メ t r r 源 H L e / e e n s s s ン n e e e , e a b b c n 作 c ジ n n ラ a a の e B L m s n c c c c ダ e n f r r d a a e n u 成 e ン e s e e の c . . 設 m モ o o t e t e e e リ . e a a i e b b n u l す n と n c . . 設 a s a 定 i デ a d . , i c シ n n n ン r . u , c r y y e l l る e シ g e e s 定 m e t s ル d e g o o ー e e e グ u r l L , l l l , 関 : ー i n n c e t t p の e l l n n ン . . . ル n e t i o o = , 数 ン n e g e r T a h 読 r s b s 内 a c a ー R n g n n f の e i n a a c e み . / " t の c r c プ e d m h j j { u 初 = n e r h r 込 A " , カ t e t n e y t s s n 期 = e = g C i み p , * m メ i a i d r S , / / c 化 n = e o c p n e ラ v t v e ( c c l t n e = n t n L e e s と e e e r ) e o o i e w s e ( t i n w h ラ C D C L ; n r a o w e c w V r g d M イ a e a o e e d n S n e e o h ( e = ト m f m o ; " e E c g n F c l t s を e a e p ; r ( n e i e r t ( ( h s 作 r u r ( s c g n n ; e o c " e c 成 a l a ( / a i e e e r a l s e ま t . ) g n n ( ; C 3 n i * n た = C a l v e e a . v g / e は a t = T a ( n m Z a h ) . 更 n m t > F s c g e e s t m 新 u e a " ) a i r r , " { e l r c { ; n n a o , s l a h { v e ( ( t h ; O C a ) " ) r V e r o s ; c ) u e s L n ) a ; e c [ i t ; m ) t 0 g r e ; o ] h o r r ; t l a 3 ( ( 1 . t c " U r a , p u n ( e v n ) ) a e , ; s w , s V c f e e a c n l t e s o ) e r ; ) 3 ; ( 0 , 5 , - 1 0 ) , s c e n e ) ; まとめ 同様のエラーでお困りの方の参考になりましたら幸いです。 ...

2023年3月29日 · 5 分 · Nakamura