何かが違うのかもしれませんが、わかる方がいればご教示頂きたいです。
マニュアルを見ると、gpmatprmtで、マテリアルオプション値が指定できるというように読めたのですが、理解が間違っているかもしれません。
尚、gpmatprmp を使用して、bufferに描画する形であればモデルでも適用されました。
ならいいじゃん、それ使えよというところですが、UVのオフセットで指定できる方がスクリプトが簡単だなということでの質問です。
よろしくお願いいたします。
;HSP ver3.7b7で検証 #include "hgimg4.as" chdir dir_exe+"\\sample\\hgimg4" gpreset setcls CLSMODE_SOLID, $000000 ; 画面クリア設定 ;====テクスチャマテリアル============== gptexmat id_texmat, "res/ball64.png",GPOBJ_MATOPT_UVOFFSET|GPOBJ_MATOPT_UVREPEAT ; テクスチャマテリアル作成 ;==================================== ;gpplate id_model, 10,10,-1, id_texmat ;描画先モデル+テクスチャマテリアルを設定 gpbox id_box,10,-1,id_texmat gpload id_gpload,"res/tamane2" gpnodeinfo id_mat,id_gpload,GPNODEINFO_MATERIAL,"atama" gpmatprmt id_mat,"u_diffuseTexture","res/ball64.png",GPOBJ_MATOPT_UVOFFSET|GPOBJ_MATOPT_UVREPEAT setscale id_gpload,0.05,0.05,0.05 setpos id_gpload,0,0,60 gpbox id_box2,100 ;透過確認用ダミーモデル setpos id_box2,0,0,-200 offsetx = 0.0f ;UVオフセット初期化 offsety = 0.0f timer = 0.0f ;タイマー初期化 repeat redraw 0 ; 描画開始 offsetx = 1f/8*int(timer\8) ;UVは下から offsety = -1f/8*int(timer/8)-1f/8 //boxモデルにUVセット⇒機能する gpmatprm2 id_box, "u_textureOffset", offsetx , offsety ;UVオフセットのシェーダー設定 gpmatprm2 id_box, "u_textureRepeat", 1.0f/8.0f , 1.0f/8.0f ;UVリピートのシェーダー設定 //tamane2マテリアルにUVセット?機能していない? gpmatprm2 id_mat, "u_textureOffset", offsetx , offsety ;UVオフセットのシェーダー設定 gpmatprm2 id_mat, "u_textureRepeat", 1.0f/8.0f , 1.0f/8.0f ;UVリピートのシェーダー設定 addang id_gpload ,0,0.05,0 ;tamaneモデルを回転 addang id_box ,0,0.05,0 ;ボックスモデルを回転 addang id_box2,0,0.01,0 ;ダミーボックスモデルを回転 gpdraw ;シーンの描画 timer+=0.1f ;タイマー加算 redraw 1 ; 描画終了 await 1000/60 ; 待ち時間 loop