JP5792210B2 - 三次元オブジェクトの多視点描画装置、方法、及びプログラム - Google Patents
三次元オブジェクトの多視点描画装置、方法、及びプログラム Download PDFInfo
- Publication number
- JP5792210B2 JP5792210B2 JP2013018911A JP2013018911A JP5792210B2 JP 5792210 B2 JP5792210 B2 JP 5792210B2 JP 2013018911 A JP2013018911 A JP 2013018911A JP 2013018911 A JP2013018911 A JP 2013018911A JP 5792210 B2 JP5792210 B2 JP 5792210B2
- Authority
- JP
- Japan
- Prior art keywords
- pseudo
- node
- image
- vertex
- viewpoint
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 137
- 238000012937 correction Methods 0.000 claims description 42
- 230000003796 beauty Effects 0.000 claims 2
- 239000011159 matrix material Substances 0.000 description 154
- 230000008569 process Effects 0.000 description 63
- 210000000988 bone and bone Anatomy 0.000 description 34
- 238000012545 processing Methods 0.000 description 34
- 238000006243 chemical reaction Methods 0.000 description 29
- 230000014509 gene expression Effects 0.000 description 22
- 230000009466 transformation Effects 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 11
- 238000009499 grossing Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000009877 rendering Methods 0.000 description 6
- 238000010422 painting Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 210000002683 foot Anatomy 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 230000037237 body shape Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 210000000245 forearm Anatomy 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 210000004247 hand Anatomy 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000017105 transposition Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 241000556720 Manga Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000007040 multi-step synthesis reaction Methods 0.000 description 1
- 230000037311 normal skin Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 210000003371 toe Anatomy 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Landscapes
- Processing Or Creating Images (AREA)
Description
[頂点と行列変換]
CGモデルの形状データは、たとえば、多数の三角形面で構成ことができる。各三角形の頂点データは三次元の浮動小数点データの組(三次元ベクトル(x,y,z))として保持される。以下の説明では、OpenGL又はDirect3DなどのCG処理機構に準拠する。三次元ベクトル(x,y,z)に四次元めの要素w=1を追加した列ベクトル[x,y,z,1]Tとして表記し(「T」は行列の転置を意味し、ここでは行ベクトルの転置で列ベクトルを表している)、変換処理を4×4行列で表現する。これは三次元ベクトルに対する移動・回転・サイズ変換と射影変換の処理をアフィン変換のみで表現できる。
なお、上記の式3.5において、行列の掛け合わせる順番が異なれば、異なる変換結果となる点に留意すべきである。また、以下の説明では、ベクトルvのx成分を用いる場合にはv.x、ベクトルvのx成分とy成分を用いる場合にはv.xyのように、省略記法を用いて記述する。さらに、Mv.xyのように行列を掛けた場合は、(Mv).xyを表すものする。
CGモデルがジョイント(関節)構造を持っている場合には、モデル全体は部分要素の集まりとして分解できる。なお、本明細書では、「部分要素」を「ボーン」と呼ぶ場合がある。ある部分要素に属する頂点データの集合をセグメントと呼ぶ。各部分要素は隣接する部分要素と「ジョイント点」(「関節点」)で繋がっており、ジョイント点で互いのまわりを回転する以外には変形しないモデルを、剛体関節モデルと呼ぶ。本明細書では、ジョイントとセグメントで構成されるひとかたまりの単位を「ノード」と呼ぶ。特定の部分要素を示すときには、下付きのサフィックスで表現する。たとえば、部分要素を特定するID番号がmであるノードのモデリング行列はMmと記述する。また、ノードmのジョイント点(下記の親子関係における親と繋がる点)を「ジョイントm」とし、その位置を表すベクトルをjmと表記する。
三次元位置を二次元画像に変換するために、視点行列Vと射影行列Pが用いられる。視点行列はカメラ(視点)の位置と方向をあらわすものであり、射影行列は三次元情報を二次元に射影するためのルールを示すものである。
[x/w,y/w,z/w,1]Tは、視野空間と呼ばれる。x/w,y/wはそれぞれ二次元画像上での座標位置に対応し、-1<x/w<1,-1<y/w<1,0<z/w<1は描画対象を示す四角錐の領域になる。この射影行列の作成についてはhttp://www.terathon.com/gdc07_lengyel.pdfなどの参考文献に記載されている。
CG映像で、毎フレーム行う描画処理の工程は、以下のようになる。
図5は、Forward Kinematicsによるアニメーションの例を示している。順運動学の手順に基づいて、各ノードのモデリング行列を決定する。
(なお、この決定手順は、例えば、以下の参考文献に例示されている。http://www.tmps.org/index.php?%BD%E7%B1%BF%C6%B0%B3%D8)
(ア)キャラクタのポーズを決定するために、各ノードの向きを定める(図5(A))。全てのノード(m=0,1,2,…,M-1)について、ジョイント部(m)での回転角度の情報R0 mを読み出す。
jm=Mnj0 m
Rm=R0 mRn
Mmp=Rm(p-j0 m)+Mnj0 m
(ウ)操作(イ)を、親ノードから子ノードに繰り返し、全てのノードについてモデリング行列Mを求めることができる。
カメラパラメータ(視点の位置e、カメラの方向θ、画角)を設定し、これらの情報から、視点行列V、射影行列Pを作成する。画角は、カメラのレンズにおける焦点距離に対応する。
モデルの各頂点(変形前の位置座標をpとする)に対し、変形後の位置を計算する。頂点が属しているノードをmとするとき、[x,y,z,w]T=PVMmpを計算する。
二次元画像上の画素を塗り潰す(ラスタライズ処理を行う)。
誇張画像を生成するには、おもに、二種類の手法がある。一つ目はCGモデルの当該個所の形状自体を大きくする手法であり、もうひとつは遠近法を生み出すカメラパラメータを加工する技法Multi-perspective Rendering (MPR)を用いる手法である。
前者のCGモデルの当該個所を加工する方法の実現例には、Pencil+3パース変形モディファイヤの例などが存在する(たとえば、非特許文献1参照)。
後者のMPRは異なる透視投影の効果を一枚の絵に合成する方式である。MPRの既存技術の詳細は、非特許文献2に、例示されている。
非特許文献1の例では形状を変化させることで誇張表現を行うのに対して、非特許文献3及び非特許文献4で示された誇張描画アルゴリズムは透視投影Pを適用する段階でパースの効果を誇張する。
図6は、円筒のパース誇張表現の例を示している。ノードmに相当する円筒と、その中心軸を描いたものである。図6(A)は通常のパースである。これに対し、図6(B)では、距離による見た目の拡大率の差(円602と円604との差)を大きく誇張できる。円筒に中心軸を設定し、その両端点を特徴点とする。円筒の根元にある三次元の点をジョイントmとし、その位置を点jmとする。また、円筒先端の三次元の点を「ターゲットm」と呼び、その位置をtmとする。
図8はこの手法によって関節モデルを描画した場合の模式図である。図8のように、関節で区切られた部位それぞれに専用のカメラを用意し、それらを「疑似カメラ」と呼ぶ。これらの疑似カメラをそれぞれ異なる位置に配置し、各部位を撮影する。図8(B)〜図8(D)は、同じポーズのモデルを、三つの異なる疑似カメラで撮影したものである。図8(A)は、矢印802、804、及び806に示すように、これらの3種類の画像を関節部分でつなぎ合わせて作成した誇張画像である。
それぞれの疑似カメラをモデルに近づけるだけでは、二次元画像上でのポーズのバランスが崩れてしまう場合がある。二次元画像上のポーズの印象を残したまま、パースの遠小近大の表現だけを変化させるためには、それぞれの疑似カメラの配置場所を連携させることが望ましい。この場合、以下の制約条件を満たすように、疑似射影行列Pmと疑似視点行列Vmを作成するのが望ましい。
ジョイントmの近傍では、ノードmの疑似カメラの画像と親ノードnの疑似カメラの画像の間で、位置とサイズを略一致させることが望ましい。この制約により、関節が「つながって」見える。
ターゲットmが射影される二次元位置が略一致するようにすることが望ましい。この制約により、オブジェクトの向きが一致して見える.
ターゲット点tmについて、親階層(ノードn)の疑似射影処理PnVnによって、点pが写される平面上の位置と、この階層(ノードm)の疑似射影処理PmVmによって、点pが写される平面上の位置とが略一致する。
描画手法によって映像を描画する際に必要となるデータ構成要素について以下に説明する。
(ア)あらかじめ保存されていることが望ましい情報は以下の通りである。
・基本ポーズにおけるターゲット点の位置t0 m
・基本ポーズにおけるジョイント点の位置j0 m
・誇張係数ηm
・親ノードへのリンクn
(イ)動的に定められる情報は以下の通りである。
・現在のターゲット点の位置tm
・現在のジョイント点の位置jm
・モデリング行列Mm
・疑似視点位置em
・疑似視点行列Vm
・疑似射影行列Pm
各頂点の構成は以下の通りである。
(ウ)あらかじめ保存されていることが望ましい情報は以下の通りである。
・基本ポーズにおける頂点位置p0=[x,y,z,1]T
・ノードへのリンクm
(エ)動的に定められる情報は以下の通りである。
・現在の頂点位置p=Mmp0
[基本手法の描画工程]
本発明における描画工程の基本手法では、以下のような手順を用いてもよい。
カメラの配置(ステップ404)と、頂点の変換(ステップ406)において、複数の視点行列と射影行列を用意し、使用することが望ましい。以下、この詳細について、図4を再度用いて説明する。
先に述べた手法に基づき、各ノードmに、モデリング行列Mmを設定する。また、このモデリング行列によって変換されたターゲット点の現在位置tm=Mmt0 mと、ジョイント点の現在位置jm=Mmj0 mとをそれぞれ計算する。
まず、基本となるカメラパラメータ(視点の位置e0、カメラの方向θ0、画角)を設定する。これらの情報から、視点行列V0、射影行列P0を作成する。
射影行列には、既に記載した形式の行列を設定する。
疑似視点の位置を定める。
em=(en+ηmtm)/(1+ηm)
本明細書では、この比率を「誇張係数」と呼び、値をηmとする。この値には、ノード構造体にあらかじめ保存されている定数パラメータを読み出して利用することが望ましい。誇張係数によって、誇張される度合いを調整することができる。誇張係数が大きくなるほど、誇張される度合いが高くなる。誇張係数が0であれば、親階層の擬似視点から見える画像と等しくなる。
疑似射影行列の画角(カメラのレンズの焦点距離に相当する)を補正し、ジョイント点jm含む平面z=Vnjm.z(en視点座標系)において、親ノードの疑似射影行列で写した画像のスケールと、このノードの疑似射影行列で写した画像のスケールが、一致するようにする。
疑似射影行列の斜め補正量を修正し、ジョイント点jmを含む平面z=Vnjm.z(en視点座標系)において、親ノードの疑似射影行列で写した画像と、このノードの疑似射影行列で写した画像が、一致するようにシフト量を設定する。
モデルの各頂点(基本ポーズにおける位置座標をp0とする)に対し対応するノードmを検索し、そのノードの疑似視点行列と疑似射影行列を用いて、以下の式によって誇張表現での視野空間の位置を計算する。
[x,y,z,w]T=PmVmMmp0
頂点は、二次元画像上の点(x/w,y/w)に写像される。
[x0,y0,z0,w0]T=PVMmp0
の値を計算し、z0/w0を奥行き深度の値とすることが望ましい。これは、異なる疑似カメラで描画されたオブジェクト間の深度値比較に、一貫性を持たせるためである。この奥行きの深度の値は、たとえばZバッファを用いて、以下のステップ408において、塗りつぶすべき手前にある画像を描画するときに用いてもよい。
各面について、頂点で囲まれた領域の画素を塗り潰す。またその際、深度値z0/w0が最も遠い面から描き、近い面で上書きしながら描画する。
実施例2:誇張の非整合の解消
実施例3:アニメーションの平滑処理
実施例4:誇張係数パメラータの設定
実施例5:誇張量の動的な調整
実施例6:ピッキング処理
図9は、人間型モデルへ適用したボーン900の例である。
スキンメッシュ処理を用いるモデルに対しては、前述の基本技法のみではマルチカメラを用いた誇張描画を実現することが困難な場合がある。そこで、スキンメッシュを用いたオブジェクトに誇張描画を行うための処理として、頂点に視点行列と射影行列を適用して同次表現の四次元ベクトルの値を作った後、w値で除算して通常の二次元画像上の位置情報に変換することが望ましい。そのあとで、影響度に合わせた補間処理を行うことが望ましい。
図10にジョイントとエンベロープの例を示す。既に述べたように、三次元のモデル1002は、たとえば多数の三角形面(ポリゴン)で構成されており、各三角形の頂点データを三次元ベクトルとして保持している。
あらかじめ保存されていることが望ましい情報は以下の通りである。
・基本ポーズにおけるターゲット点の位置t0 m
・基本ポーズにおけるジョイント点の位置j0 m
・内部境界面を示す幾何モデル(非可視頂点の集合)
・外部境界面を示す幾何モデル(非可視頂点の集合)
・誇張係数ηm
・親ノードへのリンクn
動的に定められる情報は以下の通りである。
・現在のターゲット点の位置tm
・現在のジョイント点の位置jm
・内部境界面を示す幾何モデルの現在姿勢(非可視頂点の集合)
・外部境界面を示す幾何モデルの現在姿勢(非可視頂点の集合)
・モデリング行列Mm
・疑似視点位置em
・疑似視点行列Vm
・疑似射影行列Pm
(イ)頂点の構成は以下の通りである。
・基本ポーズにおける頂点位置p0
・ノードへのリンク(リスト)[m0,m1,m2,…,mK−1]
・影響度(リスト)[q0,q1,q2,…,qK−1]
動的に定められる情報は以下の通りである。
・現在の頂点位置ΣqkMmkp0
[描画工程]
描画のための工程全体の例を以下に示す。図4のフローを用いて説明する。
本実施例の工程全体の流れは、他の実施例とほぼ同様の構成となる(図4)。ただし、ステップ406「頂点の変換」には主要な変更が加えられている点に留意すべきである。
先に述べた手法に基づき、各ノードmに、モデリング行列Mmを設定する。また、このモデリング行列によって変換されたターゲット点の現在位置tm=Mmt0 mと、ジョイント点の現在位置jm=Mmj0 mとをそれぞれ計算する。この具体方法については前述の基本実施例に準じて実行してもよい。
各ノードmに、カメラパラメータ(視点の位置、カメラ方向、画角)を設定する。これらの情報から、視点行列Vm、射影行列Pmを作成する。この具体方法については前述の基本実施例に準じて実行してもよい。
頂点の変換についても基本実施例に準じて実行してもよい。なお、以下の点で変更を加えてもよい。
[xk,yk,zk,wk]T=PmkVmkMmkp0
ステップ1110において、頂点を、二次元画像上の点に写像し、影響度を掛けて足し合わせる。
(Σqk(xk/wk),Σqk(yk/wk))
ステップ1112、及びステップ1120において、K回繰り返す。
[x0,y0,z0,w0]T=PVΣqkMmkp0
ステップ1116において、ポリゴンの頂点座標のx,yとzを合成。
各面について、頂点で囲まれた領域の画素を塗り潰す。またその際、深度値z0/w0が最も遠い面から描き、近い面で上書きしながら描画する。(前述の手法と同様であってもよい。)
[実施例1の変形例]
誇張表現の描画における頂点の補間処理を、異なるバリエーションで実現する例を以下に挙げる。
p'=ΣqkMmkp0
ステップ1210において、このp'を用いて、mk(k=0,1,…,K−1)のそれぞれについて、疑似視点行列と疑似射影行列を適用した誇張視野空間の座標を、たとえば下記の計算式により計算する。
[xk,yk,zk,wk]T=PmkVmkp'
ステップ1212において、この頂点の変換結果を、たとえば下記の計算式により二次元画像上の点に写像する。
(Σqk(xk/wk),Σqk(yk/wk))
ステップ1214、ステップ1220において、K回繰り返す。
[x0,y0,z0,w0]T=PVΣqkMmkp0
ステップ1218において、ポリゴンの頂点座標のx,yとzを合成する。
以下に示す実施例2は、このような課題にも対応できる。
以下に詳述する実施例3では、たとえば視線方向に対して垂直な方向へ疑似視点位置を移動させる方法を用いる。また、疑似視点位置の移動量に対する、画面上での像の移動量の比率を計算し、仮配置したオブジェクトが重畳しているのに合わせて疑似視点の移動距離を算出する。
図14は、誇張描画による像の拡張がもたらす重畳を回避する例を示している。図14を用いて、画像の重畳を回避する例を概念的に説明する。図14(A)は、誇張を行ったために、描画が重なってしまった状態を表している。第1のターゲット点の位置tmと、第2のターゲット点の位置tkが表示されている。各ターゲット点には、予め衝突半径が定義されているものとする。図14(A)においては、誇張を行わない場合の衝突半径1408が示されている。その他の衝突半径についても、同様に定義されている(不図示)。そして、誇張表示を行わない場合の衝突領域1404と、衝突領域1414が示されている。また、誇張表示を行った場合の衝突領域1406と衝突領域1416が示されており、両者は重畳して描画されている。重畳して描画される理由は、両者の点に対して、異なる2つの視点(2つのカメラ)を用いて誇張を行っているためである。
・基本ポーズにおけるターゲット点の位置t0 m
・基本ポーズにおけるジョイント点の位置j0 m
・衝突半径rm
・誇張係数ηm
・親ノードへのリンクn
動的に定められる情報は以下の通りである。
・現在のターゲット点の位置tm
・現在のジョイント点の位置jm
・モデリング行列Mm
・疑似視点位置em
・疑似視点行列Vm
・疑似射影行列Pm
・点座標pに対する誇張画像内での見た目の拡大率ρm(p)
・画像内でのターゲット点の衝突半径rmρm(tm)
頂点の構成は以下の通りである。
・基本ポーズにおける位置座標p0=[x,y,z,1]T
・現在の位置座標p=Mmp0
・ノードへのリンクm
[描画工程]
描画のための工程全体を以下に説明する。
工程全体の流れは、既に説明した実施例とほぼ同様の構成となる。なお、以下に説明するように、疑似視点位置の配置計算方法に主要変形を加えることが望ましい。図4に示したステップを用いて説明する。
先に述べた手法に基づき、各ノードmに、モデリング行列Mmを設定する。また、このモデリング行列によって変換されたターゲット点の現在位置tm=Mmt0 mと、ジョイント点の現在位置jm=Mmj0 mとをそれぞれ計算する。
この実施例2では、既に述べた手法によってカメラ配置方法に基づいて射影中心を一旦設定し、その後にカメラ位置の修正を行うことが望ましい。
em=(en+ηmtm)/(1+ηm)
本実施例では、ηmには、ノード構造体にあらかじめ保存されている定数パラメータを読み出して利用する。
t'm.x=PmVmtm.x/PmVmtm.w
t'm.y=[PmVmtm.y/PmVmtm.w]Sa
(1504−2)ターゲット点の周りの二次元像のサイズを計算する。ターゲット点を中心とする微小三次元球(半径δ、δ<<1とする)の、二次元像の半径をρm(tm)δとし、このρm(tm)を計算する。ターゲット点を視点座標系のx方向にδだけ移動させたときの二次元像の移動量を使って近似してもよい。
ρm(tm)=[Pm(Vmtm+[δ,0,0,0]T).x/Pm(Vmtm+[δ,0,0,0]T).w-PmVmtm.x/PmVmtm.w]/δ
=Pm[δ,0,0,0]T.x/PmVmtm.w/δ
=pm00/PmVmtm.w
このρm(tm)をターゲット点の周りでの二次元像の拡大率と呼ぶ。
[Vm(jm−tm).z/Vm(jm−em).z]ρm(jm)δ
だけ移動する。したがって、疑似視点位置emが視点座標系のx方向に微小量(δ,0,0)だけ移動した場合には、ターゲット点は画像上で
S(tm)δ=−ρm(jm)[Vm(jm−tm).z/Vm(jm−em).z]δ
だけ移動することとなる。この
S(tm)=−ρm(jm)[Vm(jm−tm).z/Vm(jm−em).z]
を、疑似視点位置の移動に対するターゲット点の二次元像の移動比率として保存しておくことが望ましい。
また、各ノードの衝突半径の、二次元平面上での大きさは、ターゲット点の衝突半径をそれぞれrm,rkとしたとき、ρm(tm)rm、ρk(tk)rkとなる。この和を
d1=ρm(tm)rm+ρk(tk)rk
とする。
d2<rm+rk、すなわち奥行きの差が衝突半径の和よりも小さいならば、奥行き方向について衝突が起こりうるものとみなし、ステップ(1505−3)に進む。
τ0m=(t'm−t'k)/|t'm−t'k|
で表せる。
τ1m=(d1−d0)(αm/(αm+αk))τ0m
となる。
μm.xy=[τ1m/S(tm)].xy
μm.zw=(0,0)
(1505−4)擬似視点位置を修正する。最終的な修正後の疑似視点位置は、次式を満たすemとなる。
Vmem=Vme'm+μm
得られたemを使ってVmを作り直す。この修正を行うことによって、各セグメントのターゲット点の周辺物体が、不自然に重なり合うことを回避する。
図4に戻り、ステップ406において頂点の変換を行う。モデルの各頂点(基本ポーズにおける位置座標をp0とする)に対し対応するノードmを検索し、そのノードの疑似視点行列と疑似射影行列を用いて、誇張表現での視野空間の位置を計算する。
[x,y,z,w]T=PmVmMnp0を計算する。
[x0,y0,z0,w0]T=PVMmp0
の値を計算し、z0/w0を奥行き深度の値とする。
二次元画像上の画素を塗り潰す(ラスタライズ処理を行う)。
アニメーションの各フレームfについて、疑似視点の仮位置e'm(f)を定める。この時、アニメーションの途中で、物体同士が衝突・接近したために表示位置を修正する処理が発生することがある。たとえば、このような修正が行われるフレームfcをあらかじめ検出し、その前後のフレームfc+1,fc−1の修正量を、フレームfcの修正量に近づける。この補正処理をN回反復処理して繰り返すと、修正量が伝播されて平滑化を行うことができる。
視点位置・方向・画角の情報は、入力情報に応じてユーザーが決定するか、又はあらかじめ保存された情報によって決定され得る。これらの変化による画像の変化をカメラアニメーションと呼ぶ。カメラアニメーションにおいては、視点行列Vと射影行列Pが、それぞれフレームfの関数になる。
あらかじめ保存されていることが望ましい情報は以下の通りである。
・基本ポーズにおけるターゲット点の位置t0 m
・基本ポーズにおけるジョイント点の位置j0 m
・衝突半径rm
・誇張係数ηm
・親ノードへのリンクn
動的に定められる情報は以下の通りである。
・現在のターゲット点の位置tm=Mm(f)t0 m
・現在のジョイント点の位置jm=Mm(f)j0 m
・モデリング行列Mm(f)
・疑似視点位置em(f)
・疑似視点行列Vm(f)
・疑似射影行列Pm(f)
・時間フレーム数に比例した疑似視点距離のデータ
頂点の構成は以下の通りである。
・基本ポーズにおける位置座標p0=[x,y,z,1]T
・現在の位置座標p=Mm(f)p0
[描画工程]
描画のための工程全体を示す。
工程全体の流れは先の実施例とほぼ同様の構成となるが、アニメーション時間に応じてフレーム数だけのパラメータを生成し、互いの影響を考慮することが望ましい。また、後述するように、疑似視点位置の修正を伝播させる計算を導入することが望ましい。他の実施例と同様に、図4を用いて処理の流れを順に説明する。
各フレームfごとに、全ノードmのモデリング行列Mmを設定する。また、このモデリング行列によって変換されたターゲット点の位置tm(f)=Mm(f)t0 mと、ジョイント点の位置jm(f)=Mm(f)j0 mとをそれぞれ計算する。
カメラの配置は、たとえば実施例2での処理に基づき、以下の工程手順を経て決定してもよい。
全フレームに渡って以下の1505−a1の詳細処理を行い、修正量μn(f)を設定する(fはフレーム番号、nはノード番号)。
ステップ1702において、初期値の代入を行う。すなわち、
μn(f).xy=(0,0)
とする。
ステップ1704ないしステップ1712によって、全てのノードの組み合わせ(k,m)について、以下の1505−a1−1−1〜1505−a1−1−2の処理を行う。
ステップ1704において、ノードの対の選択を行う。そして、ステップ1706において、フレームfでxy方向での衝突が起こっているかを確認する。また、フレームfで、z方向で衝突範囲にあるかを確認する(ステップ1708)。衝突していれば、1505−a1−1−2でμm(f)、μk(f)を設定する。
フレームfで衝突を回避するための、疑似視点位置(視点座標系)の修正量μm(f)を計算する。μk(f)についても同様に計算を行うことができる(ステップ1710)。
τ0m=(t'm−t'k)/|t'm−t'k|
τ1m=(d1−d0)(αm/(αm+αk))τ0m
μm(f).xy=[τ1m/S(tm)].xy
μm(f).zw=(0,0)
(1505−a2)フレーム間修正量の平滑化
ステップ1714で隣接ノードを選択する。そして、ステップ1716において、フレーム間で、修正量μn(f)の平滑化処理を行う。各フレームfに対して、以下の1505−a2−1及び1505−a2−2の処理を行う。
全てのノードについて、次式によって、フレームfの修正量μm(f)を平滑化する(mはノード番号)。
μm(f).xy←μm(f).xy+σ(μm(f+1).xy−μm(f).xy)+σ(μm(f−1).xy−μm(f).xy)
この式は、μm(f).xyの値をμm(f−1).xy及びμm(f+1).xyに近づける働きをする。σの値としては例えば0.5が挙げられる。本発明は、この値に限定されるものではない。この平滑化によって、1505−a1−1で設定した修正量が減ることも起こり得るが、下記1505−a4の反復により再度修正が行われる。
ステップ1718において、全てのノードの組み合わせ(k,m)について、1505−a1−1−1のルーチン処理を用いて、フレームfの画像上での衝突が再び発生していないかを判定する(ステップ1722)。衝突している場合、フレームfの修正量平滑化をキャンセルしてもよい(ステップ1720)。そして、次のフレームに処理を進める。
修正量μm(f)に基づいて、以下の式を利用して、疑似視点位置を修正する。
Vm(f)em(f)=Vm(f)e'm(f)+μm(f)
以上の処理を全隣接ノードに対して行う(ステップ1724)。
ステップ1726において、上記の1505−a1〜1505−a3の処理を繰り返す。計N回反復する。
各フレームfに対して、頂点の変換を行う。
[x,y,z,w]T=Pm(f)Vm(f)Mm(f)p0
頂点は、最終的に二次元画像上、別途通常の視点行列と射影行列を用いて、他の実施例と同様に、通常の視野空間の位置(基本カメラを使って射影変換された座標値)を求めればよい。すなわち、
[x0,y0,z0,w0]T=P(f)V(f)Mm(f)p0
の値を計算し、z0/w0を奥行き深度の値とすることができる。
各フレームfに対して、二次元画像上の画素を塗り潰す(ラスタライズ処理を行ってもよい)。この塗り潰しにおいては、最終的に手前の三角形の色が見えなければならないので、描画順序が重要になる。この描画の奥行き順序を守るために、頂点の変換によってえられた深度値z0/w0を用いて面をソートしておき、最も遠い面から描き、近い面で上書きしながら描画してゆくことが望ましい。
(1)全てのモデルで関節部位が一対一に対応しているとは限らない。例えば、スカートのような洋服の部位、長い髪の毛等にもボーンを設定し、ポーズを定められるようにしたモデルがある。このような場合に、各部位に対してそれぞれ誇張係数を定める場合には、調整の手間が大きい。
(2)異なる体型の人型物体のモデルを作成した場合には、適切なパラメータを新たに設定しなければならない場合がある。
標準的な形状のモデル(標準エンベロープ)を用いる。ある特定のモデルに、既に適切な誇張係数が設定されていると仮定する。標準エンベロープ(あるいはモデル)のポーズ又は各部位寸法を調整することで、モデルの関節位置と標準エンベロープの対応する関節位置を概ね一致させることができる。その状態で、たとえば、標準エンベロープの各頂点に対して、最も近いターゲット点に関連付けられた誇張係数の値を、その頂点の誇張係数として保存する。
・モデル形状
・関節構造
・標準エンベロープモデル
標準エンベロープモデルの頂点データとして、たとえば以下のものが挙げられる。
・頂点の位置
・誇張係数
[全体の流れ]
全体の流れは、誇張係数を割り当て済みのモデルから、エンベロープに誇張係数をコピーする工程と、誇張係数が割り当てられていないモデルに、エンベロープから誇張係数をコピーする工程の二つに大きく分けられる。
図19は、3Dキャラクタとエンベロープの重ね合わせを示している。3Dキャラクタ1902は、すでに誇張係数が設定されていると仮定する。
まだ誇張係数が指定されていない3Dキャラクタのモデルに対して、以下の手順で誇張係数をコピーすることができる。
また、複数のモデルを指定して読み込むことが必要になる場合がある。たとえば現在のモデルが長い髪の毛のボーンなどを保持しており、コピー対象としたいエンベロープにおいては対応するパーツが存在しない場合がある。この場合、その部分だけは別のモデルから誇張係数を呼び出して用いたいという要望が想定される。この場合に、以下のような処理を行ってもよい。
「ステップ1832のエンベロープの選択と読込」の工程において、複数(H個)のエンベロープデータと、それぞれの影響度q0,q1,q2,…,qH-1を入力する。
「ステップ1836の誇張係数のコピー」の工程において、以下のように誇張係数を計算してもよい。
ボーン構造を持った3Dキャラクタを扱う場合には、エンベロープの替わりにボーンを使う方法も可能である。標準エンベロープの替わりに標準ボーンモデルを用意してもよい。標準ボーンモデルの各ボーンに誇張係数を保存しておいてもよい。新しいキャラクタモデルを使う際には、まず標準ボーンモデルとの間で対応する部位のボーンどうし(複数対複数)に対応関係を付けてもよい。次にキャラクタの各ターゲット点に対して標準ボーンから誇張係数をコピーしてもよい。
実施例5では、各ノードが特定の意味条件を満たしているかを判断し、その結果に応じて誇張係数を変動させてもよい。たとえば、以下の三条件を判断基準とすることができる。
(1)物体の近接判定:ターゲット点が、特定の物体と接近しているか。
(2)方向指示の判定:ジョイント点からターゲット点に向かう方向が、特定の物体に向いているか。
(3)ポーズの判定:モデルの関節構造が、あらかじめ定められたポーズと類似しているか。
ノードの構成
あらかじめ保存されていることが望ましい情報は以下の通りである。
・基本ポーズにおけるターゲット点の位置t0 m
・基本ポーズにおけるジョイント点の位置j0 m
・衝突半径rm
・誇張距離係数ψm
・親ノードへのリンクn0
・比較母点を含むノードへのリンクb
・基本ポーズにおける比較母点の位置j0 b
動的に定められる情報は以下の通りである。
・現在のターゲット点の位置tm
・現在のジョイント点の位置jm
・現在の比較母点の位置jb
・一時接続ノードへのリンク[n1,n2,n3,…]
・一時接続ノードへの影響度[q1,q2,q3,…]
・疑似視点位置em
・疑似視点行列Vm
・疑似射影行列Pm
・視線方向の影響値νm
頂点の構成は以下の通りである。
・基本ポーズにおける位置座標p0=[x,y,z,1]T
・現在位置p=Mmp0
ポーズ(関節の角度)のパターン(ポーズc)は以下の通りである。
・ノードのID番号[m0,m1,m2,…,mK-1]
・ノード(関節)の角度[R0,R1,R2,…,RK-1]
・誇張距離調整係数φc
[描画工程]
[全体の流れ]
本実施例では、ポーズ決定時に、3Dモデルにおける物体との衝突判定、モーションのパターン、視線との向きなどの意味条件を判別する。たとえば、その値に応じて、疑似視点距離を変更する。以下、図4のフローを再度用いて、処理の流れを説明する。なお、重複した説明を避けるため、本実施例に特有の変更点を主に説明する。
1−1 モデリング行列の設定
シーンに物体を配置する。関節モデルについては、ポーズをそれぞれ設定する。各ノードmについて、回転角度のデータRmを呼び出し、先に述べた順運動学に基づいた手法に基づき、ノードmごとに、モデリング行列Mmを設定する。
モデリング行列によって変換されたターゲット点の現在位置tm=Mmt0 mと、ジョイント点の現在位置jm=Mmj0 mとを計算する。
シーン内にあるノードの組み合わせ(m0,m1)について、たとえば、接触判定を行う。ノードm0,m1として想定される例としては、m0が身体部位(例えば手)で、m1が物体(例えば拳銃)、が挙げられる。
母点b0からターゲット点m0に向かう方向が、特定の物体m1に向いているかの判定を行ってもよい。想定される例としては、母点ノードb0のジョイントが肩、ノードm0のターゲットが指先、ノードm1のターゲットが宝箱である場合が挙げられる。たとえば、方向tm0−jb0(例えば肩から指先に向かう方向)と、方向tm1−jb0(例えば肩から宝箱に向かう方向)のなす角度が閾値角度以下であった場合には、特定の物体に向いている(例えば宝箱を指さしている)とみなす。そして、ノードm0の一時接続ノードリストに、ノードm1を登録する。またノードm1の一時接続ノードリストに、ノードm0を登録してもよい。
モデルの一部の関節角度が、あらかじめ設定された関節角度に近いかを判定してもよい。たとえば、手首から先のノード関節情報[m1,m2,m3,…]について、あらかじめピースサインのポーズの関節角度[R1,R2,R3,…]を登録しておく。この角度に近い場合にはピースサインのポーズであると判定してもよい。
視線方向影響値νを使って、誇張距離係数ψmを調整することができる。ノードの特徴的な方向を表すのに適した母点を、ノード上に設定しておく。例えば、前腕に相当するノードのターゲット点が手首の位置に設定されているときに、肘付近に母点を設定する。すると、母点からターゲット点に向かう方向が、前腕がどの方向を向いているかを表すことになる。
モデルのノードに対して、たとえば、以下のように疑似視点距離ezmを定めることができる。
疑似視点までの距離に矛盾が生じて、画像上での大きさの狂いが生まれないように、疑似視点距離を伝播させることができる。例えば、手の誇張量と手に持った物の誇張量が大きく異なると不自然であるため、両者の誇張量を調整することができる。
[ステップ404:カメラの配置]
他の実施例との変更点を主として説明する。たとえば、基本となるカメラパラメータ(視点の位置e0、カメラの方向θ0、画角)を設定する。これらの情報から、視点行列V0、射影行列P0を作成する。視点行列V0は、視点位置e0を原点とする移動行列T(pをp−e0に平行移動する)と、視線方向θをz軸に回転する回転行列R0によってV0=R0T0として定義される。
疑似視点距離ezmを使って、疑似視点の位置を定める。たとえば、親階層の疑似視点位置enと自分のターゲット点位置tmとを結んだ直線の上に、以下のように疑似視点位置emを設定する。
疑似射影行列の画角を補正し、ジョイント点jmを含む平面z=Vnjm.z(en視点座標系)において、親ノードの疑似射影行列で写した画像のスケールと、このノードの疑似射影行列で写した画像のスケールが、略一致するようにする。
親ノードの疑似射影行列Pnが以下のように既に確定しており、
疑似射影行列の斜め補正量を修正し、ジョイント点jmを含む平面z=Vnjm.z(en視点座標系)において、親ノードの疑似射影行列で写した画像と、このノードの疑似射影行列で写した画像が、略一致するようにシフト量を設定する。
モデルの各頂点(基本ポーズにおける位置座標をp0とする)に対し対応するノードmを検索し、そのノードの疑似視点行列と疑似射影行列を用いて、誇張表現での視野空間の位置を以下の式により計算してもよい。
[x,y,z,w]T=PmVmMmp0
頂点は、最終的に二次元画像上の点(x/w,y/w)に写像される。また、別途通常の視点行列と射影行列を用いて、通常の視野空間の位置(基本カメラを使って射影変換された座標値)
[x0,y0,z0,w0]T=PVMmp0
の値を計算し、z0/w0を奥行き深度の値とする。
二次元画像上の画素を塗り潰す(ラスタライズ処理)。この塗り潰しにおいては、最終的に手前の三角形の色が見えなければならないので、描画順序が重要になる。この描画の奥行き順序を守るために、たとえば、頂点の変換によってえられた深度値z0/w0を用いて面をソートしておき、最も遠い面から描き、近い面で上書きしながら描画してゆく。
実施例3に記載したようなアニメーションに対する平滑化処理を適用する場合には、「工程1−8 疑似視点距離の伝播」での評価関数Φに、フレーム内の変動をあらわす項として、
(a)ボーン、又は関節等を選択してオブジェクトのポーズを変えるもの。
(b)メッシュを選択してオブジェクトの細部を調整するもの。
404 カメラの配置
406 頂点の変換
408 画像の塗り潰し
Claims (5)
- 三次元空間に存在する、複数のノードを含む三次元モデルを複数の視点を用いて描画する装置であって、
前記複数のノードの各々と前記複数の視点の各々との対応関係、及び前記複数の視点の各々に係る描画パラメータを含む、描画情報を格納するメモリと、
前記描画情報を用いて、前記三次元モデルを構成する複数のポリゴンによって、前記三次元モデルを画像に変換するCPUと、
を有する描画装置であって、
前記CPUは、
前記複数のポリゴンの頂点の各々に対して、前記頂点が属しているノードに対応する視点を用いて前記頂点の描画位置を算出し、
前記算出された描画位置を用いて、前記三次元モデルの画像に衝突があるか否かを判定し、
衝突があると判定された場合には、前記描画情報を修正し、
前記修正された前記描画情報に基づいて、前記三次元モデルを画像に変換する、 描画装置。 - アニメーションを構成する複数のフレーム画像のうちの特定のフレームにおいて、前記衝突があると判断された場合、前記特定のフレームに対して時間的に前及び/又は後の所定の数のフレームに対して、修正された前記描画情報の修正前後の差分値を、前記特定のフレームから所定のフレーム数のフレームのそれぞれに対して、フレームの位置に応じて補間した値を適用することによって、前記複数のフレームの各々に平滑化された修正値を与える、
請求項1記載の描画装置。 - 三次元空間に存在する、複数のノードを含む三次元モデルを複数の視点を用いて描画する方法であって、
メモリに保存された、前記複数のノードの各々と前記複数の視点の各々との対応関係、及び前記複数の視点の各々に係る描画パラメータを含む、描画情報を用いて、CPUが、
前記三次元モデルを構成する複数のポリゴンの頂点の各々に対して、前記頂点が属しているノードに対応する視点を用いて前記頂点の描画位置を算出するステップと、
前記算出された描画位置を用いて、前記三次元モデルの画像に衝突があるか否かを判定するステップと、
衝突があると判定された場合には、前記描画情報を修正するステップと、
前記修正された前記描画情報に基づいて、前記三次元モデルを画像に変換するステップと、
を有する描画方法。 - アニメーションを構成する複数のフレーム画像のうちの特定のフレームにおいて、前記衝突があると判断された場合、前記特定のフレームに対して時間的に前及び/又は後の所定の数のフレームに対して、修正された前記描画情報の修正前後の差分値を、前記特定のフレームから所定のフレーム数のフレームのそれぞれに対して、フレームの位置に応じて補間した値を適用することによって、前記複数のフレームの各々に平滑化された修正値を与えるステップ、
を更に有する請求項3記載の描画方法。 - 請求項3又は4記載の方法を、コンピュータに実行させるプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013018911A JP5792210B2 (ja) | 2013-02-01 | 2013-02-01 | 三次元オブジェクトの多視点描画装置、方法、及びプログラム |
PCT/JP2014/051722 WO2014119524A1 (ja) | 2013-02-01 | 2014-01-27 | 三次元オブジェクトの多視点描画装置、方法、及びプログラム |
US14/815,004 US9881417B2 (en) | 2013-02-01 | 2015-07-31 | Multi-view drawing apparatus of three-dimensional objects, and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013018911A JP5792210B2 (ja) | 2013-02-01 | 2013-02-01 | 三次元オブジェクトの多視点描画装置、方法、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014149748A JP2014149748A (ja) | 2014-08-21 |
JP5792210B2 true JP5792210B2 (ja) | 2015-10-07 |
Family
ID=51572654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013018911A Active JP5792210B2 (ja) | 2013-02-01 | 2013-02-01 | 三次元オブジェクトの多視点描画装置、方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5792210B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2023100679A1 (ja) * | 2021-12-03 | 2023-06-08 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4206547B2 (ja) * | 1999-02-23 | 2009-01-14 | 株式会社セガ | 画像処理方法、その画像処理装置及びそれに利用する一体整形モデルデータ及び画像処理プログラムを記録した記録媒体 |
JP2005141545A (ja) * | 2003-11-07 | 2005-06-02 | Matsushita Electric Ind Co Ltd | 一体整形モデルデータを利用した画像処理方法及び記録媒体 |
-
2013
- 2013-02-01 JP JP2013018911A patent/JP5792210B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014149748A (ja) | 2014-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2014119524A1 (ja) | 三次元オブジェクトの多視点描画装置、方法、及びプログラム | |
CN112150638B (zh) | 虚拟对象形象合成方法、装置、电子设备和存储介质 | |
US10489956B2 (en) | Robust attribute transfer for character animation | |
US11195318B2 (en) | Rapid avatar capture and simulation using commodity depth sensors | |
KR20220017900A (ko) | 단일 이미지-기반 실시간 신체 애니메이션 | |
WO2021225868A1 (en) | Fast and deep facial deformations | |
CN104661010A (zh) | 三维立体模型的建立方法和装置 | |
CA3034058C (en) | Real-time hand modeling and tracking using sphere-mesh models | |
US9892485B2 (en) | System and method for mesh distance based geometry deformation | |
US8358311B1 (en) | Interpolation between model poses using inverse kinematics | |
US10319133B1 (en) | Posing animation hierarchies with dynamic posing roots | |
JP5792210B2 (ja) | 三次元オブジェクトの多視点描画装置、方法、及びプログラム | |
US8289331B1 (en) | Asymmetric animation links | |
JP5792211B2 (ja) | 三次元オブジェクトの誇張描画装置、方法、及びプログラム | |
KR20170061294A (ko) | 3d 가상 캐릭터의 어깨 움직임 정보 생성방법 | |
Li et al. | Animating cartoon faces by multi‐view drawings | |
Utsugi et al. | E-IMPACT: Exaggerated illustrations using multi-perspective animation control tree structure | |
JP5413188B2 (ja) | 三次元画像処理装置、三次元画像処理方法および三次元画像処理プログラムを記録した媒体 | |
Akgunduz et al. | Two-step 3-dimensional sketching tool for new product development | |
US20230196702A1 (en) | Object Deformation with Bindings and Deformers Interpolated from Key Poses | |
JP2005322097A (ja) | 対象物像モデルのアニメーション表示装置、対象物像モデルのアニメーション表示方法および対象物像モデルのアニメーション表示プログラム | |
Chaudhuri et al. | Reusing view-dependent animation | |
Akturk | Back2Future-SIM: Creating Real-Time Interactable Immersive Virtual World For Robot Teleoperation | |
Chansavang et al. | Puppet animation with textured billboards | |
Chaudhuri et al. | View-dependent character animation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150514 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20150514 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20150525 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150602 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150702 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150721 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150805 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5792210 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |