AnyPortrait > スクリプト > 骨
骨を参照または制御する関数。
ソケットを参照したり、IKで制御する関数が含まれています。
名前で骨を見つけて返します。
「Root Unit」インデックスを指定しない場合は、まずレンダリングされている「Root Unit」から完全な検索を実行します。
int rootUnitIndex : 「Root Unit」インデックス (存在しない場合は、すべて検索)
string boneName : 参照する骨の名前
apOptBone : 検索した骨。 そうでない場合はnullを返します。
骨のソケットを参照します。
ソケットについては、関連ページを参照してください。
apOptBone optBone : ソケットが含まれている骨
int rootUnitIndex : 「Root Unit」インデックス (存在しない場合は、すべて検索)
string boneName : 参照する骨の名前
Transform : ソケットの骨の「Transform」 そうでない場合はnullを返します。
骨の位置を制御します。
重みを使って補間できます。
IKは機能しません。
apOptBone optBone : コントロールする骨
int rootUnitIndex : 「Root Unit」インデックス (存在しない場合は、すべて検索)
string boneName : コントロールする骨の名前
Vector3 position : 移動する位置
Space space : 「World」はシーンの座標系を指し、「Self」はapPortraitの座標系を指す。
float weight : アニメーションされる骨の値との補間での重み
bool : 存在しない骨を参照する場合はfalseを返します。
骨の回転角度を制御します。
重みを使用して補間することができます。
apOptBone optBone : コントロールする骨
int rootUnitIndex : 「Root Unit」インデックス (存在しない場合は、すべて検索)
string boneName : コントロールする骨の名前
float angle : 回転する角度 (Degree)
Space space : 「World」はシーンの座標系を指し、「Self」はapPortraitの座標系を指す。
float weight : アニメーションされる骨の値との補間での重み
bool : 存在しない骨を参照する場合はfalseを返します。
骨のサイズを制御します。
重みを使用して補間することができます。
apOptBone optBone : コントロールする骨
int rootUnitIndex : 「Root Unit」インデックス (存在しない場合は、すべて検索)
string boneName : コントロールする骨の名前
Vector3 scale : スケール値
Space space : 「World」はシーンの座標系を指し、「Self」はapPortraitの座標系を指す。
float weight : アニメーションされる骨の値との補間での重み
bool : 存在しない骨を参照する場合はfalseを返します。
IKを使用して骨を動かします。
骨のIKを設定する方法については、関連ページを参照してください。
重みを使用して補間することができます。
apOptBone optBone : コントロールする骨
int rootUnitIndex : 「Root Unit」インデックス (存在しない場合は、すべて検索)
string boneName : コントロールする骨の名前
Vector3 position : 移動する位置。 IKによっては、場所に届かない場合があります。
Space space : 「World」はシーンの座標系を指し、「Self」はapPortraitの座標系を指す。
float weight : アニメーションされる骨の値との補間での重み
bool isContiuous : trueの場合、前のフレームのIK結果が参照され、自然な結果が得られます。
bool : 存在しない骨を参照する場合はfalseを返します。
IK方式と同様に骨を回転させて、骨が要求された位置を見る作成します。
「SetBoneIK()」とは異なり、一つの骨を回転させます。
IKの設定には影響を与えません。
apOptBone optBone : コントロールする骨
int rootUnitIndex : 「Root Unit」インデックス (存在しない場合は、すべて検索)
string boneName : コントロールする骨の名前
Vector3 position : 見る位置
Space space : 「World」はシーンの座標系を指し、「Self」はapPortraitの座標系を指す。
float weight : アニメーションされる骨の値との補間での重み
bool : 存在しない骨を参照する場合はfalseを返します。
骨の位置を制限する。
各軸の範囲を設定できます。
更新ごとに新しいリクエストを呼び出すと、異なる「ConstraintBound」タイプのコールを重複させることができます。
apOptBone optBone : 標的骨
int rootUnitIndex : 「Root Unit」インデックス (存在しない場合は、すべて検索)
string boneName : 対象の骨の名前
float positionValue : あなたが制限したい位置の値
ConstraintBound constraintBound : これは、それぞれX軸およびY軸に対して「Min、Max、Preferred」のタイプを持っています。
Space space : 「World」はシーンの座標系を指し、「Self」はapPortraitの座標系を指す。
bool : 存在しない骨を参照する場合はfalseを返します。
X軸とY軸の基本表面の位置を設定し、現在の表面の位置を入力すると、骨の位置が違い値に補正されます。
安定した位置補正のために最小値と最大範囲を指定してください。
骨を直接制御していないので、FKで作られたアニメーションを維持する効果があります。
apOptBone optBone : コントロールする骨
int rootUnitIndex : 「Root Unit」インデックス (存在しない場合は、すべて検索)
string boneName : コントロールする骨の名前
float defaultSurfacePosition : 基本的な面の位置は、一般的に一定の値である必要があります。
float currentSurfacePosition : 現在の表面の位置
float minSurfacePosition : 表面位置の最小値
float maxSurfacePosition : 表面位置の最大値
ConstraintSurface constraintSurface : 表面軸 (X、Y)
Space space : 「World」はシーンの座標系を指し、「Self」はapPortraitの座標系を指す。
bool : 存在しない骨を参照する場合はfalseを返します。
using UnityEngine;
using AnyPortrait;
public class BoneTest : MonoBehaviour
{
public apPortrait portrait;
void Start () { }
void Update ()
{
if(Input.GetMouseButtonDown(0))
{
Vector3 touchPosWorld = Camera.main.ScreenToWorldPoint(
new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0));
portrait.SetBoneIK(0, "Bone Hand R", touchPosWorld, Space.World, 1.0f, true);
}
}
}